@kimdaegyu/babmukdang-shared 1.1.11 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/chunk-3TY6OPD3.js +91 -0
  2. package/dist/{chunk-W4C7XHTX.js → chunk-6O2YTBVC.js} +3 -3
  3. package/dist/{chunk-GTVEQYJW.js → chunk-7JYVBXKQ.js} +1 -1
  4. package/dist/chunk-7UZD4LBQ.js +459 -0
  5. package/dist/chunk-BSJC7OVV.js +10 -0
  6. package/dist/chunk-C63TN7L3.js +148 -0
  7. package/dist/chunk-CGFW5LYV.js +143 -0
  8. package/dist/chunk-GOOH2LGN.js +829 -0
  9. package/dist/chunk-LEH6UFL7.js +314 -0
  10. package/dist/{chunk-K3CZKI2F.js → chunk-NENVUHL5.js} +11 -8
  11. package/dist/chunk-OPMBGBYS.js +632 -0
  12. package/dist/{chunk-OJVXYCSH.js → chunk-QFPVAJ2U.js} +1 -1
  13. package/dist/{chunk-AI2YMBJX.js → chunk-RZPNVRRS.js} +5 -5
  14. package/dist/{chunk-4E5E3PFW.js → chunk-VD3VGLBQ.js} +13 -5
  15. package/dist/chunk-WYBFBLQC.js +111 -0
  16. package/dist/{chunk-H77ISYYC.js → chunk-XMRYAG3V.js} +20 -8
  17. package/dist/domain/article/index.cjs +71 -7
  18. package/dist/domain/article/index.d.cts +79 -796
  19. package/dist/domain/article/index.d.ts +79 -796
  20. package/dist/domain/article/index.js +4 -4
  21. package/dist/domain/auth/index.cjs +68 -6
  22. package/dist/domain/auth/index.d.cts +6 -46
  23. package/dist/domain/auth/index.d.ts +6 -46
  24. package/dist/domain/auth/index.js +3 -3
  25. package/dist/domain/common/index.cjs +1438 -330
  26. package/dist/domain/common/index.d.cts +212 -3037
  27. package/dist/domain/common/index.d.ts +212 -3037
  28. package/dist/domain/common/index.js +65 -30
  29. package/dist/domain/food/index.cjs +225 -0
  30. package/dist/domain/food/index.d.cts +321 -0
  31. package/dist/domain/food/index.d.ts +321 -0
  32. package/dist/domain/food/index.js +46 -0
  33. package/dist/domain/friend/index.cjs +78 -7
  34. package/dist/domain/friend/index.d.cts +39 -98
  35. package/dist/domain/friend/index.d.ts +39 -98
  36. package/dist/domain/friend/index.js +5 -3
  37. package/dist/domain/index.cjs +1930 -456
  38. package/dist/domain/index.d.cts +382 -123
  39. package/dist/domain/index.d.ts +382 -123
  40. package/dist/domain/index.js +429 -140
  41. package/dist/domain/live-activity/index.cjs +1112 -0
  42. package/dist/domain/live-activity/index.d.cts +177 -0
  43. package/dist/domain/live-activity/index.d.ts +177 -0
  44. package/dist/domain/live-activity/index.js +28 -0
  45. package/dist/domain/meal/index.cjs +68 -6
  46. package/dist/domain/meal/index.d.cts +21 -40
  47. package/dist/domain/meal/index.d.ts +21 -40
  48. package/dist/domain/meal/index.js +4 -4
  49. package/dist/domain/meal-plan/index.cjs +1540 -0
  50. package/dist/domain/meal-plan/index.d.cts +4523 -0
  51. package/dist/domain/meal-plan/index.d.ts +4523 -0
  52. package/dist/domain/meal-plan/index.js +255 -0
  53. package/dist/domain/member/index.cjs +94 -6
  54. package/dist/domain/member/index.d.cts +263 -273
  55. package/dist/domain/member/index.d.ts +263 -273
  56. package/dist/domain/member/index.js +26 -2
  57. package/dist/domain/promotion/index.cjs +10 -4
  58. package/dist/domain/promotion/index.d.cts +35 -112
  59. package/dist/domain/promotion/index.d.ts +35 -112
  60. package/dist/domain/promotion/index.js +2 -2
  61. package/dist/domain/push/index.cjs +1055 -0
  62. package/dist/domain/push/index.d.cts +169 -0
  63. package/dist/domain/push/index.d.ts +169 -0
  64. package/dist/domain/push/index.js +36 -0
  65. package/dist/domain/restaurant/index.cjs +10 -4
  66. package/dist/domain/restaurant/index.d.cts +27 -1
  67. package/dist/domain/restaurant/index.d.ts +27 -1
  68. package/dist/domain/restaurant/index.js +2 -2
  69. package/dist/index.cjs +1731 -399
  70. package/dist/index.d.cts +5 -7
  71. package/dist/index.d.ts +5 -7
  72. package/dist/index.js +17 -15
  73. package/package.json +52 -55
  74. package/dist/chunk-PFSZSKD5.js +0 -0
  75. package/dist/chunk-PQMEXOPZ.js +0 -232
  76. package/dist/chunk-W4TUW2GY.js +0 -40
  77. package/dist/chunk-WNYCCQM4.js +0 -342
  78. package/dist/chunk-YGFAVC5N.js +0 -34
  79. package/dist/chunk-YM7YU7IR.js +0 -319
  80. package/dist/chunk-ZH7D7B2Y.js +0 -78
  81. package/dist/domain/invitation/index.cjs +0 -82
  82. package/dist/domain/invitation/index.d.cts +0 -64
  83. package/dist/domain/invitation/index.d.ts +0 -64
  84. package/dist/domain/invitation/index.js +0 -13
  85. package/dist/domain/plan/index.cjs +0 -327
  86. package/dist/domain/plan/index.d.cts +0 -178
  87. package/dist/domain/plan/index.d.ts +0 -178
  88. package/dist/domain/plan/index.js +0 -18
  89. package/dist/domain/recruit/index.cjs +0 -189
  90. package/dist/domain/recruit/index.d.cts +0 -214
  91. package/dist/domain/recruit/index.d.ts +0 -214
  92. package/dist/domain/recruit/index.js +0 -30
  93. package/dist/domain/room/index.cjs +0 -401
  94. package/dist/domain/room/index.d.cts +0 -2643
  95. package/dist/domain/room/index.d.ts +0 -2643
  96. package/dist/domain/room/index.js +0 -82
  97. package/dist/id-dAYxfjZn.d.cts +0 -64
  98. package/dist/id-dAYxfjZn.d.ts +0 -64
  99. package/dist/restaurant.schema-CuEcX3S3.d.cts +0 -78
  100. package/dist/restaurant.schema-CuEcX3S3.d.ts +0 -78
@@ -1,18 +1,25 @@
1
+ import {
2
+ MemberCoreSchema
3
+ } from "./chunk-C63TN7L3.js";
1
4
  import {
2
5
  ISODateTimeStringSchema
3
6
  } from "./chunk-HRM3FQPL.js";
4
- import {
5
- MemberCoreSchema
6
- } from "./chunk-ZH7D7B2Y.js";
7
7
  import {
8
8
  FriendRequestIdSchema
9
- } from "./chunk-H77ISYYC.js";
9
+ } from "./chunk-XMRYAG3V.js";
10
10
 
11
11
  // src/domain/friend/friend.schema.ts
12
12
  import { z } from "zod";
13
13
  var FriendRequestStatusSchema = z.enum(["PENDING", "ACCEPTED", "REJECTED", "CANCELED"]);
14
+ var FriendMealAvailabilitySchema = z.object({
15
+ isHungry: z.boolean(),
16
+ mealProposalAllowed: z.boolean(),
17
+ mealStatusExpiresAt: ISODateTimeStringSchema.nullable(),
18
+ nearbyMealPlanExposureAllowed: z.boolean()
19
+ });
14
20
  var FriendListItemResponseSchema = MemberCoreSchema.extend({
15
- friendSince: ISODateTimeStringSchema
21
+ friendSince: ISODateTimeStringSchema,
22
+ mealAvailability: FriendMealAvailabilitySchema.optional()
16
23
  });
17
24
  var FriendBlockItemResponseSchema = MemberCoreSchema.extend({
18
25
  blockedAt: ISODateTimeStringSchema
@@ -30,6 +37,7 @@ var FriendSearchResponseSchema = z.array(MemberCoreSchema);
30
37
 
31
38
  export {
32
39
  FriendRequestStatusSchema,
40
+ FriendMealAvailabilitySchema,
33
41
  FriendListItemResponseSchema,
34
42
  FriendBlockItemResponseSchema,
35
43
  FriendRequestMemberSchema,
@@ -0,0 +1,111 @@
1
+ import {
2
+ MealPlanLiveActivityBehaviorSchema,
3
+ MealPlanNotificationKindSchema
4
+ } from "./chunk-GOOH2LGN.js";
5
+ import {
6
+ ISODateTimeStringSchema
7
+ } from "./chunk-HRM3FQPL.js";
8
+ import {
9
+ MealPlanIdSchema
10
+ } from "./chunk-XMRYAG3V.js";
11
+
12
+ // src/domain/push/push.schema.ts
13
+ import { z } from "zod";
14
+ var PushProviderSchema = z.enum(["FCM", "APNS_LIVE_ACTIVITY"]);
15
+ var PushPlatformSchema = z.enum(["WEB", "ANDROID", "IOS"]);
16
+ var PushPermissionStatusSchema = z.enum([
17
+ "UNKNOWN",
18
+ "PROMPT",
19
+ "GRANTED",
20
+ "DENIED"
21
+ ]);
22
+ var PushTokenStatusSchema = z.enum(["ACTIVE", "REVOKED", "DISABLED"]);
23
+ var RegisterPushTokenRequestSchema = z.object({
24
+ provider: PushProviderSchema.default("FCM"),
25
+ platform: PushPlatformSchema,
26
+ token: z.string().min(10),
27
+ deviceId: z.string().min(1).max(128),
28
+ appVersion: z.string().min(1).max(64).optional(),
29
+ buildNumber: z.string().min(1).max(64).optional(),
30
+ permissionStatus: PushPermissionStatusSchema
31
+ });
32
+ var RevokePushTokenRequestSchema = z.object({
33
+ provider: PushProviderSchema.default("FCM"),
34
+ token: z.string().min(10).optional(),
35
+ deviceId: z.string().min(1).max(128).optional()
36
+ });
37
+ var PushTokenResponseSchema = z.object({
38
+ pushTokenId: z.string().uuid(),
39
+ provider: PushProviderSchema,
40
+ platform: PushPlatformSchema,
41
+ deviceId: z.string(),
42
+ status: PushTokenStatusSchema,
43
+ permissionStatus: PushPermissionStatusSchema,
44
+ appVersion: z.string().nullable(),
45
+ buildNumber: z.string().nullable(),
46
+ lastSeenAt: ISODateTimeStringSchema,
47
+ revokedAt: ISODateTimeStringSchema.nullable()
48
+ });
49
+ var PushPayloadSchemaVersionSchema = z.literal("2026-06-17");
50
+ var MealPlanPushPayloadDataSchema = z.object({
51
+ schemaVersion: PushPayloadSchemaVersionSchema,
52
+ notificationId: z.string().min(1),
53
+ kind: MealPlanNotificationKindSchema,
54
+ mealPlanId: MealPlanIdSchema,
55
+ deepLink: z.string().min(1),
56
+ title: z.string().min(1),
57
+ body: z.string().min(1),
58
+ fcmPriority: z.coerce.number().int().min(0),
59
+ liveActivityPriority: z.coerce.number().int().min(0),
60
+ liveActivityBehavior: MealPlanLiveActivityBehaviorSchema
61
+ });
62
+ var PushDeliveryStatusSchema = z.enum([
63
+ "PENDING",
64
+ "SENT",
65
+ "FAILED",
66
+ "SKIPPED"
67
+ ]);
68
+ var PushDeliveryAttemptResultSchema = z.enum([
69
+ "SENT",
70
+ "FAILED",
71
+ "SKIPPED"
72
+ ]);
73
+ var PushDeliveryAttemptSummarySchema = z.object({
74
+ attemptId: z.string().uuid(),
75
+ outboxId: z.string().uuid(),
76
+ pushTokenId: z.string().uuid().nullable(),
77
+ provider: PushProviderSchema,
78
+ result: PushDeliveryAttemptResultSchema,
79
+ providerMessageId: z.string().nullable(),
80
+ errorCode: z.string().nullable(),
81
+ errorMessage: z.string().nullable(),
82
+ invalidToken: z.boolean(),
83
+ createdAt: ISODateTimeStringSchema
84
+ });
85
+ var PushDeliveryOutboxSummarySchema = z.object({
86
+ outboxId: z.string().uuid(),
87
+ notificationId: z.string().min(1),
88
+ memberId: z.number().int().positive(),
89
+ status: PushDeliveryStatusSchema,
90
+ attemptCount: z.number().int().min(0),
91
+ lastError: z.string().nullable(),
92
+ nextAttemptAt: ISODateTimeStringSchema.nullable(),
93
+ sentAt: ISODateTimeStringSchema.nullable(),
94
+ createdAt: ISODateTimeStringSchema
95
+ });
96
+
97
+ export {
98
+ PushProviderSchema,
99
+ PushPlatformSchema,
100
+ PushPermissionStatusSchema,
101
+ PushTokenStatusSchema,
102
+ RegisterPushTokenRequestSchema,
103
+ RevokePushTokenRequestSchema,
104
+ PushTokenResponseSchema,
105
+ PushPayloadSchemaVersionSchema,
106
+ MealPlanPushPayloadDataSchema,
107
+ PushDeliveryStatusSchema,
108
+ PushDeliveryAttemptResultSchema,
109
+ PushDeliveryAttemptSummarySchema,
110
+ PushDeliveryOutboxSummarySchema
111
+ };
@@ -12,10 +12,16 @@ var MemberIdSchema = PositiveIntIdSchema.brand();
12
12
  var UserIdSchema = MemberIdSchema;
13
13
  var ArticleIdSchema = PositiveIntIdSchema.brand();
14
14
  var CommentIdSchema = PositiveIntIdSchema.brand();
15
- var RecruitIdSchema = PositiveIntIdSchema.brand();
16
- var PlanIdSchema = PositiveIntIdSchema.brand();
17
- var InvitationIdSchema = PositiveIntIdSchema.brand();
18
- var RoomIdSchema = NonEmptyStringIdSchema.brand();
15
+ var MealPlanIdSchema = z.string().uuid().brand();
16
+ var MealPlanInviteIdSchema = z.string().uuid().brand();
17
+ var MealPlanJoinRequestIdSchema = z.string().uuid().brand();
18
+ var MealPlanNearbyFriendExposureBatchIdSchema = z.string().uuid().brand();
19
+ var MealPlanChangeRequestIdSchema = z.string().uuid().brand();
20
+ var MealPlanShareLinkIdSchema = z.string().uuid().brand();
21
+ var MealPlanShareLinkTokenSchema = z.string().min(8).max(128).brand();
22
+ var MealPlanChatRoomIdSchema = z.string().uuid().brand();
23
+ var MealPlanChatMessageIdSchema = z.string().uuid().brand();
24
+ var MealGroupIdSchema = z.string().uuid().brand();
19
25
  var RestaurantIdSchema = NonEmptyStringIdSchema.brand();
20
26
  var CouponIdSchema = PositiveIntIdSchema.brand();
21
27
  var SubscriptionIdSchema = PositiveIntIdSchema.brand();
@@ -36,10 +42,16 @@ export {
36
42
  UserIdSchema,
37
43
  ArticleIdSchema,
38
44
  CommentIdSchema,
39
- RecruitIdSchema,
40
- PlanIdSchema,
41
- InvitationIdSchema,
42
- RoomIdSchema,
45
+ MealPlanIdSchema,
46
+ MealPlanInviteIdSchema,
47
+ MealPlanJoinRequestIdSchema,
48
+ MealPlanNearbyFriendExposureBatchIdSchema,
49
+ MealPlanChangeRequestIdSchema,
50
+ MealPlanShareLinkIdSchema,
51
+ MealPlanShareLinkTokenSchema,
52
+ MealPlanChatRoomIdSchema,
53
+ MealPlanChatMessageIdSchema,
54
+ MealGroupIdSchema,
43
55
  RestaurantIdSchema,
44
56
  CouponIdSchema,
45
57
  SubscriptionIdSchema,
@@ -63,10 +63,16 @@ var NonEmptyStringIdSchema = import_zod2.z.string().min(1);
63
63
  var MemberIdSchema = PositiveIntIdSchema.brand();
64
64
  var ArticleIdSchema = PositiveIntIdSchema.brand();
65
65
  var CommentIdSchema = PositiveIntIdSchema.brand();
66
- var RecruitIdSchema = PositiveIntIdSchema.brand();
67
- var PlanIdSchema = PositiveIntIdSchema.brand();
68
- var InvitationIdSchema = PositiveIntIdSchema.brand();
69
- var RoomIdSchema = NonEmptyStringIdSchema.brand();
66
+ var MealPlanIdSchema = import_zod2.z.string().uuid().brand();
67
+ var MealPlanInviteIdSchema = import_zod2.z.string().uuid().brand();
68
+ var MealPlanJoinRequestIdSchema = import_zod2.z.string().uuid().brand();
69
+ var MealPlanNearbyFriendExposureBatchIdSchema = import_zod2.z.string().uuid().brand();
70
+ var MealPlanChangeRequestIdSchema = import_zod2.z.string().uuid().brand();
71
+ var MealPlanShareLinkIdSchema = import_zod2.z.string().uuid().brand();
72
+ var MealPlanShareLinkTokenSchema = import_zod2.z.string().min(8).max(128).brand();
73
+ var MealPlanChatRoomIdSchema = import_zod2.z.string().uuid().brand();
74
+ var MealPlanChatMessageIdSchema = import_zod2.z.string().uuid().brand();
75
+ var MealGroupIdSchema = import_zod2.z.string().uuid().brand();
70
76
  var RestaurantIdSchema = NonEmptyStringIdSchema.brand();
71
77
  var CouponIdSchema = PositiveIntIdSchema.brand();
72
78
  var SubscriptionIdSchema = PositiveIntIdSchema.brand();
@@ -115,6 +121,45 @@ var UploadPresignImageRequestSchema = import_zod4.default.object({
115
121
 
116
122
  // src/domain/member/member.schema.ts
117
123
  var MemberRoleSchema = import_zod5.z.enum(["USER", "ADMIN"]);
124
+ var LocationConsentStatusSchema = import_zod5.z.enum(["UNKNOWN", "GRANTED", "DENIED"]);
125
+ var OnboardingStatusSchema = import_zod5.z.enum(["REQUIRED", "COMPLETED"]);
126
+ var PermissionKindSchema = import_zod5.z.enum(["LOCATION", "NOTIFICATION", "CAMERA"]);
127
+ var PermissionStatusSchema = import_zod5.z.enum([
128
+ "UNKNOWN",
129
+ "PROMPT",
130
+ "GRANTED",
131
+ "DENIED",
132
+ "LIMITED",
133
+ "UNSUPPORTED"
134
+ ]);
135
+ var PermissionPlatformSchema = import_zod5.z.enum(["WEB", "IOS", "ANDROID", "UNKNOWN"]);
136
+ var DevicePermissionSnapshotSchema = import_zod5.z.object({
137
+ kind: PermissionKindSchema,
138
+ status: PermissionStatusSchema,
139
+ platform: PermissionPlatformSchema.default("UNKNOWN"),
140
+ canAskAgain: import_zod5.z.boolean().optional(),
141
+ checkedAt: import_zod5.z.string().datetime()
142
+ });
143
+ var MemberLocationSchema = import_zod5.z.object({
144
+ latitude: import_zod5.z.number().min(-90).max(90),
145
+ longitude: import_zod5.z.number().min(-180).max(180),
146
+ accuracyMeters: import_zod5.z.number().min(0).nullable().optional(),
147
+ capturedAt: import_zod5.z.string().datetime()
148
+ });
149
+ var UpdateMemberLocationConsentRequestSchema = import_zod5.z.object({
150
+ locationConsentStatus: LocationConsentStatusSchema,
151
+ nearbyMealPlanExposureAllowed: import_zod5.z.boolean().default(false),
152
+ mealSuggestionAllowed: import_zod5.z.boolean().optional(),
153
+ permissionSnapshot: DevicePermissionSnapshotSchema.optional()
154
+ });
155
+ var MemberLocationSettingsResponseSchema = import_zod5.z.object({
156
+ locationConsentStatus: LocationConsentStatusSchema,
157
+ nearbyMealPlanExposureAllowed: import_zod5.z.boolean(),
158
+ mealSuggestionAllowed: import_zod5.z.boolean(),
159
+ lastKnownLocation: MemberLocationSchema.nullable(),
160
+ permissionSnapshot: DevicePermissionSnapshotSchema.nullable().optional(),
161
+ updatedAt: import_zod5.z.string().datetime().nullable()
162
+ });
118
163
  var MemberCoreSchema = import_zod5.z.object({
119
164
  memberId: MemberIdSchema,
120
165
  username: import_zod5.z.string().min(1).max(50),
@@ -126,6 +171,11 @@ var MemberResponseSchema = MemberCoreSchema.pick({
126
171
  memberId: true,
127
172
  username: true,
128
173
  profileImageUrl: true
174
+ }).extend({
175
+ onboardingStatus: OnboardingStatusSchema.default("REQUIRED"),
176
+ onboardingCompletedAt: import_zod5.z.string().datetime().nullable().default(null),
177
+ locationConsentStatus: LocationConsentStatusSchema.optional(),
178
+ nearbyMealPlanExposureAllowed: import_zod5.z.boolean().optional()
129
179
  });
130
180
  var MemberSearchQuerySchema = import_zod5.z.object({
131
181
  email: import_zod5.z.string().email().optional(),
@@ -136,7 +186,11 @@ var MemberDetailSchema = MemberCoreSchema.extend({
136
186
  bio: import_zod5.z.string().nullable(),
137
187
  friendConunt: import_zod5.z.number().int().min(0).default(0),
138
188
  completedPlans: import_zod5.z.number().int().min(0).default(0),
139
- uncompletedPlans: import_zod5.z.number().int().min(0).default(0)
189
+ uncompletedPlans: import_zod5.z.number().int().min(0).default(0),
190
+ onboardingStatus: OnboardingStatusSchema.default("REQUIRED"),
191
+ onboardingCompletedAt: import_zod5.z.string().datetime().nullable().default(null),
192
+ locationConsentStatus: LocationConsentStatusSchema.default("UNKNOWN"),
193
+ nearbyMealPlanExposureAllowed: import_zod5.z.boolean().default(false)
140
194
  });
141
195
  var FoodPreferenceItemSchema = FoodSchema.extend({});
142
196
  var MemberFoodPreferenceSchema = import_zod5.z.object({
@@ -150,9 +204,17 @@ var UpdateProfileRequestSchema = import_zod5.z.object({
150
204
  bio: import_zod5.z.string().max(500).nullable()
151
205
  });
152
206
  var UpdatePreferenceRequestSchema = MemberFoodPreferenceSchema;
153
- var CreateProfileRequestSchema = UpdateProfileRequestSchema.merge(
207
+ var CompleteOnboardingRequestSchema = UpdateProfileRequestSchema.merge(
154
208
  UpdatePreferenceRequestSchema
155
209
  );
210
+ var OnboardingDraftSchema = import_zod5.z.object({
211
+ username: import_zod5.z.string().min(1).max(50).optional(),
212
+ profileImageUrl: import_zod5.z.string().url().nullable().optional(),
213
+ bio: import_zod5.z.string().max(500).nullable().optional(),
214
+ liked: import_zod5.z.array(FoodPreferenceItemSchema).optional(),
215
+ disliked: import_zod5.z.array(FoodPreferenceItemSchema).optional(),
216
+ allergy: import_zod5.z.array(FoodPreferenceItemSchema).optional()
217
+ });
156
218
 
157
219
  // src/domain/restaurant/restaurant.schema.ts
158
220
  var import_zod6 = require("zod");
@@ -200,7 +262,8 @@ var CreateArticleRequestSchema = import_zod7.z.object({
200
262
  mealDate: ISODateStringSchema,
201
263
  restaurant: RestaurantSchema,
202
264
  taggedMemberIds: import_zod7.z.array(MemberIdSchema).default([]),
203
- foodAnalysis: FoodAnalysisResultSchema.optional()
265
+ foodAnalysis: FoodAnalysisResultSchema.optional(),
266
+ mealPlanId: MealPlanIdSchema.optional()
204
267
  });
205
268
  var CreateCommentRequestSchema = import_zod7.z.object({
206
269
  content: import_zod7.z.string().min(1).max(500),
@@ -220,6 +283,7 @@ var ArticleCoreSchema = import_zod7.z.object({
220
283
  imageUrl: import_zod7.z.string().url(),
221
284
  mealDate: ISODateStringSchema,
222
285
  restaurant: RestaurantSchema,
286
+ mealPlanId: MealPlanIdSchema.nullable(),
223
287
  createdAt: ISODateTimeStringSchema,
224
288
  updatedAt: ISODateTimeStringSchema,
225
289
  expiresAt: ISODateTimeStringSchema,