@kimdaegyu/babmukdang-shared 1.1.10 → 2.0.2

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 (88) hide show
  1. package/dist/chunk-3BLXZW4U.js +338 -0
  2. package/dist/{chunk-AI2YMBJX.js → chunk-65DWKLP6.js} +18 -9
  3. package/dist/{chunk-H77ISYYC.js → chunk-6R5CCY5Q.js} +22 -8
  4. package/dist/{chunk-4E5E3PFW.js → chunk-DRCY5UNQ.js} +20 -7
  5. package/dist/chunk-EX7S5FI5.js +91 -0
  6. package/dist/{chunk-HRM3FQPL.js → chunk-EYZU5HPG.js} +4 -1
  7. package/dist/{chunk-OJVXYCSH.js → chunk-G7TITUHT.js} +1 -1
  8. package/dist/chunk-GESEM4IA.js +122 -0
  9. package/dist/chunk-IPANLE7B.js +632 -0
  10. package/dist/chunk-KREAZLLH.js +1062 -0
  11. package/dist/{chunk-K3CZKI2F.js → chunk-P3MYMK34.js} +24 -13
  12. package/dist/chunk-Q4BPFDVB.js +171 -0
  13. package/dist/{chunk-W4C7XHTX.js → chunk-QUAG5LF5.js} +13 -6
  14. package/dist/chunk-TIOX7OHA.js +863 -0
  15. package/dist/{chunk-GTVEQYJW.js → chunk-TOXRHSD6.js} +1 -1
  16. package/dist/chunk-YV734GYZ.js +165 -0
  17. package/dist/domain/article/index.cjs +107 -15
  18. package/dist/domain/article/index.d.cts +254 -0
  19. package/dist/domain/article/index.d.ts +254 -0
  20. package/dist/domain/article/index.js +5 -5
  21. package/dist/domain/auth/index.cjs +88 -9
  22. package/dist/domain/auth/index.d.cts +29 -0
  23. package/dist/domain/auth/index.d.ts +29 -0
  24. package/dist/domain/auth/index.js +3 -3
  25. package/dist/domain/common/index.cjs +2100 -395
  26. package/dist/domain/common/index.d.cts +328 -0
  27. package/dist/domain/common/index.d.ts +328 -0
  28. package/dist/domain/common/index.js +65 -31
  29. package/dist/domain/food/index.cjs +248 -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 +44 -0
  33. package/dist/domain/friend/index.cjs +108 -12
  34. package/dist/domain/friend/index.d.cts +72 -0
  35. package/dist/domain/friend/index.d.ts +72 -0
  36. package/dist/domain/friend/index.js +6 -4
  37. package/dist/domain/index.cjs +2736 -522
  38. package/dist/domain/index.d.cts +576 -0
  39. package/dist/domain/index.d.ts +576 -0
  40. package/dist/domain/index.js +429 -140
  41. package/dist/domain/live-activity/index.cjs +1061 -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 +27 -0
  45. package/dist/domain/meal/index.cjs +101 -12
  46. package/dist/domain/meal/index.d.cts +47 -0
  47. package/dist/domain/meal/index.d.ts +47 -0
  48. package/dist/domain/meal/index.js +4 -4
  49. package/dist/domain/meal-plan/index.cjs +1504 -0
  50. package/dist/domain/meal-plan/index.d.cts +4424 -0
  51. package/dist/domain/meal-plan/index.d.ts +4424 -0
  52. package/dist/domain/meal-plan/index.js +256 -0
  53. package/dist/domain/member/index.cjs +114 -9
  54. package/dist/domain/member/index.d.cts +330 -0
  55. package/dist/domain/member/index.d.ts +330 -0
  56. package/dist/domain/member/index.js +26 -2
  57. package/dist/domain/promotion/index.cjs +26 -8
  58. package/dist/domain/promotion/index.d.cts +81 -0
  59. package/dist/domain/promotion/index.d.ts +81 -0
  60. package/dist/domain/promotion/index.js +3 -3
  61. package/dist/domain/push/index.cjs +1004 -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 +35 -0
  65. package/dist/domain/restaurant/index.cjs +10 -4
  66. package/dist/domain/restaurant/index.d.cts +34 -0
  67. package/dist/domain/restaurant/index.d.ts +34 -0
  68. package/dist/domain/restaurant/index.js +2 -2
  69. package/dist/index.cjs +2533 -640
  70. package/dist/index.d.cts +14 -0
  71. package/dist/index.d.ts +14 -0
  72. package/dist/index.js +16 -191
  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.js +0 -13
  83. package/dist/domain/plan/index.cjs +0 -327
  84. package/dist/domain/plan/index.js +0 -18
  85. package/dist/domain/recruit/index.cjs +0 -189
  86. package/dist/domain/recruit/index.js +0 -30
  87. package/dist/domain/room/index.cjs +0 -401
  88. package/dist/domain/room/index.js +0 -82
@@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
9
  var __export = (target, all) => {
9
10
  for (var name in all)
10
11
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -34,6 +35,11 @@ __export(common_exports, {
34
35
  ApiResponseSchema: () => ApiResponseSchema,
35
36
  ApiSuccessSchema: () => ApiSuccessSchema,
36
37
  ArticleIdSchema: () => ArticleIdSchema,
38
+ CACHE_INVALIDATION_SSE_EVENT: () => CACHE_INVALIDATION_SSE_EVENT,
39
+ CacheInvalidationActionSchema: () => CacheInvalidationActionSchema,
40
+ CacheInvalidationEntitySchema: () => CacheInvalidationEntitySchema,
41
+ CacheInvalidationEventSchema: () => CacheInvalidationEventSchema,
42
+ CacheInvalidationKeySchema: () => CacheInvalidationKeySchema,
37
43
  CommentIdSchema: () => CommentIdSchema,
38
44
  CouponIdSchema: () => CouponIdSchema,
39
45
  CreatedEntityIdResponseSchema: () => CreatedEntityIdResponseSchema,
@@ -43,7 +49,16 @@ __export(common_exports, {
43
49
  FriendRequestIdSchema: () => FriendRequestIdSchema,
44
50
  ISODateStringSchema: () => ISODateStringSchema,
45
51
  ISODateTimeStringSchema: () => ISODateTimeStringSchema,
46
- InvitationIdSchema: () => InvitationIdSchema,
52
+ MealGroupIdSchema: () => MealGroupIdSchema,
53
+ MealPlanChangeRequestIdSchema: () => MealPlanChangeRequestIdSchema,
54
+ MealPlanChatMessageIdSchema: () => MealPlanChatMessageIdSchema,
55
+ MealPlanChatRoomIdSchema: () => MealPlanChatRoomIdSchema,
56
+ MealPlanIdSchema: () => MealPlanIdSchema,
57
+ MealPlanInviteIdSchema: () => MealPlanInviteIdSchema,
58
+ MealPlanJoinRequestIdSchema: () => MealPlanJoinRequestIdSchema,
59
+ MealPlanNearbyFriendExposureBatchIdSchema: () => MealPlanNearbyFriendExposureBatchIdSchema,
60
+ MealPlanShareLinkIdSchema: () => MealPlanShareLinkIdSchema,
61
+ MealPlanShareLinkTokenSchema: () => MealPlanShareLinkTokenSchema,
47
62
  MemberIdSchema: () => MemberIdSchema,
48
63
  NoBodySchema: () => NoBodySchema,
49
64
  NoContentSchema: () => NoContentSchema,
@@ -53,12 +68,9 @@ __export(common_exports, {
53
68
  PageMetaSchema: () => PageMetaSchema,
54
69
  PageQuerySchema: () => PageQuerySchema,
55
70
  PageResponseSchema: () => PageResponseSchema,
56
- PlanIdSchema: () => PlanIdSchema,
57
71
  PositiveIntIdSchema: () => PositiveIntIdSchema,
58
- RecruitIdSchema: () => RecruitIdSchema,
59
72
  ReferralCodeSchema: () => ReferralCodeSchema,
60
73
  RestaurantIdSchema: () => RestaurantIdSchema,
61
- RoomIdSchema: () => RoomIdSchema,
62
74
  SortDirectionSchema: () => SortDirectionSchema,
63
75
  SubscriptionIdSchema: () => SubscriptionIdSchema,
64
76
  TimeHHmmStringSchema: () => TimeHHmmStringSchema,
@@ -71,19 +83,25 @@ __export(common_exports, {
71
83
  toCommentId: () => toCommentId,
72
84
  toCouponId: () => toCouponId,
73
85
  toFriendRequestId: () => toFriendRequestId,
74
- toInvitationId: () => toInvitationId,
86
+ toMealGroupId: () => toMealGroupId,
87
+ toMealPlanChangeRequestId: () => toMealPlanChangeRequestId,
88
+ toMealPlanChatMessageId: () => toMealPlanChatMessageId,
89
+ toMealPlanChatRoomId: () => toMealPlanChatRoomId,
90
+ toMealPlanId: () => toMealPlanId,
91
+ toMealPlanInviteId: () => toMealPlanInviteId,
92
+ toMealPlanJoinRequestId: () => toMealPlanJoinRequestId,
93
+ toMealPlanNearbyFriendExposureBatchId: () => toMealPlanNearbyFriendExposureBatchId,
94
+ toMealPlanShareLinkId: () => toMealPlanShareLinkId,
95
+ toMealPlanShareLinkToken: () => toMealPlanShareLinkToken,
75
96
  toMemberId: () => toMemberId,
76
- toPlanId: () => toPlanId,
77
- toRecruitId: () => toRecruitId,
78
97
  toReferralCode: () => toReferralCode,
79
98
  toRestaurantId: () => toRestaurantId,
80
- toRoomId: () => toRoomId,
81
99
  toSubscriptionId: () => toSubscriptionId
82
100
  });
83
101
  module.exports = __toCommonJS(common_exports);
84
102
 
85
103
  // src/domain/common/contracts/api.ts
86
- var import_zod20 = require("zod");
104
+ var import_zod28 = require("zod");
87
105
 
88
106
  // src/domain/article/article.schema.ts
89
107
  var import_zod7 = require("zod");
@@ -92,7 +110,10 @@ var import_zod7 = require("zod");
92
110
  var import_zod = require("zod");
93
111
  var isoDateRegex = /^\d{4}-\d{2}-\d{2}$/;
94
112
  var ISODateStringSchema = import_zod.z.string().regex(isoDateRegex, "Expected ISO date string in YYYY-MM-DD format");
95
- var ISODateTimeStringSchema = import_zod.z.string().datetime({ offset: true, message: "Expected ISO datetime string" });
113
+ var ISODateTimeStringSchema = import_zod.z.string().datetime({
114
+ offset: true,
115
+ message: "Expected ISO datetime string"
116
+ });
96
117
  var TimeHHmmStringSchema = import_zod.z.string().regex(/^\d{2}:\d{2}$/, "Expected time string in HH:mm format");
97
118
 
98
119
  // src/domain/common/schema/id.schema.ts
@@ -103,10 +124,16 @@ var MemberIdSchema = PositiveIntIdSchema.brand();
103
124
  var UserIdSchema = MemberIdSchema;
104
125
  var ArticleIdSchema = PositiveIntIdSchema.brand();
105
126
  var CommentIdSchema = PositiveIntIdSchema.brand();
106
- var RecruitIdSchema = PositiveIntIdSchema.brand();
107
- var PlanIdSchema = PositiveIntIdSchema.brand();
108
- var InvitationIdSchema = PositiveIntIdSchema.brand();
109
- var RoomIdSchema = NonEmptyStringIdSchema.brand();
127
+ var MealPlanIdSchema = import_zod2.z.string().uuid().brand();
128
+ var MealPlanInviteIdSchema = import_zod2.z.string().uuid().brand();
129
+ var MealPlanJoinRequestIdSchema = import_zod2.z.string().uuid().brand();
130
+ var MealPlanNearbyFriendExposureBatchIdSchema = import_zod2.z.string().uuid().brand();
131
+ var MealPlanChangeRequestIdSchema = import_zod2.z.string().uuid().brand();
132
+ var MealPlanShareLinkIdSchema = import_zod2.z.string().uuid().brand();
133
+ var MealPlanShareLinkTokenSchema = import_zod2.z.string().min(8).max(128).brand();
134
+ var MealPlanChatRoomIdSchema = import_zod2.z.string().uuid().brand();
135
+ var MealPlanChatMessageIdSchema = import_zod2.z.string().uuid().brand();
136
+ var MealGroupIdSchema = import_zod2.z.string().uuid().brand();
110
137
  var RestaurantIdSchema = NonEmptyStringIdSchema.brand();
111
138
  var CouponIdSchema = PositiveIntIdSchema.brand();
112
139
  var SubscriptionIdSchema = PositiveIntIdSchema.brand();
@@ -133,11 +160,14 @@ var PageMetaSchema = import_zod3.z.object({
133
160
  hasNext: import_zod3.z.boolean(),
134
161
  hasPrevious: import_zod3.z.boolean()
135
162
  });
136
- var PageResponseSchema = (item) => import_zod3.z.object({
163
+ var PageResponseSchema = /* @__PURE__ */ __name((item) => import_zod3.z.object({
137
164
  items: import_zod3.z.array(item),
138
165
  meta: PageMetaSchema
139
- });
140
- var SortDirectionSchema = import_zod3.z.enum(["asc", "desc"]);
166
+ }), "PageResponseSchema");
167
+ var SortDirectionSchema = import_zod3.z.enum([
168
+ "asc",
169
+ "desc"
170
+ ]);
141
171
 
142
172
  // src/domain/member/member.schema.ts
143
173
  var import_zod5 = require("zod");
@@ -154,7 +184,66 @@ var UploadPresignImageRequestSchema = import_zod4.default.object({
154
184
  });
155
185
 
156
186
  // src/domain/member/member.schema.ts
157
- var MemberRoleSchema = import_zod5.z.enum(["USER", "ADMIN"]);
187
+ var MemberRoleSchema = import_zod5.z.enum([
188
+ "USER",
189
+ "ADMIN"
190
+ ]);
191
+ var LocationConsentStatusSchema = import_zod5.z.enum([
192
+ "UNKNOWN",
193
+ "GRANTED",
194
+ "DENIED"
195
+ ]);
196
+ var OnboardingStatusSchema = import_zod5.z.enum([
197
+ "REQUIRED",
198
+ "COMPLETED"
199
+ ]);
200
+ var PermissionKindSchema = import_zod5.z.enum([
201
+ "LOCATION",
202
+ "NOTIFICATION",
203
+ "CAMERA"
204
+ ]);
205
+ var PermissionStatusSchema = import_zod5.z.enum([
206
+ "UNKNOWN",
207
+ "PROMPT",
208
+ "GRANTED",
209
+ "DENIED",
210
+ "LIMITED",
211
+ "UNSUPPORTED"
212
+ ]);
213
+ var PermissionPlatformSchema = import_zod5.z.enum([
214
+ "WEB",
215
+ "IOS",
216
+ "ANDROID",
217
+ "UNKNOWN"
218
+ ]);
219
+ var DevicePermissionSnapshotSchema = import_zod5.z.object({
220
+ kind: PermissionKindSchema,
221
+ status: PermissionStatusSchema,
222
+ platform: PermissionPlatformSchema.default("UNKNOWN"),
223
+ canAskAgain: import_zod5.z.boolean().optional(),
224
+ checkedAt: import_zod5.z.string().datetime()
225
+ });
226
+ var MemberLocationSchema = import_zod5.z.object({
227
+ latitude: import_zod5.z.number().min(-90).max(90),
228
+ longitude: import_zod5.z.number().min(-180).max(180),
229
+ accuracyMeters: import_zod5.z.number().min(0).nullable().optional(),
230
+ capturedAt: import_zod5.z.string().datetime()
231
+ });
232
+ var UpdateMemberLocationRequestSchema = MemberLocationSchema;
233
+ var UpdateMemberLocationConsentRequestSchema = import_zod5.z.object({
234
+ locationConsentStatus: LocationConsentStatusSchema,
235
+ nearbyMealPlanExposureAllowed: import_zod5.z.boolean().default(false),
236
+ mealSuggestionAllowed: import_zod5.z.boolean().optional(),
237
+ permissionSnapshot: DevicePermissionSnapshotSchema.optional()
238
+ });
239
+ var MemberLocationSettingsResponseSchema = import_zod5.z.object({
240
+ locationConsentStatus: LocationConsentStatusSchema,
241
+ nearbyMealPlanExposureAllowed: import_zod5.z.boolean(),
242
+ mealSuggestionAllowed: import_zod5.z.boolean(),
243
+ lastKnownLocation: MemberLocationSchema.nullable(),
244
+ permissionSnapshot: DevicePermissionSnapshotSchema.nullable().optional(),
245
+ updatedAt: import_zod5.z.string().datetime().nullable()
246
+ });
158
247
  var MemberCoreSchema = import_zod5.z.object({
159
248
  memberId: MemberIdSchema,
160
249
  username: import_zod5.z.string().min(1).max(50),
@@ -166,6 +255,11 @@ var MemberResponseSchema = MemberCoreSchema.pick({
166
255
  memberId: true,
167
256
  username: true,
168
257
  profileImageUrl: true
258
+ }).extend({
259
+ onboardingStatus: OnboardingStatusSchema.default("REQUIRED"),
260
+ onboardingCompletedAt: import_zod5.z.string().datetime().nullable().default(null),
261
+ locationConsentStatus: LocationConsentStatusSchema.optional(),
262
+ nearbyMealPlanExposureAllowed: import_zod5.z.boolean().optional()
169
263
  });
170
264
  var MemberSearchQuerySchema = import_zod5.z.object({
171
265
  email: import_zod5.z.string().email().optional(),
@@ -176,7 +270,11 @@ var MemberDetailSchema = MemberCoreSchema.extend({
176
270
  bio: import_zod5.z.string().nullable(),
177
271
  friendConunt: import_zod5.z.number().int().min(0).default(0),
178
272
  completedPlans: import_zod5.z.number().int().min(0).default(0),
179
- uncompletedPlans: import_zod5.z.number().int().min(0).default(0)
273
+ uncompletedPlans: import_zod5.z.number().int().min(0).default(0),
274
+ onboardingStatus: OnboardingStatusSchema.default("REQUIRED"),
275
+ onboardingCompletedAt: import_zod5.z.string().datetime().nullable().default(null),
276
+ locationConsentStatus: LocationConsentStatusSchema.default("UNKNOWN"),
277
+ nearbyMealPlanExposureAllowed: import_zod5.z.boolean().default(false)
180
278
  });
181
279
  var FoodPreferenceItemSchema = FoodSchema.extend({});
182
280
  var MemberFoodPreferenceSchema = import_zod5.z.object({
@@ -191,9 +289,16 @@ var UpdateProfileRequestSchema = import_zod5.z.object({
191
289
  bio: import_zod5.z.string().max(500).nullable()
192
290
  });
193
291
  var UpdatePreferenceRequestSchema = MemberFoodPreferenceSchema;
194
- var CreateProfileRequestSchema = UpdateProfileRequestSchema.merge(
195
- UpdatePreferenceRequestSchema
196
- );
292
+ var CompleteOnboardingRequestSchema = UpdateProfileRequestSchema.merge(UpdatePreferenceRequestSchema);
293
+ var OnboardingDraftSchema = import_zod5.z.object({
294
+ username: import_zod5.z.string().min(1).max(50).optional(),
295
+ profileImageUrl: import_zod5.z.string().url().nullable().optional(),
296
+ bio: import_zod5.z.string().max(500).nullable().optional(),
297
+ liked: import_zod5.z.array(FoodPreferenceItemSchema).optional(),
298
+ disliked: import_zod5.z.array(FoodPreferenceItemSchema).optional(),
299
+ allergy: import_zod5.z.array(FoodPreferenceItemSchema).optional()
300
+ });
301
+ var CreateProfileRequestSchema = CompleteOnboardingRequestSchema;
197
302
 
198
303
  // src/domain/restaurant/restaurant.schema.ts
199
304
  var import_zod6 = require("zod");
@@ -225,7 +330,11 @@ var KakaoPlaceRawSchema = import_zod6.z.object({
225
330
  });
226
331
 
227
332
  // src/domain/article/article.schema.ts
228
- var ArticleSortBySchema = import_zod7.z.enum(["createdAt", "likeCount", "commentCount"]);
333
+ var ArticleSortBySchema = import_zod7.z.enum([
334
+ "createdAt",
335
+ "likeCount",
336
+ "commentCount"
337
+ ]);
229
338
  var ArticleListQuerySchema = PageQuerySchema.extend({
230
339
  sortBy: ArticleSortBySchema.optional().default("createdAt"),
231
340
  direction: SortDirectionSchema.optional().default("desc")
@@ -241,7 +350,8 @@ var CreateArticleRequestSchema = import_zod7.z.object({
241
350
  mealDate: ISODateStringSchema,
242
351
  restaurant: RestaurantSchema,
243
352
  taggedMemberIds: import_zod7.z.array(MemberIdSchema).default([]),
244
- foodAnalysis: FoodAnalysisResultSchema.optional()
353
+ foodAnalysis: FoodAnalysisResultSchema.optional(),
354
+ mealPlanId: MealPlanIdSchema.optional()
245
355
  });
246
356
  var CreateCommentRequestSchema = import_zod7.z.object({
247
357
  content: import_zod7.z.string().min(1).max(500),
@@ -261,6 +371,7 @@ var ArticleCoreSchema = import_zod7.z.object({
261
371
  imageUrl: import_zod7.z.string().url(),
262
372
  mealDate: ISODateStringSchema,
263
373
  restaurant: RestaurantSchema,
374
+ mealPlanId: MealPlanIdSchema.nullable(),
264
375
  createdAt: ISODateTimeStringSchema,
265
376
  updatedAt: ISODateTimeStringSchema,
266
377
  expiresAt: ISODateTimeStringSchema,
@@ -299,63 +410,143 @@ var SignupResponseSchema = import_zod8.z.object({
299
410
  member: MemberCoreSchema
300
411
  });
301
412
 
302
- // src/domain/promotion/challenge.schema.ts
413
+ // src/domain/common/schema/cache-invalidation.schema.ts
303
414
  var import_zod9 = require("zod");
304
- var RewardTypeSchema = import_zod9.z.enum(["WEEK", "MONTH"]);
305
- var WeekProgressSchema = import_zod9.z.object({
306
- days: import_zod9.z.array(import_zod9.z.boolean()),
307
- completed: import_zod9.z.number().int().min(0),
308
- goal: import_zod9.z.number().int().positive()
309
- });
310
- var MonthProgressSchema = import_zod9.z.object({
311
- count: import_zod9.z.number().int().min(0),
312
- goal: import_zod9.z.number().int().positive()
313
- });
314
- var ChallengeStatusResponseSchema = import_zod9.z.object({
315
- week: WeekProgressSchema,
316
- month: MonthProgressSchema,
317
- weekRewardAvailable: import_zod9.z.boolean(),
318
- monthRewardAvailable: import_zod9.z.boolean()
319
- });
320
- var ClaimChallengeRewardRequestSchema = import_zod9.z.object({
321
- type: RewardTypeSchema
322
- });
323
- var ClaimChallengeRewardResponseSchema = import_zod9.z.object({
324
- rewardType: RewardTypeSchema,
325
- claimed: import_zod9.z.boolean()
415
+ var CacheInvalidationEntitySchema = import_zod9.z.enum([
416
+ "article",
417
+ "mealPlan",
418
+ "mealPlanInvite",
419
+ "mealPlanParticipant",
420
+ "mealPlanDecision",
421
+ "mealPlanChat",
422
+ "mealGroup",
423
+ "notification",
424
+ "friend"
425
+ ]);
426
+ var CacheInvalidationActionSchema = import_zod9.z.enum([
427
+ "created",
428
+ "updated",
429
+ "deleted",
430
+ "accepted",
431
+ "rejected",
432
+ "cancelled",
433
+ "closed",
434
+ "joined",
435
+ "ready",
436
+ "confirmed",
437
+ "locked",
438
+ "completed",
439
+ "recorded",
440
+ "read"
441
+ ]);
442
+ var CacheInvalidationKeySchema = import_zod9.z.enum([
443
+ "articles",
444
+ "mealPlans",
445
+ "mealPlanDetail",
446
+ "mealPlanInvites",
447
+ "mealPlanJoinRequests",
448
+ "mealPlanNearbyFriends",
449
+ "mealPlanMessages",
450
+ "mealGroups",
451
+ "notifications",
452
+ "friends",
453
+ "friendMeals"
454
+ ]);
455
+ var CacheInvalidationEventSchema = import_zod9.z.object({
456
+ type: import_zod9.z.literal("cache.invalidate"),
457
+ entity: CacheInvalidationEntitySchema,
458
+ action: CacheInvalidationActionSchema,
459
+ id: import_zod9.z.union([
460
+ import_zod9.z.string(),
461
+ import_zod9.z.number()
462
+ ]).optional(),
463
+ keys: import_zod9.z.array(CacheInvalidationKeySchema).min(1),
464
+ occurredAt: import_zod9.z.string().datetime()
326
465
  });
327
466
 
328
467
  // src/domain/common/schema/envelope.schema.ts
329
468
  var import_zod10 = require("zod");
330
469
  var NoContentSchema = import_zod10.z.null();
331
- var ApiSuccessSchema = (data) => import_zod10.z.object({
470
+ var ApiSuccessSchema = /* @__PURE__ */ __name((data) => import_zod10.z.object({
332
471
  success: import_zod10.z.literal(true),
333
472
  code: import_zod10.z.number().int(),
334
473
  message: import_zod10.z.string(),
335
474
  data
336
- });
475
+ }), "ApiSuccessSchema");
337
476
  var ApiFailureSchema = import_zod10.z.object({
338
477
  success: import_zod10.z.literal(false),
339
478
  status: import_zod10.z.number().int(),
340
479
  code: import_zod10.z.string(),
341
480
  message: import_zod10.z.string()
342
481
  });
343
- var ApiResponseSchema = (data) => import_zod10.z.union([ApiSuccessSchema(data), ApiFailureSchema]);
482
+ var ApiResponseSchema = /* @__PURE__ */ __name((data) => import_zod10.z.union([
483
+ ApiSuccessSchema(data),
484
+ ApiFailureSchema
485
+ ]), "ApiResponseSchema");
344
486
  var CreatedEntityIdResponseSchema = import_zod10.z.discriminatedUnion("entity", [
345
- import_zod10.z.object({ entity: import_zod10.z.literal("article"), id: ArticleIdSchema }),
346
- import_zod10.z.object({ entity: import_zod10.z.literal("comment"), id: CommentIdSchema }),
347
- import_zod10.z.object({ entity: import_zod10.z.literal("recruit"), id: RecruitIdSchema }),
348
- import_zod10.z.object({ entity: import_zod10.z.literal("invitation"), id: InvitationIdSchema }),
349
- import_zod10.z.object({ entity: import_zod10.z.literal("subscription"), id: SubscriptionIdSchema }),
350
- import_zod10.z.object({ entity: import_zod10.z.literal("coupon"), id: CouponIdSchema }),
351
- import_zod10.z.object({ entity: import_zod10.z.literal("plan"), id: PlanIdSchema })
487
+ import_zod10.z.object({
488
+ entity: import_zod10.z.literal("article"),
489
+ id: ArticleIdSchema
490
+ }),
491
+ import_zod10.z.object({
492
+ entity: import_zod10.z.literal("comment"),
493
+ id: CommentIdSchema
494
+ }),
495
+ import_zod10.z.object({
496
+ entity: import_zod10.z.literal("subscription"),
497
+ id: SubscriptionIdSchema
498
+ }),
499
+ import_zod10.z.object({
500
+ entity: import_zod10.z.literal("coupon"),
501
+ id: CouponIdSchema
502
+ }),
503
+ import_zod10.z.object({
504
+ entity: import_zod10.z.literal("mealPlan"),
505
+ id: MealPlanIdSchema
506
+ }),
507
+ import_zod10.z.object({
508
+ entity: import_zod10.z.literal("mealPlanInvite"),
509
+ id: MealPlanInviteIdSchema
510
+ }),
511
+ import_zod10.z.object({
512
+ entity: import_zod10.z.literal("mealPlanJoinRequest"),
513
+ id: MealPlanJoinRequestIdSchema
514
+ }),
515
+ import_zod10.z.object({
516
+ entity: import_zod10.z.literal("mealPlanChangeRequest"),
517
+ id: MealPlanChangeRequestIdSchema
518
+ }),
519
+ import_zod10.z.object({
520
+ entity: import_zod10.z.literal("mealPlanShareLink"),
521
+ id: MealPlanShareLinkIdSchema
522
+ }),
523
+ import_zod10.z.object({
524
+ entity: import_zod10.z.literal("mealPlanChatMessage"),
525
+ id: MealPlanChatMessageIdSchema
526
+ }),
527
+ import_zod10.z.object({
528
+ entity: import_zod10.z.literal("mealGroup"),
529
+ id: MealGroupIdSchema
530
+ })
352
531
  ]);
353
532
 
354
533
  // src/domain/friend/friend.schema.ts
355
534
  var import_zod11 = require("zod");
356
- var FriendRequestStatusSchema = import_zod11.z.enum(["PENDING", "ACCEPTED", "REJECTED", "CANCELED"]);
535
+ var FriendRequestStatusSchema = import_zod11.z.enum([
536
+ "PENDING",
537
+ "ACCEPTED",
538
+ "REJECTED",
539
+ "CANCELED"
540
+ ]);
541
+ var FriendMealAvailabilitySchema = import_zod11.z.object({
542
+ isHungry: import_zod11.z.boolean(),
543
+ mealProposalAllowed: import_zod11.z.boolean(),
544
+ mealStatusExpiresAt: ISODateTimeStringSchema.nullable(),
545
+ nearbyMealPlanExposureAllowed: import_zod11.z.boolean()
546
+ });
357
547
  var FriendListItemResponseSchema = MemberCoreSchema.extend({
358
- friendSince: ISODateTimeStringSchema
548
+ friendSince: ISODateTimeStringSchema,
549
+ mealAvailability: FriendMealAvailabilitySchema.optional()
359
550
  });
360
551
  var FriendBlockItemResponseSchema = MemberCoreSchema.extend({
361
552
  blockedAt: ISODateTimeStringSchema
@@ -371,430 +562,1932 @@ var FriendRequestItemResponseSchema = import_zod11.z.object({
371
562
  var FriendSearchQuerySchema = import_zod11.z.string().min(1).max(50);
372
563
  var FriendSearchResponseSchema = import_zod11.z.array(MemberCoreSchema);
373
564
 
374
- // src/domain/invitation/invitation.schema.ts
375
- var import_zod12 = require("zod");
376
- var CreateInvitationRequestSchema = import_zod12.z.object({
377
- inviteeId: MemberIdSchema,
378
- message: import_zod12.z.string().min(1).max(500)
379
- });
380
- var InvitationListItemResponseSchema = import_zod12.z.object({
381
- invitationId: InvitationIdSchema,
382
- inviterName: import_zod12.z.string(),
383
- inviterProfileImageUrl: import_zod12.z.string().url().nullable().optional()
384
- });
385
- var SendInvitationResponseSchema = import_zod12.z.object({
386
- invitationId: InvitationIdSchema
387
- });
388
- var AcceptInvitationResponseSchema = import_zod12.z.object({
389
- invitationId: InvitationIdSchema,
390
- room: import_zod12.z.object({
391
- type: import_zod12.z.literal("invitation"),
392
- roomId: RoomIdSchema
393
- })
394
- });
395
-
396
565
  // src/domain/meal/meal.schema.ts
397
- var import_zod13 = require("zod");
398
- var MealStatusResponseSchema = import_zod13.z.object({
399
- hungry: import_zod13.z.boolean(),
400
- label: import_zod13.z.string(),
566
+ var import_zod12 = require("zod");
567
+ var MealStatusResponseSchema = import_zod12.z.object({
568
+ hungry: import_zod12.z.boolean(),
569
+ label: import_zod12.z.string(),
401
570
  updatedAt: ISODateStringSchema,
402
- secondsToAutoOff: import_zod13.z.number().int().min(0)
571
+ secondsToAutoOff: import_zod12.z.number().int().min(0)
403
572
  });
404
- var MealStatusActionSchema = import_zod13.z.enum(["ARTICLE_UPLOAD", "SET_MANNUALY"]);
405
- var UpdateMealStatusRequestSchema = import_zod13.z.object({
573
+ var MealStatusActionSchema = import_zod12.z.enum([
574
+ "ARTICLE_UPLOAD",
575
+ "SET_MANNUALY"
576
+ ]);
577
+ var UpdateMealStatusRequestSchema = import_zod12.z.object({
406
578
  action: MealStatusActionSchema.optional().default("SET_MANNUALY")
407
579
  });
408
- var MealStatusSchema = import_zod13.z.enum(["ALL", "HUNGRY", "NOT_HUNGRY"]);
409
- var FriendMealQuerySchema = import_zod13.z.object({
580
+ var MealStatusSchema = import_zod12.z.enum([
581
+ "ALL",
582
+ "HUNGRY",
583
+ "NOT_HUNGRY"
584
+ ]);
585
+ var FriendMealQuerySchema = import_zod12.z.object({
410
586
  status: MealStatusSchema.optional().default("ALL")
411
587
  });
412
588
  var FriendMealItemResponseSchema = MemberCoreSchema.extend({
413
- hungry: import_zod13.z.boolean(),
414
- label: import_zod13.z.string(),
589
+ hungry: import_zod12.z.boolean(),
590
+ label: import_zod12.z.string(),
415
591
  updatedAt: ISODateStringSchema
416
592
  });
417
593
 
418
- // src/domain/plan/plan.schema.ts
419
- var import_zod15 = require("zod");
594
+ // src/domain/meal-plan/meal-plan.schema.ts
595
+ var import_zod18 = require("zod");
420
596
 
421
- // src/domain/room/schema/room.schema.ts
422
- var import_zod14 = require("zod");
423
- var MenuCodeSchema = FoodCodeSchema;
424
- var LocationIdSchema = import_zod14.z.string().min(1).brand();
425
- var MenuSchema = FoodSchema.extend({});
426
- var LocationCandidateSchema = import_zod14.z.object({
427
- locationId: LocationIdSchema,
428
- placeName: import_zod14.z.string(),
429
- lat: import_zod14.z.number(),
430
- lng: import_zod14.z.number(),
431
- address: import_zod14.z.string()
432
- });
433
- var ParticipantSchema = MemberCoreSchema.extend({
434
- ready: import_zod14.z.boolean()
435
- });
436
- var RecruitRoomStageSchema = import_zod14.z.enum([
437
- "waiting",
438
- "location",
439
- "location-vote",
440
- "exclude-menu",
441
- "menu",
442
- "restaurant",
443
- "finish"
597
+ // src/domain/meal-plan/meal-plan-decision.schema.ts
598
+ var import_zod13 = require("zod");
599
+ var MealPlanLatitudeSchema = import_zod13.z.number().brand();
600
+ var MealPlanLongitudeSchema = import_zod13.z.number().brand();
601
+ var MealPlanLocationCandidateIdSchema = import_zod13.z.string().min(1).brand();
602
+ var MealPlanMenuCandidateIdSchema = import_zod13.z.string().min(1).brand();
603
+ var MealPlanDecisionStageIdSchema = import_zod13.z.string().uuid().brand();
604
+ var MealPlanVoteIdSchema = import_zod13.z.string().uuid().brand();
605
+ var MealPlanLocationCandidateSourceSchema = import_zod13.z.enum([
606
+ "manual",
607
+ "midpoint",
608
+ "search",
609
+ "recent-place",
610
+ "fallback"
611
+ ]);
612
+ var MealPlanLocationCandidateSchema = import_zod13.z.object({
613
+ locationId: MealPlanLocationCandidateIdSchema,
614
+ placeName: import_zod13.z.string().min(1),
615
+ lat: MealPlanLatitudeSchema,
616
+ lng: MealPlanLongitudeSchema,
617
+ address: import_zod13.z.string().default(""),
618
+ source: MealPlanLocationCandidateSourceSchema.default("manual"),
619
+ createdBy: MemberIdSchema.optional(),
620
+ createdAt: ISODateTimeStringSchema.optional()
621
+ });
622
+ var MealPlanMenuCandidateSourceSchema = import_zod13.z.enum([
623
+ "external-recommendation",
624
+ "prefer-menu",
625
+ "recent-menu",
626
+ "fallback",
627
+ "manual-search"
628
+ ]);
629
+ var MealPlanMenuCandidateSchema = import_zod13.z.object({
630
+ menuCandidateId: MealPlanMenuCandidateIdSchema,
631
+ menu: FoodSchema,
632
+ source: MealPlanMenuCandidateSourceSchema,
633
+ score: import_zod13.z.number().default(0),
634
+ createdAt: ISODateTimeStringSchema
635
+ });
636
+ var MealPlanRestaurantCandidateSchema = RestaurantSchema.extend({
637
+ candidateId: RestaurantIdSchema.optional(),
638
+ source: import_zod13.z.enum([
639
+ "search",
640
+ "fallback",
641
+ "manual"
642
+ ]).optional(),
643
+ createdAt: ISODateTimeStringSchema.optional()
644
+ });
645
+ var MealPlanDecisionStageTypeSchema = import_zod13.z.enum([
646
+ "DATE",
647
+ "TIME",
648
+ "AREA",
649
+ "MENU",
650
+ "RESTAURANT",
651
+ "FINAL_CONFIRMATION"
444
652
  ]);
445
- var RoomTypeSchema = import_zod14.z.enum(["recruit", "invitation"]);
446
- var InvitationRoomStageSchema = import_zod14.z.enum([
447
- "waiting",
653
+ var MealPlanDecisionStageStatusSchema = import_zod13.z.enum([
654
+ "OPEN",
655
+ "COMPLETED",
656
+ "REOPENED"
657
+ ]);
658
+ var MealPlanRestaurantSearchStatusSchema = import_zod13.z.enum([
659
+ "IDLE",
660
+ "PENDING",
661
+ "READY",
662
+ "FAILED",
663
+ "STALE"
664
+ ]);
665
+ var MealPlanRestaurantSearchStateSchema = import_zod13.z.object({
666
+ searchKey: import_zod13.z.string().min(1).nullable(),
667
+ status: MealPlanRestaurantSearchStatusSchema,
668
+ startedAt: ISODateTimeStringSchema.nullable(),
669
+ completedAt: ISODateTimeStringSchema.nullable(),
670
+ version: import_zod13.z.number().int().min(0),
671
+ candidateCount: import_zod13.z.number().int().min(0),
672
+ errorMessage: import_zod13.z.string().nullable().default(null)
673
+ });
674
+ var MealPlanDecisionStageMetadataSchema = import_zod13.z.object({
675
+ restaurantSearch: MealPlanRestaurantSearchStateSchema.optional()
676
+ }).catchall(import_zod13.z.unknown());
677
+ var MealPlanVoteTypeSchema = import_zod13.z.enum([
678
+ "PICK",
679
+ "EXCLUDE",
680
+ "PREFER",
681
+ "READY"
682
+ ]);
683
+ var MealPlanDecisionCandidateSchema = import_zod13.z.discriminatedUnion("stageType", [
684
+ import_zod13.z.object({
685
+ stageType: import_zod13.z.literal("DATE"),
686
+ value: ISODateStringSchema
687
+ }),
688
+ import_zod13.z.object({
689
+ stageType: import_zod13.z.literal("TIME"),
690
+ value: TimeHHmmStringSchema
691
+ }),
692
+ import_zod13.z.object({
693
+ stageType: import_zod13.z.literal("AREA"),
694
+ value: MealPlanLocationCandidateSchema
695
+ }),
696
+ import_zod13.z.object({
697
+ stageType: import_zod13.z.literal("MENU"),
698
+ value: MealPlanMenuCandidateSchema
699
+ }),
700
+ import_zod13.z.object({
701
+ stageType: import_zod13.z.literal("RESTAURANT"),
702
+ value: MealPlanRestaurantCandidateSchema
703
+ }),
704
+ import_zod13.z.object({
705
+ stageType: import_zod13.z.literal("FINAL_CONFIRMATION"),
706
+ value: import_zod13.z.literal("READY")
707
+ })
708
+ ]);
709
+ var MealPlanVoteSchema = import_zod13.z.object({
710
+ voteId: MealPlanVoteIdSchema,
711
+ voterId: MemberIdSchema.nullable(),
712
+ guestId: import_zod13.z.string().min(1).nullable(),
713
+ voteType: MealPlanVoteTypeSchema,
714
+ candidate: MealPlanDecisionCandidateSchema,
715
+ createdAt: ISODateTimeStringSchema
716
+ });
717
+ var MealPlanDecisionStageResponseSchema = import_zod13.z.object({
718
+ stageId: MealPlanDecisionStageIdSchema,
719
+ stageType: MealPlanDecisionStageTypeSchema,
720
+ status: MealPlanDecisionStageStatusSchema,
721
+ candidates: import_zod13.z.array(MealPlanDecisionCandidateSchema),
722
+ votes: import_zod13.z.array(MealPlanVoteSchema),
723
+ selectedCandidate: MealPlanDecisionCandidateSchema.nullable(),
724
+ metadata: MealPlanDecisionStageMetadataSchema.nullable().default(null),
725
+ openedAt: ISODateTimeStringSchema,
726
+ completedAt: ISODateTimeStringSchema.nullable(),
727
+ reopenedAt: ISODateTimeStringSchema.nullable()
728
+ });
729
+ var CreateMealPlanVoteRequestSchema = import_zod13.z.object({
730
+ voteType: MealPlanVoteTypeSchema,
731
+ candidate: MealPlanDecisionCandidateSchema
732
+ });
733
+ var CompleteMealPlanDecisionStageRequestSchema = import_zod13.z.object({
734
+ selectedCandidate: MealPlanDecisionCandidateSchema
735
+ });
736
+ var MealPlanChangeRequestStatusSchema = import_zod13.z.enum([
737
+ "PENDING",
738
+ "ACCEPTED",
739
+ "REJECTED",
740
+ "CANCELLED"
741
+ ]);
742
+ var CreateMealPlanChangeRequestSchema = import_zod13.z.object({
743
+ stageType: MealPlanDecisionStageTypeSchema,
744
+ reason: import_zod13.z.string().min(1).max(500),
745
+ proposedCandidate: MealPlanDecisionCandidateSchema.optional()
746
+ });
747
+ var MealPlanChangeRequestSummarySchema = import_zod13.z.object({
748
+ changeRequestId: MealPlanChangeRequestIdSchema,
749
+ stageType: MealPlanDecisionStageTypeSchema,
750
+ status: MealPlanChangeRequestStatusSchema,
751
+ reason: import_zod13.z.string(),
752
+ requestedAt: ISODateTimeStringSchema
753
+ });
754
+ var MealPlanDecisionTaskKeySchema = import_zod13.z.enum([
755
+ "SCHEDULE_DATE",
756
+ "SCHEDULE_TIME",
757
+ "LOCATION_CANDIDATE",
758
+ "LOCATION_VOTE",
759
+ "EXCLUDE_MENU",
760
+ "PREFER_MENU",
761
+ "MENU_PICK",
762
+ "RESTAURANT_SEARCH",
763
+ "RESTAURANT_PICK",
764
+ "FINAL_CONFIRMATION"
765
+ ]);
766
+ var MealPlanDecisionTaskStatusSchema = import_zod13.z.enum([
767
+ "LOCKED",
768
+ "OPEN",
769
+ "READY",
770
+ "RESOLVED",
771
+ "STALE"
772
+ ]);
773
+ var MealPlanDecisionFinalFieldSchema = import_zod13.z.enum([
448
774
  "date",
449
775
  "time",
450
- "location",
451
- "location-vote",
452
- "exclude-menu",
776
+ "meetingAt",
777
+ "area",
453
778
  "menu",
454
- "restaurant",
455
- "finish"
456
- ]);
457
- var ReadyStateRequestSchema = import_zod14.z.object({
458
- isReady: import_zod14.z.boolean()
459
- });
460
- var ChatMessageRequestSchema = import_zod14.z.object({
461
- message: import_zod14.z.string().min(1).max(500)
462
- });
463
- var VoteLocationRequestSchema = import_zod14.z.object({ locationId: LocationIdSchema });
464
- var ExcludeMenuRequestSchema = import_zod14.z.object({ menu: MenuSchema });
465
- var PickMenuRequestSchema = import_zod14.z.object({ menuCode: MenuCodeSchema });
466
- var PickRestaurantRequestSchema = import_zod14.z.object({ restaurantId: RestaurantIdSchema });
467
- var PickTimesRequestSchema = import_zod14.z.object({ times: import_zod14.z.array(import_zod14.z.string().min(1)).min(1) });
468
- var PickDateRequestSchema = import_zod14.z.object({ dates: import_zod14.z.array(ISODateStringSchema).min(1) });
469
- var RoomAssignedResponseSchema = import_zod14.z.object({
470
- roomId: RoomIdSchema
471
- });
472
- var RoomAccessResponseSchema = import_zod14.z.object({
473
- roomId: RoomIdSchema,
474
- roomType: RoomTypeSchema,
475
- stage: import_zod14.z.union([RecruitRoomStageSchema, InvitationRoomStageSchema]),
476
- canJoin: import_zod14.z.boolean()
477
- });
478
- var MatchingNotificationKindSchema = import_zod14.z.enum(["recruit", "invitation"]);
479
- var MatchingNotificationSchema = import_zod14.z.object({
480
- notificationId: import_zod14.z.string().min(1),
481
- kind: MatchingNotificationKindSchema,
482
- roomId: RoomIdSchema,
483
- roomType: RoomTypeSchema,
484
- title: import_zod14.z.string().min(1),
485
- message: import_zod14.z.string().min(1),
779
+ "restaurant"
780
+ ]);
781
+ var MealPlanDecisionSnapshotStatusSchema = import_zod13.z.enum([
782
+ "CANDIDATE",
783
+ "PROVISIONAL",
784
+ "FINAL",
785
+ "STALE"
786
+ ]);
787
+ var MealPlanDecisionReasonSchema = import_zod13.z.enum([
788
+ "COMMON_SCHEDULE",
789
+ "TOP_VOTED_LOCATION",
790
+ "TOP_PICKED_MENU",
791
+ "TOP_PICKED_RESTAURANT",
792
+ "OWNER_CONFIRMED",
793
+ "TASK_ALL_READY",
794
+ "MANUAL_SELECTION"
795
+ ]);
796
+ var MealPlanDecisionActorTypeSchema = import_zod13.z.enum([
797
+ "MEMBER",
798
+ "GUEST",
799
+ "SYSTEM"
800
+ ]);
801
+ var MealPlanDecisionSnapshotSchema = import_zod13.z.object({
802
+ snapshotId: import_zod13.z.string().uuid(),
803
+ mealPlanId: import_zod13.z.string().uuid(),
804
+ field: MealPlanDecisionFinalFieldSchema,
805
+ value: import_zod13.z.unknown(),
806
+ status: MealPlanDecisionSnapshotStatusSchema,
807
+ reason: MealPlanDecisionReasonSchema,
808
+ score: import_zod13.z.number().nullable().default(null),
809
+ sourceEvent: import_zod13.z.string().min(1),
810
+ sourceActorType: MealPlanDecisionActorTypeSchema,
811
+ sourceMemberId: MemberIdSchema.nullable(),
812
+ sourceGuestId: import_zod13.z.string().min(1).nullable(),
813
+ sourceParticipantId: import_zod13.z.string().uuid().nullable(),
814
+ sourceVersion: import_zod13.z.number().int().min(0),
815
+ dependencyHash: import_zod13.z.string().min(1),
816
+ dependencyFields: import_zod13.z.array(MealPlanDecisionFinalFieldSchema),
486
817
  createdAt: ISODateTimeStringSchema,
487
- readAt: ISODateTimeStringSchema.nullable()
818
+ staleAt: ISODateTimeStringSchema.nullable()
819
+ });
820
+ var MealPlanDecisionTaskProgressSchema = import_zod13.z.object({
821
+ taskKey: MealPlanDecisionTaskKeySchema,
822
+ status: MealPlanDecisionTaskStatusSchema,
823
+ readyCount: import_zod13.z.number().int().min(0),
824
+ participantCount: import_zod13.z.number().int().min(0),
825
+ blockers: import_zod13.z.array(import_zod13.z.string()).default([]),
826
+ updatedAt: ISODateTimeStringSchema
488
827
  });
489
- var RoomSocketErrorSchema = import_zod14.z.object({
490
- code: import_zod14.z.string(),
491
- message: import_zod14.z.string()
828
+ var MealPlanDecisionProgressSchema = import_zod13.z.object({
829
+ mealPlanId: import_zod13.z.string().uuid(),
830
+ status: import_zod13.z.string().min(1),
831
+ tasks: import_zod13.z.array(MealPlanDecisionTaskProgressSchema),
832
+ final: import_zod13.z.record(import_zod13.z.string(), import_zod13.z.unknown()),
833
+ provisional: import_zod13.z.record(import_zod13.z.string(), import_zod13.z.unknown()),
834
+ snapshots: import_zod13.z.array(MealPlanDecisionSnapshotSchema),
835
+ version: import_zod13.z.number().int().min(0),
836
+ updatedAt: ISODateTimeStringSchema
492
837
  });
493
- var ChatMessageResponseSchema = import_zod14.z.object({
494
- messageId: import_zod14.z.string(),
495
- user: MemberCoreSchema,
496
- message: import_zod14.z.string(),
497
- createdAt: ISODateTimeStringSchema
838
+ var MealPlanDecisionTaskReadyRequestSchema = import_zod13.z.object({
839
+ isReady: import_zod13.z.boolean()
498
840
  });
499
- var ReadyStateChangedSchema = import_zod14.z.object({
500
- readyCount: import_zod14.z.number().int().min(0),
501
- participantCount: import_zod14.z.number().int().min(0)
502
- });
503
- var FinalStateSchema = import_zod14.z.object({
504
- location: LocationCandidateSchema.optional(),
505
- excludeMenu: import_zod14.z.array(MenuSchema).optional(),
506
- menu: MenuSchema.optional(),
507
- restaurant: RestaurantSchema.optional(),
508
- time: import_zod14.z.string().optional(),
509
- date: ISODateStringSchema.optional()
510
- });
511
- var RoomInitialStateSchema = import_zod14.z.object({
512
- participants: import_zod14.z.array(ParticipantSchema),
513
- chat: import_zod14.z.array(ChatMessageResponseSchema),
514
- final: FinalStateSchema
515
- });
516
- var TimePicksUpdateResponseSchema = import_zod14.z.array(
517
- import_zod14.z.object({ memberId: MemberIdSchema, times: import_zod14.z.array(import_zod14.z.string()) })
518
- );
519
- var DatePicksUpdateResponseSchema = import_zod14.z.array(
520
- import_zod14.z.object({ memberId: MemberIdSchema, dates: import_zod14.z.array(ISODateStringSchema) })
521
- );
522
- var LocationCandidateAddUpdateResponseSchema = import_zod14.z.array(
523
- LocationCandidateSchema.extend({ authorMemberId: MemberIdSchema })
524
- );
525
- var LocationCandidateVoteUpdateResponseSchema = import_zod14.z.array(
526
- import_zod14.z.object({ locationId: LocationIdSchema, votes: import_zod14.z.array(MemberIdSchema) })
527
- );
528
- var ExcludeMenuUpdateResponseSchema = import_zod14.z.array(
529
- import_zod14.z.object({ memberId: MemberIdSchema, exclusions: import_zod14.z.array(MenuSchema) })
530
- );
531
- var MenuPickUpdateResponseSchema = import_zod14.z.array(
532
- import_zod14.z.object({ menuCode: MenuCodeSchema, selectedMembers: import_zod14.z.array(MemberIdSchema) })
533
- );
534
- var RestaurantPickUpdateResponseSchema = import_zod14.z.array(
535
- import_zod14.z.object({ restaurantId: RestaurantIdSchema, selectedMembers: import_zod14.z.array(MemberIdSchema) })
536
- );
537
- var WaitingPhaseDataSchema = import_zod14.z.object({
538
- locationInitial: import_zod14.z.string().optional(),
539
- meetingAt: ISODateTimeStringSchema.optional()
540
- });
541
- var LocationVotePhaseDataSchema = import_zod14.z.object({
542
- locations: LocationCandidateAddUpdateResponseSchema,
543
- votes: LocationCandidateVoteUpdateResponseSchema
544
- });
545
- var ExcludeMenuPhaseDataSchema = import_zod14.z.object({
546
- recentMenus: import_zod14.z.array(import_zod14.z.object({ userId: import_zod14.z.string(), menuList: import_zod14.z.array(MenuSchema) })),
547
- excludedMenuList: ExcludeMenuUpdateResponseSchema
548
- });
549
- var MenuPhaseDataSchema = import_zod14.z.object({
550
- initialMenus: import_zod14.z.array(MenuSchema),
551
- menuPick: MenuPickUpdateResponseSchema
552
- });
553
- var RestaurantPhaseDataSchema = import_zod14.z.object({
554
- initialRestaurants: import_zod14.z.array(RestaurantSchema),
555
- restaurantUserList: RestaurantPickUpdateResponseSchema
556
- });
557
- var PhaseDataBroadcastSchema = import_zod14.z.discriminatedUnion("phase", [
558
- import_zod14.z.object({ phase: import_zod14.z.literal("waiting"), data: WaitingPhaseDataSchema }),
559
- import_zod14.z.object({ phase: import_zod14.z.literal("date"), data: DatePicksUpdateResponseSchema }),
560
- import_zod14.z.object({ phase: import_zod14.z.literal("time"), data: TimePicksUpdateResponseSchema }),
561
- import_zod14.z.object({ phase: import_zod14.z.literal("location"), data: WaitingPhaseDataSchema }),
562
- import_zod14.z.object({ phase: import_zod14.z.literal("location-vote"), data: LocationVotePhaseDataSchema }),
563
- import_zod14.z.object({ phase: import_zod14.z.literal("exclude-menu"), data: ExcludeMenuPhaseDataSchema }),
564
- import_zod14.z.object({ phase: import_zod14.z.literal("menu"), data: MenuPhaseDataSchema }),
565
- import_zod14.z.object({ phase: import_zod14.z.literal("restaurant"), data: RestaurantPhaseDataSchema }),
566
- import_zod14.z.object({ phase: import_zod14.z.literal("finish"), data: WaitingPhaseDataSchema })
567
- ]);
568
-
569
- // src/domain/plan/plan.schema.ts
570
- var PlanStatusSchema = import_zod15.z.enum(["PLANNING", "COMPLETED"]);
571
- var PlanTypeSchema = import_zod15.z.enum(["RECRUIT", "INVITATION"]);
572
- var PlanResponseSchema = import_zod15.z.object({
573
- planId: PlanIdSchema,
574
- meetingAt: ISODateTimeStringSchema,
575
- location: LocationCandidateSchema.nullable(),
576
- restaurant: RestaurantSchema.nullable(),
577
- author: MemberCoreSchema,
578
- participants: import_zod15.z.array(MemberCoreSchema),
579
- status: PlanStatusSchema,
580
- type: PlanTypeSchema,
841
+ var ReopenMealPlanDecisionTaskRequestSchema = import_zod13.z.object({
842
+ reason: import_zod13.z.string().max(500).optional()
843
+ });
844
+ var ConfirmMealPlanDecisionSnapshotRequestSchema = import_zod13.z.object({
845
+ snapshotId: import_zod13.z.string().uuid()
846
+ });
847
+
848
+ // src/domain/meal-plan/meal-plan-participant.schema.ts
849
+ var import_zod14 = require("zod");
850
+ var MealPlanParticipantIdSchema = import_zod14.z.string().uuid().brand();
851
+ var MealPlanParticipantRoleSchema = import_zod14.z.enum([
852
+ "OWNER",
853
+ "FRIEND",
854
+ "GUEST"
855
+ ]);
856
+ var MealPlanParticipantStatusSchema = import_zod14.z.enum([
857
+ "INVITED",
858
+ "REQUESTED",
859
+ "JOINED",
860
+ "READY",
861
+ "DECLINED",
862
+ "LEFT",
863
+ "REMOVED"
864
+ ]);
865
+ var MealPlanJoinSourceSchema = import_zod14.z.enum([
866
+ "OWNER",
867
+ "FRIEND_INVITE",
868
+ "LINK_GUEST",
869
+ "NEARBY_FRIENDS"
870
+ ]);
871
+ var MealPlanGuestParticipantSchema = import_zod14.z.object({
872
+ guestId: import_zod14.z.string().min(1),
873
+ nickname: import_zod14.z.string().min(1).max(50)
874
+ });
875
+ var MealPlanParticipantResponseSchema = import_zod14.z.object({
876
+ participantId: MealPlanParticipantIdSchema,
877
+ mealPlanId: MealPlanIdSchema,
878
+ member: MemberCoreSchema.nullable(),
879
+ guest: MealPlanGuestParticipantSchema.nullable(),
880
+ role: MealPlanParticipantRoleSchema,
881
+ status: MealPlanParticipantStatusSchema,
882
+ source: MealPlanJoinSourceSchema,
883
+ joinedAt: ISODateTimeStringSchema.nullable(),
884
+ readyAt: ISODateTimeStringSchema.nullable()
885
+ });
886
+ var CreateMealPlanParticipantRequestSchema = import_zod14.z.object({
887
+ memberId: MemberIdSchema.optional(),
888
+ guestNickname: import_zod14.z.string().min(1).max(50).optional(),
889
+ source: MealPlanJoinSourceSchema
890
+ });
891
+
892
+ // src/domain/meal-plan/meal-plan-invite.schema.ts
893
+ var import_zod15 = require("zod");
894
+ var MealPlanInviteStatusSchema = import_zod15.z.enum([
895
+ "PENDING",
896
+ "ACCEPTED",
897
+ "DECLINED",
898
+ "CANCELLED",
899
+ "EXPIRED"
900
+ ]);
901
+ var CreateMealPlanInviteRequestSchema = import_zod15.z.object({
902
+ inviteeId: MemberIdSchema,
903
+ message: import_zod15.z.string().max(500).default("")
904
+ });
905
+ var MealPlanInviteSummarySchema = import_zod15.z.object({
906
+ inviteId: MealPlanInviteIdSchema,
907
+ mealPlanId: MealPlanIdSchema,
908
+ inviter: MemberCoreSchema,
909
+ invitee: MemberCoreSchema,
910
+ status: MealPlanInviteStatusSchema,
911
+ message: import_zod15.z.string().max(500),
581
912
  createdAt: ISODateTimeStringSchema,
582
- updatedAt: ISODateTimeStringSchema
913
+ respondedAt: ISODateTimeStringSchema.nullable()
914
+ });
915
+ var MealPlanInviteListResponseSchema = import_zod15.z.array(MealPlanInviteSummarySchema);
916
+ var SendMealPlanInviteResponseSchema = import_zod15.z.object({
917
+ inviteId: MealPlanInviteIdSchema
583
918
  });
584
- var PlanListQuerySchema = import_zod15.z.object({});
585
919
 
586
- // src/domain/recruit/recruit.schema.ts
920
+ // src/domain/meal-plan/meal-plan-nearby-friend.schema.ts
587
921
  var import_zod16 = require("zod");
588
- var RecruitStatusSchema = import_zod16.z.enum(["OPEN", "CLOSED", "EXPIRED"]);
589
- var RecruitParticipantSchema = MemberCoreSchema.extend({});
590
- var RecruitSortBySchema = import_zod16.z.enum(["createdAt", "deadline", "participantCount"]);
591
- var RecruitListQuerySchema = PageQuerySchema.extend({
592
- sortBy: RecruitSortBySchema.default("createdAt"),
593
- direction: SortDirectionSchema.default("desc")
594
- });
595
- var RecruitResponseSchema = import_zod16.z.object({
596
- targetCount: import_zod16.z.number().int().min(2),
597
- meetingAt: ISODateTimeStringSchema,
598
- location: import_zod16.z.string().min(1),
922
+ var MealPlanNearbyFriendExposureIdSchema = import_zod16.z.string().uuid().brand();
923
+ var MealPlanNearbyFriendExposureStatusSchema = import_zod16.z.enum([
924
+ "OPEN",
925
+ "CLOSED",
926
+ "EXPIRED"
927
+ ]);
928
+ var MealPlanNearbyFriendExposureNotificationStatusSchema = import_zod16.z.enum([
929
+ "PENDING",
930
+ "SENT",
931
+ "PARTIAL",
932
+ "FAILED",
933
+ "SKIPPED"
934
+ ]);
935
+ var ExposeMealPlanToNearbyFriendsRequestSchema = import_zod16.z.object({
936
+ radiusMeters: import_zod16.z.number().int().min(100).max(5e3).default(1e3),
937
+ expiresAt: ISODateTimeStringSchema.optional()
938
+ });
939
+ var NearbyFriendExposureEligibilitySchema = import_zod16.z.object({
940
+ canExpose: import_zod16.z.boolean(),
941
+ locationConsentStatus: LocationConsentStatusSchema,
942
+ nearbyMealPlanExposureAllowed: import_zod16.z.boolean(),
943
+ mealSuggestionAllowed: import_zod16.z.boolean(),
944
+ hasLastKnownLocation: import_zod16.z.boolean(),
945
+ missingRequirements: import_zod16.z.array(import_zod16.z.enum([
946
+ "LOCATION_PERMISSION",
947
+ "SERVICE_LOCATION_CONSENT",
948
+ "NEARBY_EXPOSURE_TOGGLE",
949
+ "MEAL_SUGGESTION_TOGGLE",
950
+ "LAST_KNOWN_LOCATION"
951
+ ]))
952
+ });
953
+ var MealPlanNearbyFriendRejectionReasonSchema = import_zod16.z.enum([
954
+ "NOT_FRIEND",
955
+ "BLOCKED",
956
+ "LOCATION_CONSENT_REQUIRED",
957
+ "LOCATION_UNAVAILABLE",
958
+ "OUT_OF_RADIUS",
959
+ "MEAL_SUGGESTION_DISABLED",
960
+ "NOT_HUNGRY"
961
+ ]);
962
+ var MealPlanNearbyFriendRejectionSummarySchema = import_zod16.z.object({
963
+ reason: MealPlanNearbyFriendRejectionReasonSchema,
964
+ count: import_zod16.z.number().int().min(0)
965
+ });
966
+ var ExposeMealPlanToNearbyFriendsResponseSchema = import_zod16.z.object({
967
+ mealPlanId: MealPlanIdSchema,
968
+ exposureBatchId: MealPlanNearbyFriendExposureBatchIdSchema,
969
+ exposedFriendCount: import_zod16.z.number().int().min(0),
970
+ rejectedFriendCount: import_zod16.z.number().int().min(0),
971
+ notificationStatus: MealPlanNearbyFriendExposureNotificationStatusSchema,
972
+ rejectionSummary: import_zod16.z.array(MealPlanNearbyFriendRejectionSummarySchema)
973
+ });
974
+ var MealPlanNearbyFriendExposureSummarySchema = import_zod16.z.object({
975
+ exposureId: MealPlanNearbyFriendExposureIdSchema,
976
+ exposureBatchId: MealPlanNearbyFriendExposureBatchIdSchema.nullable(),
977
+ mealPlanId: MealPlanIdSchema,
978
+ status: MealPlanNearbyFriendExposureStatusSchema,
979
+ radiusMeters: import_zod16.z.number().int().min(100),
980
+ exposedFriendCount: import_zod16.z.number().int().min(0),
981
+ openedAt: ISODateTimeStringSchema,
982
+ expiresAt: ISODateTimeStringSchema.nullable(),
983
+ closedAt: ISODateTimeStringSchema.nullable()
984
+ });
985
+ var MealPlanNearbyFriendExposureBatchSummarySchema = import_zod16.z.object({
986
+ exposureBatchId: MealPlanNearbyFriendExposureBatchIdSchema,
987
+ mealPlanId: MealPlanIdSchema,
988
+ status: MealPlanNearbyFriendExposureStatusSchema,
989
+ radiusMeters: import_zod16.z.number().int().min(100),
990
+ exposedFriendCount: import_zod16.z.number().int().min(0),
991
+ rejectedFriendCount: import_zod16.z.number().int().min(0),
992
+ rejectionSummary: import_zod16.z.array(MealPlanNearbyFriendRejectionSummarySchema),
993
+ notificationStatus: MealPlanNearbyFriendExposureNotificationStatusSchema,
994
+ notificationSentAt: ISODateTimeStringSchema.nullable(),
995
+ openedAt: ISODateTimeStringSchema,
996
+ expiresAt: ISODateTimeStringSchema.nullable(),
997
+ closedAt: ISODateTimeStringSchema.nullable()
998
+ });
999
+ var MealPlanJoinRequestStatusSchema = import_zod16.z.enum([
1000
+ "PENDING",
1001
+ "ACCEPTED",
1002
+ "REJECTED",
1003
+ "CANCELLED"
1004
+ ]);
1005
+ var CreateMealPlanJoinRequestSchema = import_zod16.z.object({
1006
+ message: import_zod16.z.string().max(500).default("")
1007
+ });
1008
+ var MealPlanJoinRequestSummarySchema = import_zod16.z.object({
1009
+ joinRequestId: MealPlanJoinRequestIdSchema,
1010
+ mealPlanId: MealPlanIdSchema,
1011
+ requester: MemberCoreSchema,
1012
+ status: MealPlanJoinRequestStatusSchema,
599
1013
  message: import_zod16.z.string().max(500),
600
- recruitId: RecruitIdSchema,
601
- status: RecruitStatusSchema,
1014
+ requestedAt: ISODateTimeStringSchema,
1015
+ respondedAt: ISODateTimeStringSchema.nullable()
1016
+ });
1017
+ var NearbyFriendMealPlanSummarySchema = import_zod16.z.object({
1018
+ mealPlanId: MealPlanIdSchema,
1019
+ owner: MemberCoreSchema,
1020
+ title: import_zod16.z.string(),
1021
+ participantCount: import_zod16.z.number().int().min(1),
1022
+ distanceMeters: import_zod16.z.number().int().min(0),
1023
+ exposedAt: ISODateTimeStringSchema,
1024
+ expiresAt: ISODateTimeStringSchema.nullable(),
1025
+ joinRequestStatus: MealPlanJoinRequestStatusSchema.nullable().default(null)
1026
+ });
1027
+
1028
+ // src/domain/meal-plan/meal-plan-chat.schema.ts
1029
+ var import_zod17 = require("zod");
1030
+ var MealPlanChatMessageKindSchema = import_zod17.z.enum([
1031
+ "USER",
1032
+ "SYSTEM"
1033
+ ]);
1034
+ var MealPlanSystemMessageKindSchema = import_zod17.z.enum([
1035
+ "PARTICIPANT_JOINED",
1036
+ "PARTICIPANT_READY",
1037
+ "PARTICIPANT_REMOVED",
1038
+ "STATUS_CHANGED",
1039
+ "DECISION_UPDATED",
1040
+ "CONFIRMED",
1041
+ "RECORD_NEEDED"
1042
+ ]);
1043
+ var MealPlanChatSystemPayloadSchema = import_zod17.z.object({
1044
+ kind: MealPlanSystemMessageKindSchema
1045
+ }).catchall(import_zod17.z.unknown());
1046
+ var MealPlanChatMessageListResponseSchema = import_zod17.z.array(import_zod17.z.lazy(() => MealPlanChatMessageResponseSchema));
1047
+ var MealPlanChatRoomSummarySchema = import_zod17.z.object({
1048
+ chatRoomId: MealPlanChatRoomIdSchema,
1049
+ mealPlanId: MealPlanIdSchema,
1050
+ messageCount: import_zod17.z.number().int().min(0),
1051
+ lastMessageAt: ISODateTimeStringSchema.nullable(),
1052
+ createdAt: ISODateTimeStringSchema
1053
+ });
1054
+ var SendMealPlanChatMessageRequestSchema = import_zod17.z.object({
1055
+ message: import_zod17.z.string().min(1).max(500)
1056
+ });
1057
+ var MealPlanChatMessageResponseSchema = import_zod17.z.object({
1058
+ messageId: MealPlanChatMessageIdSchema,
1059
+ chatRoomId: MealPlanChatRoomIdSchema,
1060
+ sender: MemberCoreSchema.nullable(),
1061
+ guestId: import_zod17.z.string().min(1).nullable(),
1062
+ guestNickname: import_zod17.z.string().min(1).nullable(),
1063
+ kind: MealPlanChatMessageKindSchema,
1064
+ message: import_zod17.z.string().min(1).max(1e3),
1065
+ systemPayload: MealPlanChatSystemPayloadSchema.nullable(),
1066
+ createdAt: ISODateTimeStringSchema
1067
+ });
1068
+ var MealPlanSystemMessageSchema = import_zod17.z.object({
1069
+ kind: MealPlanSystemMessageKindSchema,
1070
+ message: import_zod17.z.string().min(1),
1071
+ createdAt: ISODateTimeStringSchema
1072
+ });
1073
+
1074
+ // src/domain/meal-plan/meal-plan.schema.ts
1075
+ var MealPlanStatusSchema = import_zod18.z.enum([
1076
+ "DRAFT",
1077
+ "RECOMMENDING",
1078
+ "GATHERING",
1079
+ "DECIDING",
1080
+ "READY",
1081
+ "CONFIRMED",
1082
+ "LOCKED",
1083
+ "COMPLETED",
1084
+ "RECORDED",
1085
+ "CANCELLED"
1086
+ ]);
1087
+ var MealPlanChannelSchema = import_zod18.z.enum([
1088
+ "OWNER_ONLY",
1089
+ "FRIEND_INVITE",
1090
+ "LINK_GUEST",
1091
+ "NEARBY_FRIENDS"
1092
+ ]);
1093
+ var MealPlanRecommendationContextSchema = import_zod18.z.object({
1094
+ mealDate: ISODateStringSchema.optional(),
1095
+ mealTime: TimeHHmmStringSchema.optional(),
1096
+ area: MealPlanLocationCandidateSchema.optional(),
1097
+ preferredMenuCategories: import_zod18.z.array(import_zod18.z.string().min(1)).default([]),
1098
+ excludedMenuCategories: import_zod18.z.array(import_zod18.z.string().min(1)).default([]),
1099
+ candidateMenuCategories: import_zod18.z.array(import_zod18.z.string().min(1)).default([]),
1100
+ budgetMin: import_zod18.z.number().int().min(0).optional(),
1101
+ budgetMax: import_zod18.z.number().int().min(0).optional(),
1102
+ memo: import_zod18.z.string().max(500).optional()
1103
+ });
1104
+ var CreateMealPlanRequestSchema = import_zod18.z.object({
1105
+ title: import_zod18.z.string().min(1).max(100).optional(),
1106
+ channels: import_zod18.z.array(MealPlanChannelSchema).default([
1107
+ "OWNER_ONLY"
1108
+ ]),
1109
+ recommendationContext: MealPlanRecommendationContextSchema.optional()
1110
+ });
1111
+ var CreateMealPlanResponseSchema = import_zod18.z.object({
1112
+ mealPlanId: MealPlanIdSchema
1113
+ });
1114
+ var UpdateMealPlanContextRequestSchema = MealPlanRecommendationContextSchema.partial();
1115
+ var MealPlanViewerRoleSchema = import_zod18.z.enum([
1116
+ "OWNER",
1117
+ "FRIEND",
1118
+ "GUEST",
1119
+ "NONE"
1120
+ ]);
1121
+ var MealPlanViewerPermissionsSchema = import_zod18.z.object({
1122
+ canView: import_zod18.z.boolean(),
1123
+ canInviteFriends: import_zod18.z.boolean(),
1124
+ canManageParticipants: import_zod18.z.boolean(),
1125
+ canCreateShareLink: import_zod18.z.boolean(),
1126
+ canExposeNearbyFriends: import_zod18.z.boolean(),
1127
+ canVote: import_zod18.z.boolean(),
1128
+ canChat: import_zod18.z.boolean(),
1129
+ canReadyMealPlan: import_zod18.z.boolean(),
1130
+ canReadyDecisionTask: import_zod18.z.boolean(),
1131
+ canRequestChange: import_zod18.z.boolean(),
1132
+ canReopenDecisionTask: import_zod18.z.boolean(),
1133
+ canConfirmDecisionSnapshot: import_zod18.z.boolean(),
1134
+ canConfirmMealPlan: import_zod18.z.boolean(),
1135
+ canCompleteMealPlan: import_zod18.z.boolean(),
1136
+ canRecordMealPlan: import_zod18.z.boolean(),
1137
+ canCancelMealPlan: import_zod18.z.boolean()
1138
+ });
1139
+ var MealPlanResponseSchema = import_zod18.z.object({
1140
+ mealPlanId: MealPlanIdSchema,
1141
+ owner: MemberCoreSchema,
1142
+ title: import_zod18.z.string().nullable(),
1143
+ status: MealPlanStatusSchema,
1144
+ channels: import_zod18.z.array(MealPlanChannelSchema),
1145
+ participants: import_zod18.z.array(MealPlanParticipantResponseSchema),
1146
+ pendingInvites: import_zod18.z.array(MealPlanInviteSummarySchema),
1147
+ pendingJoinRequests: import_zod18.z.array(MealPlanJoinRequestSummarySchema),
1148
+ decisionStages: import_zod18.z.array(MealPlanDecisionStageResponseSchema),
1149
+ decisionProgress: MealPlanDecisionProgressSchema.nullable(),
1150
+ viewerRole: MealPlanViewerRoleSchema,
1151
+ viewerParticipantStatus: MealPlanParticipantStatusSchema.nullable(),
1152
+ viewerPermissions: MealPlanViewerPermissionsSchema,
1153
+ viewerTaskReadyMap: import_zod18.z.record(MealPlanDecisionTaskKeySchema, import_zod18.z.boolean()),
1154
+ selectedDate: ISODateStringSchema.nullable(),
1155
+ selectedTime: TimeHHmmStringSchema.nullable(),
1156
+ selectedArea: MealPlanLocationCandidateSchema.nullable(),
1157
+ selectedRestaurant: RestaurantSchema.nullable(),
1158
+ selectedMenuCategory: import_zod18.z.string().nullable(),
1159
+ chatRoom: MealPlanChatRoomSummarySchema.nullable(),
1160
+ confirmedAt: ISODateTimeStringSchema.nullable(),
1161
+ lockedAt: ISODateTimeStringSchema.nullable(),
1162
+ completedAt: ISODateTimeStringSchema.nullable(),
1163
+ recordedAt: ISODateTimeStringSchema.nullable(),
602
1164
  createdAt: ISODateTimeStringSchema,
603
- expiredAt: ISODateTimeStringSchema,
604
- updatedAt: ISODateTimeStringSchema,
605
- author: MemberCoreSchema,
606
- participants: import_zod16.z.array(RecruitParticipantSchema)
1165
+ updatedAt: ISODateTimeStringSchema
607
1166
  });
608
- var RecruitListResponseSchema = PageResponseSchema(RecruitResponseSchema);
609
- var CreateRecruitRequestSchema = import_zod16.z.object({
610
- targetCount: import_zod16.z.number().int().min(2),
611
- meetingAt: ISODateTimeStringSchema,
612
- location: import_zod16.z.string().min(1),
613
- message: import_zod16.z.string().max(500)
1167
+ var MyMealPlanGroupSchema = import_zod18.z.enum([
1168
+ "DECIDING",
1169
+ "UPCOMING",
1170
+ "RECORD_NEEDED",
1171
+ "PAST"
1172
+ ]);
1173
+ var MyMealPlanListItemSchema = import_zod18.z.object({
1174
+ mealPlanId: MealPlanIdSchema,
1175
+ group: MyMealPlanGroupSchema,
1176
+ title: import_zod18.z.string(),
1177
+ status: MealPlanStatusSchema,
1178
+ channels: import_zod18.z.array(MealPlanChannelSchema),
1179
+ participantCount: import_zod18.z.number().int().min(1),
1180
+ selectedDate: ISODateStringSchema.nullable(),
1181
+ selectedTime: TimeHHmmStringSchema.nullable(),
1182
+ selectedAreaName: import_zod18.z.string().nullable(),
1183
+ selectedRestaurantName: import_zod18.z.string().nullable(),
1184
+ primaryAction: import_zod18.z.object({
1185
+ label: import_zod18.z.string(),
1186
+ href: import_zod18.z.string()
1187
+ }),
1188
+ updatedAt: ISODateTimeStringSchema
614
1189
  });
615
- var CreateRecruitResponseSchema = import_zod16.z.object({
616
- recruitId: RecruitIdSchema
1190
+ var MyMealPlanListResponseSchema = import_zod18.z.object({
1191
+ deciding: import_zod18.z.array(MyMealPlanListItemSchema),
1192
+ upcoming: import_zod18.z.array(MyMealPlanListItemSchema),
1193
+ recordNeeded: import_zod18.z.array(MyMealPlanListItemSchema),
1194
+ past: import_zod18.z.array(MyMealPlanListItemSchema)
1195
+ });
1196
+ var MealPlanNotificationKindSchema = import_zod18.z.enum([
1197
+ "MEAL_PLAN_INVITE_RECEIVED",
1198
+ "MEAL_PLAN_INVITE_ACCEPTED",
1199
+ "MEAL_PLAN_JOIN_REQUESTED",
1200
+ "MEAL_PLAN_JOIN_REQUEST_ACCEPTED",
1201
+ "MEAL_PLAN_NEARBY_FRIEND_EXPOSED",
1202
+ "MEAL_PLAN_PARTICIPANT_JOINED",
1203
+ "MEAL_PLAN_READY_COMPLETED",
1204
+ "MEAL_PLAN_CONFIRMED",
1205
+ "MEAL_PLAN_LOCKED",
1206
+ "MEAL_PLAN_RECORD_NEEDED"
1207
+ ]);
1208
+ var MealPlanNotificationPriorityChannelSchema = import_zod18.z.enum([
1209
+ "HOME",
1210
+ "NOTIFICATION_INBOX",
1211
+ "FCM_PUSH",
1212
+ "LIVE_ACTIVITY"
1213
+ ]);
1214
+ var MealPlanLiveActivityBehaviorSchema = import_zod18.z.enum([
1215
+ "NONE",
1216
+ "START_OR_UPDATE",
1217
+ "UPDATE",
1218
+ "END"
1219
+ ]);
1220
+ var MealPlanNotificationPriorityPolicyItemSchema = import_zod18.z.object({
1221
+ kind: MealPlanNotificationKindSchema,
1222
+ priority: import_zod18.z.number().int().min(0),
1223
+ homePriority: import_zod18.z.number().int().min(0),
1224
+ inboxPriority: import_zod18.z.number().int().min(0),
1225
+ fcmPriority: import_zod18.z.number().int().min(0),
1226
+ liveActivityPriority: import_zod18.z.number().int().min(0),
1227
+ liveActivityBehavior: MealPlanLiveActivityBehaviorSchema,
1228
+ foregroundToast: import_zod18.z.boolean()
1229
+ });
1230
+ var MealPlanNotificationSchema = import_zod18.z.object({
1231
+ notificationId: import_zod18.z.string().min(1),
1232
+ kind: MealPlanNotificationKindSchema,
1233
+ mealPlanId: MealPlanIdSchema,
1234
+ deepLink: import_zod18.z.string().min(1),
1235
+ title: import_zod18.z.string().min(1),
1236
+ message: import_zod18.z.string().min(1),
1237
+ createdAt: ISODateTimeStringSchema,
1238
+ readAt: ISODateTimeStringSchema.nullable()
1239
+ });
1240
+
1241
+ // src/domain/meal-plan/meal-plan-share-link.schema.ts
1242
+ var import_zod19 = require("zod");
1243
+ var CreateMealPlanShareLinkRequestSchema = import_zod19.z.object({
1244
+ expiresAt: ISODateTimeStringSchema.optional(),
1245
+ guestJoinEnabled: import_zod19.z.boolean().default(true)
1246
+ });
1247
+ var MealPlanShareLinkSummarySchema = import_zod19.z.object({
1248
+ shareLinkId: MealPlanShareLinkIdSchema,
1249
+ mealPlanId: MealPlanIdSchema,
1250
+ token: MealPlanShareLinkTokenSchema,
1251
+ url: import_zod19.z.string().url(),
1252
+ expiresAt: ISODateTimeStringSchema,
1253
+ guestJoinEnabled: import_zod19.z.boolean(),
1254
+ createdAt: ISODateTimeStringSchema
1255
+ });
1256
+ var MealPlanSharePreviewResponseSchema = import_zod19.z.object({
1257
+ mealPlanId: MealPlanIdSchema,
1258
+ token: MealPlanShareLinkTokenSchema,
1259
+ title: import_zod19.z.string(),
1260
+ ownerName: import_zod19.z.string(),
1261
+ participantCount: import_zod19.z.number().int().min(1),
1262
+ expiresAt: ISODateTimeStringSchema,
1263
+ guestJoinEnabled: import_zod19.z.boolean()
1264
+ });
1265
+ var JoinMealPlanGuestRequestSchema = import_zod19.z.object({
1266
+ nickname: import_zod19.z.string().min(1).max(50),
1267
+ password: import_zod19.z.string().min(1).max(100).optional()
1268
+ });
1269
+ var JoinMealPlanGuestResponseSchema = import_zod19.z.object({
1270
+ mealPlanId: MealPlanIdSchema,
1271
+ guestId: import_zod19.z.string().min(1),
1272
+ sessionToken: import_zod19.z.string().min(1)
1273
+ });
1274
+ var MealPlanGuestSessionQuerySchema = import_zod19.z.object({
1275
+ sessionToken: import_zod19.z.string().min(1)
1276
+ });
1277
+ var MealPlanGuestSessionResponseSchema = import_zod19.z.object({
1278
+ mealPlan: MealPlanResponseSchema,
1279
+ token: MealPlanShareLinkTokenSchema,
1280
+ guestId: import_zod19.z.string().min(1),
1281
+ nickname: import_zod19.z.string().min(1).max(50),
1282
+ sessionToken: import_zod19.z.string().min(1)
1283
+ });
1284
+
1285
+ // src/domain/meal-plan/meal-group.schema.ts
1286
+ var import_zod20 = require("zod");
1287
+ var MealGroupMemberRoleSchema = import_zod20.z.enum([
1288
+ "OWNER",
1289
+ "MEMBER"
1290
+ ]);
1291
+ var MealGroupMemberSchema = import_zod20.z.object({
1292
+ member: MemberCoreSchema,
1293
+ role: MealGroupMemberRoleSchema,
1294
+ joinedAt: ISODateTimeStringSchema
1295
+ });
1296
+ var MealGroupResponseSchema = import_zod20.z.object({
1297
+ mealGroupId: MealGroupIdSchema,
1298
+ name: import_zod20.z.string().min(1).max(50),
1299
+ owner: MemberCoreSchema,
1300
+ profileImageUrl: import_zod20.z.string().url().nullable(),
1301
+ members: import_zod20.z.array(MealGroupMemberSchema),
1302
+ recentMealPlanIds: import_zod20.z.array(MealPlanIdSchema),
1303
+ createdAt: ISODateTimeStringSchema,
1304
+ updatedAt: ISODateTimeStringSchema
1305
+ });
1306
+ var CreateMealGroupRequestSchema = import_zod20.z.object({
1307
+ name: import_zod20.z.string().min(1).max(50),
1308
+ memberIds: import_zod20.z.array(import_zod20.z.number().int().positive()).min(1),
1309
+ profileImageUrl: import_zod20.z.string().url().nullable().optional(),
1310
+ sourceMealPlanId: MealPlanIdSchema.optional()
1311
+ });
1312
+ var StartMealPlanFromGroupRequestSchema = import_zod20.z.object({
1313
+ title: import_zod20.z.string().min(1).max(100).optional()
1314
+ });
1315
+ var AddMealGroupMemberRequestSchema = import_zod20.z.object({
1316
+ memberId: import_zod20.z.number().int().positive(),
1317
+ role: MealGroupMemberRoleSchema.default("MEMBER")
1318
+ });
1319
+ var UpdateMealGroupMemberRoleRequestSchema = import_zod20.z.object({
1320
+ role: MealGroupMemberRoleSchema
1321
+ });
1322
+ var MealGroupHistoryItemSchema = MyMealPlanListItemSchema.extend({});
1323
+ var MealGroupPreferenceSummarySchema = import_zod20.z.object({
1324
+ mealGroupId: MealGroupIdSchema,
1325
+ frequentMenuCategories: import_zod20.z.array(import_zod20.z.object({
1326
+ label: import_zod20.z.string(),
1327
+ count: import_zod20.z.number().int().min(0)
1328
+ })),
1329
+ frequentRestaurants: import_zod20.z.array(import_zod20.z.object({
1330
+ restaurantName: import_zod20.z.string(),
1331
+ count: import_zod20.z.number().int().min(0)
1332
+ })),
1333
+ recentMenuCategories: import_zod20.z.array(import_zod20.z.string()),
1334
+ recommendationContext: import_zod20.z.object({
1335
+ preferredMenuCategories: import_zod20.z.array(import_zod20.z.string()),
1336
+ excludedMenuCategories: import_zod20.z.array(import_zod20.z.string()),
1337
+ candidateMenuCategories: import_zod20.z.array(import_zod20.z.string())
1338
+ })
1339
+ });
1340
+ var MealGroupHistoryResponseSchema = import_zod20.z.array(MealGroupHistoryItemSchema);
1341
+
1342
+ // src/domain/meal-plan/meal-plan-home-map.schema.ts
1343
+ var import_zod21 = require("zod");
1344
+ var HomeMealPlanActionKindSchema = import_zod21.z.enum([
1345
+ "CONTINUE_DECISION",
1346
+ "TODAY_UPCOMING",
1347
+ "RECORD_NEEDED",
1348
+ "RESPOND_JOIN_REQUEST",
1349
+ "NOTIFICATION_FOLLOW_UP"
1350
+ ]);
1351
+ var HomeMealPlanActionCardSchema = import_zod21.z.object({
1352
+ actionId: import_zod21.z.string().min(1),
1353
+ kind: HomeMealPlanActionKindSchema,
1354
+ priority: import_zod21.z.number().int().min(0),
1355
+ title: import_zod21.z.string().min(1),
1356
+ description: import_zod21.z.string().min(1),
1357
+ primaryAction: import_zod21.z.object({
1358
+ label: import_zod21.z.string().min(1),
1359
+ href: import_zod21.z.string().min(1)
1360
+ }),
1361
+ mealPlan: MyMealPlanListItemSchema.nullable(),
1362
+ joinRequest: MealPlanJoinRequestSummarySchema.nullable(),
1363
+ notification: MealPlanNotificationSchema.nullable().default(null)
1364
+ });
1365
+ var HomeMealPlanDashboardResponseSchema = import_zod21.z.object({
1366
+ generatedAt: ISODateTimeStringSchema,
1367
+ inProgress: import_zod21.z.array(MyMealPlanListItemSchema),
1368
+ today: import_zod21.z.array(MyMealPlanListItemSchema),
1369
+ recordNeeded: import_zod21.z.array(MyMealPlanListItemSchema),
1370
+ pendingJoinRequests: import_zod21.z.array(MealPlanJoinRequestSummarySchema),
1371
+ unreadNotifications: import_zod21.z.array(MealPlanNotificationSchema).default([]),
1372
+ nextActions: import_zod21.z.array(HomeMealPlanActionCardSchema)
1373
+ });
1374
+ var MealMapLayerSchema = import_zod21.z.enum([
1375
+ "MY_MEAL_PLAN_PLACE",
1376
+ "NEARBY_FRIEND_MEAL_PLAN",
1377
+ "FRIEND_RECORD_LOCATION",
1378
+ "RESTAURANT_CANDIDATE"
1379
+ ]);
1380
+ var MealMapMarkerBaseSchema = import_zod21.z.object({
1381
+ markerId: import_zod21.z.string().min(1),
1382
+ lat: import_zod21.z.number().min(-90).max(90),
1383
+ lng: import_zod21.z.number().min(-180).max(180),
1384
+ title: import_zod21.z.string().min(1),
1385
+ subtitle: import_zod21.z.string().nullable(),
1386
+ href: import_zod21.z.string().min(1).nullable(),
1387
+ mealPlanId: MealPlanIdSchema.nullable(),
1388
+ articleId: ArticleIdSchema.nullable(),
1389
+ restaurant: RestaurantSchema.nullable(),
1390
+ distanceMeters: import_zod21.z.number().int().min(0).nullable(),
1391
+ updatedAt: ISODateTimeStringSchema
1392
+ });
1393
+ var MealMapMyMealPlanPlaceMetadataSchema = import_zod21.z.object({
1394
+ ownerId: MemberIdSchema.nullable().default(null),
1395
+ status: import_zod21.z.string().min(1),
1396
+ participantCount: import_zod21.z.number().int().min(1),
1397
+ source: import_zod21.z.string().min(1)
1398
+ });
1399
+ var MealMapNearbyFriendMealPlanMetadataSchema = import_zod21.z.object({
1400
+ ownerId: MemberIdSchema.nullable().default(null),
1401
+ ownerName: import_zod21.z.string().min(1),
1402
+ participantCount: import_zod21.z.number().int().min(1),
1403
+ expiresAt: ISODateTimeStringSchema.nullable(),
1404
+ source: import_zod21.z.string().min(1)
1405
+ });
1406
+ var MealMapFriendRecordLocationMetadataSchema = import_zod21.z.object({
1407
+ authorId: MemberIdSchema.nullable().default(null),
1408
+ authorName: import_zod21.z.string().min(1),
1409
+ imageUrl: import_zod21.z.string().nullable().default(null),
1410
+ mealDate: import_zod21.z.string().min(1)
1411
+ });
1412
+ var MealMapRestaurantCandidateCompletionBlockedReasonSchema = import_zod21.z.enum([
1413
+ "OWNER_ONLY",
1414
+ "STAGE_ALREADY_COMPLETED",
1415
+ "MEAL_PLAN_NOT_MUTABLE"
1416
+ ]);
1417
+ var MealMapRestaurantCandidateMetadataSchema = import_zod21.z.object({
1418
+ stageId: MealPlanDecisionStageIdSchema,
1419
+ ownerId: MemberIdSchema.nullable().default(null),
1420
+ status: import_zod21.z.string().min(1),
1421
+ source: import_zod21.z.enum([
1422
+ "search",
1423
+ "fallback",
1424
+ "manual"
1425
+ ]).default("search"),
1426
+ stageStatus: import_zod21.z.enum([
1427
+ "OPEN",
1428
+ "COMPLETED",
1429
+ "REOPENED"
1430
+ ]).default("OPEN"),
1431
+ canVote: import_zod21.z.boolean().default(false),
1432
+ canCompleteStage: import_zod21.z.boolean().default(false),
1433
+ completionBlockedReason: MealMapRestaurantCandidateCompletionBlockedReasonSchema.nullable().default(null)
1434
+ });
1435
+ var MealMapMarkerSchema = import_zod21.z.discriminatedUnion("layer", [
1436
+ MealMapMarkerBaseSchema.extend({
1437
+ layer: import_zod21.z.literal("MY_MEAL_PLAN_PLACE"),
1438
+ metadata: MealMapMyMealPlanPlaceMetadataSchema
1439
+ }),
1440
+ MealMapMarkerBaseSchema.extend({
1441
+ layer: import_zod21.z.literal("NEARBY_FRIEND_MEAL_PLAN"),
1442
+ metadata: MealMapNearbyFriendMealPlanMetadataSchema
1443
+ }),
1444
+ MealMapMarkerBaseSchema.extend({
1445
+ layer: import_zod21.z.literal("FRIEND_RECORD_LOCATION"),
1446
+ metadata: MealMapFriendRecordLocationMetadataSchema
1447
+ }),
1448
+ MealMapMarkerBaseSchema.extend({
1449
+ layer: import_zod21.z.literal("RESTAURANT_CANDIDATE"),
1450
+ metadata: MealMapRestaurantCandidateMetadataSchema
1451
+ })
1452
+ ]);
1453
+ var MealMapQuerySchema = import_zod21.z.object({
1454
+ friendRecordDays: import_zod21.z.coerce.number().int().min(1).max(90).optional().default(7)
1455
+ });
1456
+ var MealMapResponseSchema = import_zod21.z.object({
1457
+ generatedAt: ISODateTimeStringSchema,
1458
+ center: import_zod21.z.object({
1459
+ lat: import_zod21.z.number().min(-90).max(90),
1460
+ lng: import_zod21.z.number().min(-180).max(180),
1461
+ source: import_zod21.z.enum([
1462
+ "LAST_KNOWN_LOCATION",
1463
+ "MY_MEAL_PLAN",
1464
+ "DEFAULT"
1465
+ ])
1466
+ }),
1467
+ layers: import_zod21.z.object({
1468
+ myMealPlanPlaces: import_zod21.z.array(MealMapMarkerSchema),
1469
+ nearbyFriendMealPlans: import_zod21.z.array(MealMapMarkerSchema),
1470
+ friendRecordLocations: import_zod21.z.array(MealMapMarkerSchema),
1471
+ restaurantCandidates: import_zod21.z.array(MealMapMarkerSchema)
1472
+ })
617
1473
  });
618
1474
 
619
1475
  // src/domain/promotion/referral.schema.ts
620
- var import_zod17 = require("zod");
621
- var ReferralCreateResponseSchema = import_zod17.z.object({
1476
+ var import_zod22 = require("zod");
1477
+ var ReferralCreateResponseSchema = import_zod22.z.object({
622
1478
  code: ReferralCodeSchema,
623
- link: import_zod17.z.string().url(),
1479
+ link: import_zod22.z.string().url(),
624
1480
  expiresAt: ISODateTimeStringSchema
625
1481
  });
626
- var ReferralItemResponseSchema = import_zod17.z.object({
1482
+ var ReferralItemResponseSchema = import_zod22.z.object({
627
1483
  code: ReferralCodeSchema,
628
1484
  createdAt: ISODateTimeStringSchema,
629
1485
  expiresAt: ISODateTimeStringSchema,
630
- used: import_zod17.z.boolean(),
1486
+ used: import_zod22.z.boolean(),
631
1487
  usedByMemberId: MemberIdSchema.nullable(),
632
- usedByUsername: import_zod17.z.string().nullable()
1488
+ usedByUsername: import_zod22.z.string().nullable()
633
1489
  });
634
- var RedeemReferralRequestSchema = import_zod17.z.object({
1490
+ var RedeemReferralRequestSchema = import_zod22.z.object({
635
1491
  code: ReferralCodeSchema
636
1492
  });
637
1493
 
638
1494
  // src/domain/promotion/coupon.schema.ts
639
- var import_zod18 = require("zod");
640
- var CouponTypeSchema = import_zod18.z.enum(["DISCOUNT", "SERVICE"]);
641
- var CouponStatusSchema = import_zod18.z.enum(["UNUSED", "USED"]);
642
- var CouponResponseSchema = import_zod18.z.object({
1495
+ var import_zod23 = require("zod");
1496
+ var CouponTypeSchema = import_zod23.z.enum([
1497
+ "DISCOUNT",
1498
+ "SERVICE"
1499
+ ]);
1500
+ var CouponStatusSchema = import_zod23.z.enum([
1501
+ "UNUSED",
1502
+ "USED"
1503
+ ]);
1504
+ var CouponResponseSchema = import_zod23.z.object({
643
1505
  couponId: CouponIdSchema,
644
- title: import_zod18.z.string(),
645
- shopName: import_zod18.z.string(),
1506
+ title: import_zod23.z.string(),
1507
+ shopName: import_zod23.z.string(),
646
1508
  type: CouponTypeSchema,
647
- condition: import_zod18.z.string(),
1509
+ condition: import_zod23.z.string(),
648
1510
  expiresAt: ISODateStringSchema,
649
- used: import_zod18.z.boolean(),
650
- thumbnailUrl: import_zod18.z.string().url()
1511
+ used: import_zod23.z.boolean(),
1512
+ thumbnailUrl: import_zod23.z.string().url()
1513
+ });
1514
+
1515
+ // src/domain/promotion/challenge.schema.ts
1516
+ var import_zod24 = require("zod");
1517
+ var RewardTypeSchema = import_zod24.z.enum([
1518
+ "WEEK",
1519
+ "MONTH"
1520
+ ]);
1521
+ var WeekProgressSchema = import_zod24.z.object({
1522
+ days: import_zod24.z.array(import_zod24.z.boolean()),
1523
+ completed: import_zod24.z.number().int().min(0),
1524
+ goal: import_zod24.z.number().int().positive()
1525
+ });
1526
+ var MonthProgressSchema = import_zod24.z.object({
1527
+ count: import_zod24.z.number().int().min(0),
1528
+ goal: import_zod24.z.number().int().positive()
1529
+ });
1530
+ var ChallengeStatusResponseSchema = import_zod24.z.object({
1531
+ week: WeekProgressSchema,
1532
+ month: MonthProgressSchema,
1533
+ weekRewardAvailable: import_zod24.z.boolean(),
1534
+ monthRewardAvailable: import_zod24.z.boolean()
1535
+ });
1536
+ var ClaimChallengeRewardRequestSchema = import_zod24.z.object({
1537
+ type: RewardTypeSchema
1538
+ });
1539
+ var ClaimChallengeRewardResponseSchema = import_zod24.z.object({
1540
+ rewardType: RewardTypeSchema,
1541
+ claimed: import_zod24.z.boolean()
1542
+ });
1543
+
1544
+ // src/domain/push/push.schema.ts
1545
+ var import_zod25 = require("zod");
1546
+ var PushProviderSchema = import_zod25.z.enum([
1547
+ "FCM",
1548
+ "APNS_LIVE_ACTIVITY"
1549
+ ]);
1550
+ var PushPlatformSchema = import_zod25.z.enum([
1551
+ "WEB",
1552
+ "ANDROID",
1553
+ "IOS"
1554
+ ]);
1555
+ var PushPermissionStatusSchema = import_zod25.z.enum([
1556
+ "UNKNOWN",
1557
+ "PROMPT",
1558
+ "GRANTED",
1559
+ "DENIED"
1560
+ ]);
1561
+ var PushTokenStatusSchema = import_zod25.z.enum([
1562
+ "ACTIVE",
1563
+ "REVOKED",
1564
+ "DISABLED"
1565
+ ]);
1566
+ var RegisterPushTokenRequestSchema = import_zod25.z.object({
1567
+ provider: PushProviderSchema.default("FCM"),
1568
+ platform: PushPlatformSchema,
1569
+ token: import_zod25.z.string().min(10),
1570
+ deviceId: import_zod25.z.string().min(1).max(128),
1571
+ appVersion: import_zod25.z.string().min(1).max(64).optional(),
1572
+ buildNumber: import_zod25.z.string().min(1).max(64).optional(),
1573
+ permissionStatus: PushPermissionStatusSchema
1574
+ });
1575
+ var RevokePushTokenRequestSchema = import_zod25.z.object({
1576
+ provider: PushProviderSchema.default("FCM"),
1577
+ token: import_zod25.z.string().min(10).optional(),
1578
+ deviceId: import_zod25.z.string().min(1).max(128).optional()
1579
+ });
1580
+ var PushTokenResponseSchema = import_zod25.z.object({
1581
+ pushTokenId: import_zod25.z.string().uuid(),
1582
+ provider: PushProviderSchema,
1583
+ platform: PushPlatformSchema,
1584
+ deviceId: import_zod25.z.string(),
1585
+ status: PushTokenStatusSchema,
1586
+ permissionStatus: PushPermissionStatusSchema,
1587
+ appVersion: import_zod25.z.string().nullable(),
1588
+ buildNumber: import_zod25.z.string().nullable(),
1589
+ lastSeenAt: ISODateTimeStringSchema,
1590
+ revokedAt: ISODateTimeStringSchema.nullable()
1591
+ });
1592
+ var PushPayloadSchemaVersionSchema = import_zod25.z.literal("2026-06-17");
1593
+ var MealPlanPushPayloadDataSchema = import_zod25.z.object({
1594
+ schemaVersion: PushPayloadSchemaVersionSchema,
1595
+ notificationId: import_zod25.z.string().min(1),
1596
+ kind: MealPlanNotificationKindSchema,
1597
+ mealPlanId: MealPlanIdSchema,
1598
+ deepLink: import_zod25.z.string().min(1),
1599
+ title: import_zod25.z.string().min(1),
1600
+ body: import_zod25.z.string().min(1),
1601
+ fcmPriority: import_zod25.z.coerce.number().int().min(0),
1602
+ liveActivityPriority: import_zod25.z.coerce.number().int().min(0),
1603
+ liveActivityBehavior: MealPlanLiveActivityBehaviorSchema
1604
+ });
1605
+ var PushDeliveryStatusSchema = import_zod25.z.enum([
1606
+ "PENDING",
1607
+ "SENT",
1608
+ "FAILED",
1609
+ "SKIPPED"
1610
+ ]);
1611
+ var PushDeliveryAttemptResultSchema = import_zod25.z.enum([
1612
+ "SENT",
1613
+ "FAILED",
1614
+ "SKIPPED"
1615
+ ]);
1616
+ var PushDeliveryAttemptSummarySchema = import_zod25.z.object({
1617
+ attemptId: import_zod25.z.string().uuid(),
1618
+ outboxId: import_zod25.z.string().uuid(),
1619
+ pushTokenId: import_zod25.z.string().uuid().nullable(),
1620
+ provider: PushProviderSchema,
1621
+ result: PushDeliveryAttemptResultSchema,
1622
+ providerMessageId: import_zod25.z.string().nullable(),
1623
+ errorCode: import_zod25.z.string().nullable(),
1624
+ errorMessage: import_zod25.z.string().nullable(),
1625
+ invalidToken: import_zod25.z.boolean(),
1626
+ createdAt: ISODateTimeStringSchema
1627
+ });
1628
+ var PushDeliveryOutboxSummarySchema = import_zod25.z.object({
1629
+ outboxId: import_zod25.z.string().uuid(),
1630
+ notificationId: import_zod25.z.string().min(1),
1631
+ memberId: import_zod25.z.number().int().positive(),
1632
+ status: PushDeliveryStatusSchema,
1633
+ attemptCount: import_zod25.z.number().int().min(0),
1634
+ lastError: import_zod25.z.string().nullable(),
1635
+ nextAttemptAt: ISODateTimeStringSchema.nullable(),
1636
+ sentAt: ISODateTimeStringSchema.nullable(),
1637
+ createdAt: ISODateTimeStringSchema
1638
+ });
1639
+
1640
+ // src/domain/live-activity/live-activity.schema.ts
1641
+ var import_zod26 = require("zod");
1642
+ var MealPlanLiveActivityPlatformSchema = import_zod26.z.enum([
1643
+ "IOS_LIVE_ACTIVITY",
1644
+ "ANDROID_LIVE_UPDATE"
1645
+ ]);
1646
+ var MealPlanLiveActivitySessionStatusSchema = import_zod26.z.enum([
1647
+ "ACTIVE",
1648
+ "ENDED",
1649
+ "EXPIRED",
1650
+ "DISABLED"
1651
+ ]);
1652
+ var MealPlanLiveActivityUpdateStatusSchema = import_zod26.z.enum([
1653
+ "PENDING",
1654
+ "SENT",
1655
+ "FAILED",
1656
+ "SKIPPED"
1657
+ ]);
1658
+ var RegisterMealPlanLiveActivitySessionRequestSchema = import_zod26.z.object({
1659
+ platform: MealPlanLiveActivityPlatformSchema,
1660
+ deviceId: import_zod26.z.string().min(1).max(128),
1661
+ activityId: import_zod26.z.string().min(1).max(128),
1662
+ pushToken: import_zod26.z.string().min(10).optional(),
1663
+ appVersion: import_zod26.z.string().min(1).max(64).optional(),
1664
+ buildNumber: import_zod26.z.string().min(1).max(64).optional()
1665
+ });
1666
+ var EndMealPlanLiveActivitySessionRequestSchema = import_zod26.z.object({
1667
+ platform: MealPlanLiveActivityPlatformSchema.optional(),
1668
+ deviceId: import_zod26.z.string().min(1).max(128).optional(),
1669
+ activityId: import_zod26.z.string().min(1).max(128).optional()
1670
+ });
1671
+ var MealPlanLiveActivityStateSchema = import_zod26.z.object({
1672
+ mealPlanId: MealPlanIdSchema,
1673
+ title: import_zod26.z.string().min(1),
1674
+ status: import_zod26.z.string().min(1),
1675
+ scheduledAt: ISODateTimeStringSchema.nullable(),
1676
+ restaurantName: import_zod26.z.string().nullable(),
1677
+ placeName: import_zod26.z.string().nullable(),
1678
+ deepLink: import_zod26.z.string().min(1),
1679
+ progressLabel: import_zod26.z.string().min(1),
1680
+ updatedAt: ISODateTimeStringSchema
1681
+ });
1682
+ var MealPlanLiveActivitySessionResponseSchema = import_zod26.z.object({
1683
+ sessionId: import_zod26.z.string().uuid(),
1684
+ mealPlanId: MealPlanIdSchema,
1685
+ memberId: import_zod26.z.number().int().positive(),
1686
+ platform: MealPlanLiveActivityPlatformSchema,
1687
+ devicePlatform: PushPlatformSchema,
1688
+ deviceId: import_zod26.z.string(),
1689
+ activityId: import_zod26.z.string(),
1690
+ status: MealPlanLiveActivitySessionStatusSchema,
1691
+ appVersion: import_zod26.z.string().nullable(),
1692
+ buildNumber: import_zod26.z.string().nullable(),
1693
+ lastEventKind: MealPlanNotificationKindSchema.nullable(),
1694
+ lastBehavior: MealPlanLiveActivityBehaviorSchema.nullable(),
1695
+ lastUpdateStatus: MealPlanLiveActivityUpdateStatusSchema.nullable(),
1696
+ lastError: import_zod26.z.string().nullable(),
1697
+ startedAt: ISODateTimeStringSchema,
1698
+ endedAt: ISODateTimeStringSchema.nullable(),
1699
+ updatedAt: ISODateTimeStringSchema
1700
+ });
1701
+ var MealPlanLiveActivitySessionListResponseSchema = import_zod26.z.object({
1702
+ mealPlanId: MealPlanIdSchema,
1703
+ state: MealPlanLiveActivityStateSchema,
1704
+ sessions: import_zod26.z.array(MealPlanLiveActivitySessionResponseSchema)
651
1705
  });
652
1706
 
653
1707
  // src/domain/common/contracts/endpoint.ts
654
- var import_zod19 = require("zod");
655
- var NoBodySchema = import_zod19.z.undefined();
656
- var NoQuerySchema = import_zod19.z.undefined();
657
- var NoParamsSchema = import_zod19.z.undefined();
658
- var endpoint = (contract) => ({
1708
+ var import_zod27 = require("zod");
1709
+ var NoBodySchema = import_zod27.z.undefined();
1710
+ var NoQuerySchema = import_zod27.z.undefined();
1711
+ var NoParamsSchema = import_zod27.z.undefined();
1712
+ var endpoint = /* @__PURE__ */ __name((contract) => ({
659
1713
  method: contract.method,
660
1714
  path: contract.path,
661
1715
  pathParams: contract.pathParams ?? NoParamsSchema,
662
1716
  query: contract.query ?? NoQuerySchema,
663
1717
  body: contract.body ?? NoBodySchema,
664
1718
  response: contract.response
665
- });
1719
+ }), "endpoint");
666
1720
 
667
1721
  // src/domain/common/contracts/api.ts
668
- var memberIdParam = import_zod20.z.object({ memberId: MemberIdSchema });
669
- var articleIdParam = import_zod20.z.object({ articleId: ArticleIdSchema });
670
- var commentIdParam = import_zod20.z.object({ commentId: CommentIdSchema });
671
- var recruitIdParam = import_zod20.z.object({ recruitId: RecruitIdSchema });
672
- var roomIdParam = import_zod20.z.object({ roomId: RoomIdSchema });
673
- var invitationIdParam = import_zod20.z.object({ invitationId: InvitationIdSchema });
674
- var notificationIdParam = import_zod20.z.object({ notificationId: import_zod20.z.string().min(1) });
675
- var planIdParam = import_zod20.z.object({ planId: PlanIdSchema });
676
- var couponIdParam = import_zod20.z.object({ couponId: CouponIdSchema });
677
- var friendRequestIdParam = import_zod20.z.object({ requestId: FriendRequestIdSchema });
1722
+ var memberIdParam = import_zod28.z.object({
1723
+ memberId: MemberIdSchema
1724
+ });
1725
+ var articleIdParam = import_zod28.z.object({
1726
+ articleId: ArticleIdSchema
1727
+ });
1728
+ var commentIdParam = import_zod28.z.object({
1729
+ commentId: CommentIdSchema
1730
+ });
1731
+ var mealPlanIdParam = import_zod28.z.object({
1732
+ mealPlanId: MealPlanIdSchema
1733
+ });
1734
+ var mealPlanInviteIdParam = import_zod28.z.object({
1735
+ inviteId: MealPlanInviteIdSchema
1736
+ });
1737
+ var mealPlanJoinRequestIdParam = import_zod28.z.object({
1738
+ requestId: MealPlanJoinRequestIdSchema
1739
+ });
1740
+ var mealPlanDecisionStageIdParam = mealPlanIdParam.extend({
1741
+ stageId: MealPlanDecisionStageIdSchema
1742
+ });
1743
+ var mealPlanChangeRequestIdParam = mealPlanIdParam.extend({
1744
+ requestId: MealPlanChangeRequestIdSchema
1745
+ });
1746
+ var mealPlanDecisionTaskKeyParam = mealPlanIdParam.extend({
1747
+ taskKey: MealPlanDecisionTaskKeySchema
1748
+ });
1749
+ var mealPlanDecisionSnapshotIdParam = mealPlanIdParam.extend({
1750
+ snapshotId: import_zod28.z.string().uuid()
1751
+ });
1752
+ var mealPlanParticipantIdParam = mealPlanIdParam.extend({
1753
+ participantId: import_zod28.z.string().uuid()
1754
+ });
1755
+ var mealPlanShareTokenParam = import_zod28.z.object({
1756
+ token: MealPlanShareLinkTokenSchema
1757
+ });
1758
+ var notificationIdParam = import_zod28.z.object({
1759
+ notificationId: import_zod28.z.string().min(1)
1760
+ });
1761
+ var couponIdParam = import_zod28.z.object({
1762
+ couponId: CouponIdSchema
1763
+ });
1764
+ var mealGroupIdParam = import_zod28.z.object({
1765
+ mealGroupId: MealGroupIdSchema
1766
+ });
1767
+ var mealGroupMemberIdParam = mealGroupIdParam.extend({
1768
+ memberId: MemberIdSchema
1769
+ });
1770
+ var friendRequestIdParam = import_zod28.z.object({
1771
+ requestId: FriendRequestIdSchema
1772
+ });
1773
+ var sseTokenQuery = import_zod28.z.object({
1774
+ token: import_zod28.z.string().min(1)
1775
+ });
678
1776
  var apiContract = {
679
1777
  auth: {
680
- signup: endpoint({ method: "POST", path: "/auth/signup", body: SignupRequestSchema, response: SignupResponseSchema }),
681
- login: endpoint({ method: "POST", path: "/auth/login", body: LoginRequestSchema, response: TokenResponseSchema }),
682
- refresh: endpoint({ method: "POST", path: "/auth/refresh", response: TokenResponseSchema }),
683
- logout: endpoint({ method: "POST", path: "/auth/logout", response: NoContentSchema })
684
- // test: endpoint({method: "GET", path: "/auth/test", response: TokenResponseSchema}) TODO: Dev에서만 작동하도록 백엔드에서 수정해야함
1778
+ signup: endpoint({
1779
+ method: "POST",
1780
+ path: "/auth/signup",
1781
+ body: SignupRequestSchema,
1782
+ response: SignupResponseSchema
1783
+ }),
1784
+ login: endpoint({
1785
+ method: "POST",
1786
+ path: "/auth/login",
1787
+ body: LoginRequestSchema,
1788
+ response: TokenResponseSchema
1789
+ }),
1790
+ refresh: endpoint({
1791
+ method: "POST",
1792
+ path: "/auth/refresh",
1793
+ response: TokenResponseSchema
1794
+ }),
1795
+ logout: endpoint({
1796
+ method: "POST",
1797
+ path: "/auth/logout",
1798
+ response: NoContentSchema
1799
+ })
685
1800
  },
686
1801
  members: {
687
- me: endpoint({ method: "GET", path: "/members/me", response: MemberResponseSchema }),
688
- myProfile: endpoint({ method: "GET", path: "/members/me/profile", response: ProfileDetailResponseSchema }),
689
- search: endpoint({ method: "GET", path: "/members/search", query: MemberSearchQuerySchema, response: MemberSerachResponseSchema }),
690
- memberProfile: endpoint({ method: "GET", path: "/members/:memberId/profile", pathParams: memberIdParam, response: ProfileDetailResponseSchema }),
691
- presignProfileImage: endpoint({ method: "POST", path: "/uploads/presign-profile", body: UploadProfileImageRequestSchema, response: UploadProfileImageResponseSchema }),
692
- createProfile: endpoint({ method: "POST", path: "/members/onboarding", body: CreateProfileRequestSchema, response: NoContentSchema }),
693
- updateProfile: endpoint({ method: "PATCH", path: "/members/me/profile", body: UpdateProfileRequestSchema, response: NoContentSchema })
1802
+ me: endpoint({
1803
+ method: "GET",
1804
+ path: "/members/me",
1805
+ response: MemberResponseSchema
1806
+ }),
1807
+ myProfile: endpoint({
1808
+ method: "GET",
1809
+ path: "/members/me/profile",
1810
+ response: ProfileDetailResponseSchema
1811
+ }),
1812
+ search: endpoint({
1813
+ method: "GET",
1814
+ path: "/members/search",
1815
+ query: MemberSearchQuerySchema,
1816
+ response: MemberSerachResponseSchema
1817
+ }),
1818
+ memberProfile: endpoint({
1819
+ method: "GET",
1820
+ path: "/members/:memberId/profile",
1821
+ pathParams: memberIdParam,
1822
+ response: ProfileDetailResponseSchema
1823
+ }),
1824
+ presignProfileImage: endpoint({
1825
+ method: "POST",
1826
+ path: "/uploads/presign-profile",
1827
+ body: UploadProfileImageRequestSchema,
1828
+ response: UploadProfileImageResponseSchema
1829
+ }),
1830
+ createProfile: endpoint({
1831
+ method: "POST",
1832
+ path: "/members/onboarding",
1833
+ body: CreateProfileRequestSchema,
1834
+ response: NoContentSchema
1835
+ }),
1836
+ createProfileAlias: endpoint({
1837
+ method: "POST",
1838
+ path: "/onboarding",
1839
+ body: CreateProfileRequestSchema,
1840
+ response: NoContentSchema
1841
+ }),
1842
+ updateProfile: endpoint({
1843
+ method: "PATCH",
1844
+ path: "/members/me/profile",
1845
+ body: UpdateProfileRequestSchema,
1846
+ response: NoContentSchema
1847
+ }),
1848
+ locationSettings: endpoint({
1849
+ method: "GET",
1850
+ path: "/members/me/location-settings",
1851
+ response: MemberLocationSettingsResponseSchema
1852
+ }),
1853
+ updateLocationConsent: endpoint({
1854
+ method: "PATCH",
1855
+ path: "/members/me/location-consent",
1856
+ body: UpdateMemberLocationConsentRequestSchema,
1857
+ response: MemberLocationSettingsResponseSchema
1858
+ }),
1859
+ updateLocation: endpoint({
1860
+ method: "PATCH",
1861
+ path: "/members/me/location",
1862
+ body: UpdateMemberLocationRequestSchema,
1863
+ response: MemberLocationSettingsResponseSchema
1864
+ })
694
1865
  },
695
1866
  preferences: {
696
- my: endpoint({ method: "GET", path: "/preferences/me", response: MemberFoodPreferenceSchema }),
697
- update: endpoint({ method: "PATCH", path: "/preferences/me", body: UpdatePreferenceRequestSchema, response: NoContentSchema })
1867
+ my: endpoint({
1868
+ method: "GET",
1869
+ path: "/preferences/me",
1870
+ response: MemberFoodPreferenceSchema
1871
+ }),
1872
+ update: endpoint({
1873
+ method: "PATCH",
1874
+ path: "/preferences/me",
1875
+ body: UpdatePreferenceRequestSchema,
1876
+ response: NoContentSchema
1877
+ })
698
1878
  },
699
1879
  mealStatus: {
700
- my: endpoint({ method: "GET", path: "/members/me/meal-status", response: MealStatusResponseSchema }),
701
- updateMealStatus: endpoint({ method: "PATCH", path: "/members/me/meal-status", body: UpdateMealStatusRequestSchema, response: NoContentSchema }),
702
- friendMealStatus: endpoint({ method: "GET", path: "/friends/me/meals", query: FriendMealQuerySchema, response: import_zod20.z.array(FriendMealItemResponseSchema) })
1880
+ my: endpoint({
1881
+ method: "GET",
1882
+ path: "/members/me/meal-status",
1883
+ response: MealStatusResponseSchema
1884
+ }),
1885
+ updateMealStatus: endpoint({
1886
+ method: "PATCH",
1887
+ path: "/members/me/meal-status",
1888
+ body: UpdateMealStatusRequestSchema,
1889
+ response: NoContentSchema
1890
+ }),
1891
+ friendMealStatus: endpoint({
1892
+ method: "GET",
1893
+ path: "/friends/me/meals",
1894
+ query: FriendMealQuerySchema,
1895
+ response: import_zod28.z.array(FriendMealItemResponseSchema)
1896
+ })
703
1897
  },
704
1898
  articles: {
705
- list: endpoint({ method: "GET", path: "/articles/home", query: ArticleListQuerySchema, response: PageArticleSummaryResponseSchema }),
706
- byMember: endpoint({ method: "GET", path: "/articles/by-author/:memberId", pathParams: memberIdParam, query: ArticleListQuerySchema, response: PageArticleSummaryResponseSchema }),
707
- my: endpoint({ method: "GET", path: "/articles/my", response: PageArticleSummaryResponseSchema }),
708
- detail: endpoint({ method: "GET", path: "/articles/:articleId", pathParams: articleIdParam, response: ArticleDetailResponseSchema }),
709
- create: endpoint({ method: "POST", path: "/articles", body: CreateArticleRequestSchema, response: CreatedEntityIdResponseSchema }),
710
- like: endpoint({ method: "POST", path: "/articles/:articleId/like", pathParams: articleIdParam, response: ArticleLikeResponseSchema }),
711
- createComment: endpoint({ method: "POST", path: "/articles/:articleId/comments", pathParams: articleIdParam, body: CreateCommentRequestSchema, response: CreatedEntityIdResponseSchema }),
712
- presignArticleImage: endpoint({ method: "POST", path: "/uploads/presign-article", body: UploadArticleImageRequestSchema, response: UploadArticleImageResponseSchema }),
713
- delete: endpoint({ method: "DELETE", path: "/articles/:articleId", pathParams: articleIdParam, response: NoContentSchema }),
714
- deleteComment: endpoint({ method: "DELETE", path: "/articles/comments/:commentId", pathParams: commentIdParam, response: NoContentSchema })
715
- // TODO: 게시물 수정 기능
716
- },
717
- recruits: {
718
- list: endpoint({ method: "GET", path: "/recruits", query: RecruitListQuerySchema, response: RecruitListResponseSchema }),
719
- create: endpoint({ method: "POST", path: "/recruits", body: CreateRecruitRequestSchema, response: CreateRecruitResponseSchema }),
720
- join: endpoint({ method: "POST", path: "/recruits/:recruitId/join", pathParams: recruitIdParam, response: NoContentSchema }),
721
- close: endpoint({ method: "POST", path: "/recruits/:recruitId/close", pathParams: recruitIdParam, response: NoContentSchema })
1899
+ list: endpoint({
1900
+ method: "GET",
1901
+ path: "/articles/home",
1902
+ query: ArticleListQuerySchema,
1903
+ response: PageArticleSummaryResponseSchema
1904
+ }),
1905
+ byMember: endpoint({
1906
+ method: "GET",
1907
+ path: "/articles/by-author/:memberId",
1908
+ pathParams: memberIdParam,
1909
+ query: ArticleListQuerySchema,
1910
+ response: PageArticleSummaryResponseSchema
1911
+ }),
1912
+ my: endpoint({
1913
+ method: "GET",
1914
+ path: "/articles/my",
1915
+ response: PageArticleSummaryResponseSchema
1916
+ }),
1917
+ detail: endpoint({
1918
+ method: "GET",
1919
+ path: "/articles/:articleId",
1920
+ pathParams: articleIdParam,
1921
+ response: ArticleDetailResponseSchema
1922
+ }),
1923
+ create: endpoint({
1924
+ method: "POST",
1925
+ path: "/articles",
1926
+ body: CreateArticleRequestSchema,
1927
+ response: CreatedEntityIdResponseSchema
1928
+ }),
1929
+ like: endpoint({
1930
+ method: "POST",
1931
+ path: "/articles/:articleId/like",
1932
+ pathParams: articleIdParam,
1933
+ response: ArticleLikeResponseSchema
1934
+ }),
1935
+ createComment: endpoint({
1936
+ method: "POST",
1937
+ path: "/articles/:articleId/comments",
1938
+ pathParams: articleIdParam,
1939
+ body: CreateCommentRequestSchema,
1940
+ response: CreatedEntityIdResponseSchema
1941
+ }),
1942
+ presignArticleImage: endpoint({
1943
+ method: "POST",
1944
+ path: "/uploads/presign-article",
1945
+ body: UploadArticleImageRequestSchema,
1946
+ response: UploadArticleImageResponseSchema
1947
+ }),
1948
+ delete: endpoint({
1949
+ method: "DELETE",
1950
+ path: "/articles/:articleId",
1951
+ pathParams: articleIdParam,
1952
+ response: NoContentSchema
1953
+ }),
1954
+ deleteComment: endpoint({
1955
+ method: "DELETE",
1956
+ path: "/articles/comments/:commentId",
1957
+ pathParams: commentIdParam,
1958
+ response: NoContentSchema
1959
+ })
722
1960
  },
723
- invitations: {
724
- list: endpoint({ method: "GET", path: "/invitations", response: import_zod20.z.array(InvitationListItemResponseSchema) }),
725
- // TODO: Invitation Response 정하기 detail: endpoint({ method: "GET", path: "/invitations/:invitationId", pathParams: invitationIdParam, response: InvitationItemDetailResponseSchema }),
726
- send: endpoint({ method: "POST", path: "/invitations/send", body: CreateInvitationRequestSchema, response: SendInvitationResponseSchema }),
727
- accept: endpoint({ method: "POST", path: "/invitations/:invitationId/accept", pathParams: invitationIdParam, response: AcceptInvitationResponseSchema }),
728
- reject: endpoint({ method: "POST", path: "/invitations/:invitationId/reject", pathParams: invitationIdParam, response: NoContentSchema })
1961
+ mealPlans: {
1962
+ create: endpoint({
1963
+ method: "POST",
1964
+ path: "/meal-plans",
1965
+ body: CreateMealPlanRequestSchema,
1966
+ response: CreateMealPlanResponseSchema
1967
+ }),
1968
+ my: endpoint({
1969
+ method: "GET",
1970
+ path: "/meal-plans/me",
1971
+ response: MyMealPlanListResponseSchema
1972
+ }),
1973
+ homeDashboard: endpoint({
1974
+ method: "GET",
1975
+ path: "/meal-plans/home-dashboard",
1976
+ response: HomeMealPlanDashboardResponseSchema
1977
+ }),
1978
+ map: endpoint({
1979
+ method: "GET",
1980
+ path: "/meal-plans/map",
1981
+ query: MealMapQuerySchema,
1982
+ response: MealMapResponseSchema
1983
+ }),
1984
+ detail: endpoint({
1985
+ method: "GET",
1986
+ path: "/meal-plans/:mealPlanId",
1987
+ pathParams: mealPlanIdParam,
1988
+ response: MealPlanResponseSchema
1989
+ }),
1990
+ chatMessages: endpoint({
1991
+ method: "GET",
1992
+ path: "/meal-plans/:mealPlanId/chat/messages",
1993
+ pathParams: mealPlanIdParam,
1994
+ response: MealPlanChatMessageListResponseSchema
1995
+ }),
1996
+ updateContext: endpoint({
1997
+ method: "PATCH",
1998
+ path: "/meal-plans/:mealPlanId/context",
1999
+ pathParams: mealPlanIdParam,
2000
+ body: UpdateMealPlanContextRequestSchema,
2001
+ response: MealPlanResponseSchema
2002
+ }),
2003
+ complete: endpoint({
2004
+ method: "POST",
2005
+ path: "/meal-plans/:mealPlanId/complete",
2006
+ pathParams: mealPlanIdParam,
2007
+ response: MealPlanResponseSchema
2008
+ }),
2009
+ cancel: endpoint({
2010
+ method: "POST",
2011
+ path: "/meal-plans/:mealPlanId/cancel",
2012
+ pathParams: mealPlanIdParam,
2013
+ response: MealPlanResponseSchema
2014
+ }),
2015
+ removeParticipant: endpoint({
2016
+ method: "POST",
2017
+ path: "/meal-plans/:mealPlanId/participants/:participantId/remove",
2018
+ pathParams: mealPlanParticipantIdParam,
2019
+ response: MealPlanResponseSchema
2020
+ }),
2021
+ recorded: endpoint({
2022
+ method: "POST",
2023
+ path: "/meal-plans/:mealPlanId/recorded",
2024
+ pathParams: mealPlanIdParam,
2025
+ response: MealPlanResponseSchema
2026
+ }),
2027
+ invite: endpoint({
2028
+ method: "POST",
2029
+ path: "/meal-plans/:mealPlanId/invites",
2030
+ pathParams: mealPlanIdParam,
2031
+ body: CreateMealPlanInviteRequestSchema,
2032
+ response: SendMealPlanInviteResponseSchema
2033
+ }),
2034
+ receivedInvites: endpoint({
2035
+ method: "GET",
2036
+ path: "/meal-plans/invites/received",
2037
+ response: MealPlanInviteListResponseSchema
2038
+ }),
2039
+ sentInvites: endpoint({
2040
+ method: "GET",
2041
+ path: "/meal-plans/invites/sent",
2042
+ response: MealPlanInviteListResponseSchema
2043
+ }),
2044
+ acceptInvite: endpoint({
2045
+ method: "POST",
2046
+ path: "/meal-plans/invites/:inviteId/accept",
2047
+ pathParams: mealPlanInviteIdParam,
2048
+ response: MealPlanResponseSchema
2049
+ }),
2050
+ declineInvite: endpoint({
2051
+ method: "POST",
2052
+ path: "/meal-plans/invites/:inviteId/decline",
2053
+ pathParams: mealPlanInviteIdParam,
2054
+ response: NoContentSchema
2055
+ }),
2056
+ createShareLink: endpoint({
2057
+ method: "POST",
2058
+ path: "/meal-plans/:mealPlanId/share-links",
2059
+ pathParams: mealPlanIdParam,
2060
+ body: CreateMealPlanShareLinkRequestSchema,
2061
+ response: MealPlanShareLinkSummarySchema
2062
+ }),
2063
+ sharePreview: endpoint({
2064
+ method: "GET",
2065
+ path: "/meal-plan-links/:token",
2066
+ pathParams: mealPlanShareTokenParam,
2067
+ response: MealPlanSharePreviewResponseSchema
2068
+ }),
2069
+ joinGuest: endpoint({
2070
+ method: "POST",
2071
+ path: "/meal-plan-links/:token/join",
2072
+ pathParams: mealPlanShareTokenParam,
2073
+ body: JoinMealPlanGuestRequestSchema,
2074
+ response: JoinMealPlanGuestResponseSchema
2075
+ }),
2076
+ guestSession: endpoint({
2077
+ method: "GET",
2078
+ path: "/meal-plan-links/:token/session",
2079
+ pathParams: mealPlanShareTokenParam,
2080
+ query: MealPlanGuestSessionQuerySchema,
2081
+ response: MealPlanGuestSessionResponseSchema
2082
+ }),
2083
+ guestChatMessages: endpoint({
2084
+ method: "GET",
2085
+ path: "/meal-plan-links/:token/chat/messages",
2086
+ pathParams: mealPlanShareTokenParam,
2087
+ query: MealPlanGuestSessionQuerySchema,
2088
+ response: MealPlanChatMessageListResponseSchema
2089
+ }),
2090
+ exposeNearbyFriends: endpoint({
2091
+ method: "POST",
2092
+ path: "/meal-plans/:mealPlanId/nearby-friends/expose",
2093
+ pathParams: mealPlanIdParam,
2094
+ body: ExposeMealPlanToNearbyFriendsRequestSchema,
2095
+ response: ExposeMealPlanToNearbyFriendsResponseSchema
2096
+ }),
2097
+ closeNearbyFriends: endpoint({
2098
+ method: "DELETE",
2099
+ path: "/meal-plans/:mealPlanId/nearby-friends/expose",
2100
+ pathParams: mealPlanIdParam,
2101
+ response: NoContentSchema
2102
+ }),
2103
+ nearbyFriendExposureEligibility: endpoint({
2104
+ method: "GET",
2105
+ path: "/meal-plans/nearby-friends/eligibility",
2106
+ response: NearbyFriendExposureEligibilitySchema
2107
+ }),
2108
+ nearbyFriends: endpoint({
2109
+ method: "GET",
2110
+ path: "/meal-plans/nearby-friends",
2111
+ response: import_zod28.z.array(NearbyFriendMealPlanSummarySchema)
2112
+ }),
2113
+ requestJoin: endpoint({
2114
+ method: "POST",
2115
+ path: "/meal-plans/:mealPlanId/join-requests",
2116
+ pathParams: mealPlanIdParam,
2117
+ body: CreateMealPlanJoinRequestSchema,
2118
+ response: CreatedEntityIdResponseSchema
2119
+ }),
2120
+ acceptJoinRequest: endpoint({
2121
+ method: "POST",
2122
+ path: "/meal-plans/join-requests/:requestId/accept",
2123
+ pathParams: mealPlanJoinRequestIdParam,
2124
+ response: MealPlanResponseSchema
2125
+ }),
2126
+ rejectJoinRequest: endpoint({
2127
+ method: "POST",
2128
+ path: "/meal-plans/join-requests/:requestId/reject",
2129
+ pathParams: mealPlanJoinRequestIdParam,
2130
+ response: NoContentSchema
2131
+ }),
2132
+ vote: endpoint({
2133
+ method: "POST",
2134
+ path: "/meal-plans/:mealPlanId/stages/:stageId/votes",
2135
+ pathParams: mealPlanDecisionStageIdParam,
2136
+ body: CreateMealPlanVoteRequestSchema,
2137
+ response: MealPlanResponseSchema
2138
+ }),
2139
+ completeStage: endpoint({
2140
+ method: "POST",
2141
+ path: "/meal-plans/:mealPlanId/stages/:stageId/complete",
2142
+ pathParams: mealPlanDecisionStageIdParam,
2143
+ body: CompleteMealPlanDecisionStageRequestSchema,
2144
+ response: MealPlanResponseSchema
2145
+ }),
2146
+ decisionProgress: endpoint({
2147
+ method: "GET",
2148
+ path: "/meal-plans/:mealPlanId/decision-progress",
2149
+ pathParams: mealPlanIdParam,
2150
+ response: MealPlanDecisionProgressSchema
2151
+ }),
2152
+ readyDecisionTask: endpoint({
2153
+ method: "POST",
2154
+ path: "/meal-plans/:mealPlanId/decision-tasks/:taskKey/ready",
2155
+ pathParams: mealPlanDecisionTaskKeyParam,
2156
+ body: MealPlanDecisionTaskReadyRequestSchema,
2157
+ response: MealPlanResponseSchema
2158
+ }),
2159
+ reopenDecisionTask: endpoint({
2160
+ method: "POST",
2161
+ path: "/meal-plans/:mealPlanId/decision-tasks/:taskKey/reopen",
2162
+ pathParams: mealPlanDecisionTaskKeyParam,
2163
+ body: ReopenMealPlanDecisionTaskRequestSchema,
2164
+ response: MealPlanResponseSchema
2165
+ }),
2166
+ confirmDecisionSnapshot: endpoint({
2167
+ method: "POST",
2168
+ path: "/meal-plans/:mealPlanId/decision-snapshots/:snapshotId/confirm",
2169
+ pathParams: mealPlanDecisionSnapshotIdParam,
2170
+ body: ConfirmMealPlanDecisionSnapshotRequestSchema,
2171
+ response: MealPlanResponseSchema
2172
+ }),
2173
+ ready: endpoint({
2174
+ method: "POST",
2175
+ path: "/meal-plans/:mealPlanId/ready",
2176
+ pathParams: mealPlanIdParam,
2177
+ response: MealPlanResponseSchema
2178
+ }),
2179
+ unready: endpoint({
2180
+ method: "POST",
2181
+ path: "/meal-plans/:mealPlanId/unready",
2182
+ pathParams: mealPlanIdParam,
2183
+ response: MealPlanResponseSchema
2184
+ }),
2185
+ createChangeRequest: endpoint({
2186
+ method: "POST",
2187
+ path: "/meal-plans/:mealPlanId/change-requests",
2188
+ pathParams: mealPlanIdParam,
2189
+ body: CreateMealPlanChangeRequestSchema,
2190
+ response: CreatedEntityIdResponseSchema
2191
+ }),
2192
+ acceptChangeRequest: endpoint({
2193
+ method: "POST",
2194
+ path: "/meal-plans/:mealPlanId/change-requests/:requestId/accept",
2195
+ pathParams: mealPlanChangeRequestIdParam,
2196
+ response: MealPlanResponseSchema
2197
+ }),
2198
+ confirm: endpoint({
2199
+ method: "POST",
2200
+ path: "/meal-plans/:mealPlanId/confirm",
2201
+ pathParams: mealPlanIdParam,
2202
+ response: MealPlanResponseSchema
2203
+ })
729
2204
  },
730
- plans: {
731
- list: endpoint({ method: "GET", path: "/plans", query: PlanListQuerySchema, response: import_zod20.z.array(PlanResponseSchema) }),
732
- detail: endpoint({ method: "GET", path: "/plans/:planId", pathParams: planIdParam, response: PlanResponseSchema }),
733
- cancel: endpoint({ method: "PATCH", path: "/plans/:planId/cancel", pathParams: planIdParam, response: NoContentSchema })
2205
+ mealGroups: {
2206
+ create: endpoint({
2207
+ method: "POST",
2208
+ path: "/meal-groups",
2209
+ body: CreateMealGroupRequestSchema,
2210
+ response: MealGroupResponseSchema
2211
+ }),
2212
+ list: endpoint({
2213
+ method: "GET",
2214
+ path: "/meal-groups",
2215
+ response: import_zod28.z.array(MealGroupResponseSchema)
2216
+ }),
2217
+ detail: endpoint({
2218
+ method: "GET",
2219
+ path: "/meal-groups/:mealGroupId",
2220
+ pathParams: mealGroupIdParam,
2221
+ response: MealGroupResponseSchema
2222
+ }),
2223
+ startMealPlan: endpoint({
2224
+ method: "POST",
2225
+ path: "/meal-groups/:mealGroupId/meal-plans",
2226
+ pathParams: mealGroupIdParam,
2227
+ body: StartMealPlanFromGroupRequestSchema,
2228
+ response: CreateMealPlanResponseSchema
2229
+ }),
2230
+ history: endpoint({
2231
+ method: "GET",
2232
+ path: "/meal-groups/:mealGroupId/history",
2233
+ pathParams: mealGroupIdParam,
2234
+ response: MealGroupHistoryResponseSchema
2235
+ }),
2236
+ preferences: endpoint({
2237
+ method: "GET",
2238
+ path: "/meal-groups/:mealGroupId/preferences",
2239
+ pathParams: mealGroupIdParam,
2240
+ response: MealGroupPreferenceSummarySchema
2241
+ }),
2242
+ addMember: endpoint({
2243
+ method: "POST",
2244
+ path: "/meal-groups/:mealGroupId/members",
2245
+ pathParams: mealGroupIdParam,
2246
+ body: AddMealGroupMemberRequestSchema,
2247
+ response: MealGroupResponseSchema
2248
+ }),
2249
+ updateMemberRole: endpoint({
2250
+ method: "PATCH",
2251
+ path: "/meal-groups/:mealGroupId/members/:memberId/role",
2252
+ pathParams: mealGroupMemberIdParam,
2253
+ body: UpdateMealGroupMemberRoleRequestSchema,
2254
+ response: MealGroupResponseSchema
2255
+ }),
2256
+ removeMember: endpoint({
2257
+ method: "DELETE",
2258
+ path: "/meal-groups/:mealGroupId/members/:memberId",
2259
+ pathParams: mealGroupMemberIdParam,
2260
+ response: MealGroupResponseSchema
2261
+ })
734
2262
  },
735
2263
  friends: {
736
- list: endpoint({ method: "GET", path: "/friends", response: import_zod20.z.array(FriendListItemResponseSchema) }),
737
- blockList: endpoint({ method: "GET", path: "/friends/blocks", response: import_zod20.z.array(FriendBlockItemResponseSchema) }),
738
- search: endpoint({ method: "GET", path: "/friends/search", query: MemberSearchQuerySchema, response: MemberSerachResponseSchema }),
739
- incomingRequest: endpoint({ method: "GET", path: "/friends/requests/incoming", response: import_zod20.z.array(FriendRequestItemResponseSchema) }),
740
- outgoingRequest: endpoint({ method: "GET", path: "/friends/requests/outgoing", response: import_zod20.z.array(FriendRequestItemResponseSchema) }),
741
- sendRequest: endpoint({ method: "POST", path: "/friends/requests/:memberId", pathParams: memberIdParam, response: NoContentSchema }),
742
- acceptRequest: endpoint({ method: "POST", path: "/friends/requests/:requestId/accept", pathParams: friendRequestIdParam, response: NoContentSchema }),
743
- rejectRequest: endpoint({ method: "POST", path: "/friends/requests/:requestId/reject", pathParams: friendRequestIdParam, response: NoContentSchema }),
744
- block: endpoint({ method: "POST", path: "/friends/blocks/:memberId", pathParams: memberIdParam, response: NoContentSchema }),
745
- cancelRequest: endpoint({ method: "DELETE", path: "/friends/requests/:requestId", pathParams: friendRequestIdParam, response: NoContentSchema }),
746
- unblock: endpoint({ method: "DELETE", path: "/friends/blocks/:memberId", pathParams: memberIdParam, response: NoContentSchema }),
747
- unfriend: endpoint({ method: "DELETE", path: "/friends/:memberId", pathParams: memberIdParam, response: NoContentSchema })
2264
+ list: endpoint({
2265
+ method: "GET",
2266
+ path: "/friends",
2267
+ response: import_zod28.z.array(FriendListItemResponseSchema)
2268
+ }),
2269
+ blockList: endpoint({
2270
+ method: "GET",
2271
+ path: "/friends/blocks",
2272
+ response: import_zod28.z.array(FriendBlockItemResponseSchema)
2273
+ }),
2274
+ search: endpoint({
2275
+ method: "GET",
2276
+ path: "/friends/search",
2277
+ query: MemberSearchQuerySchema,
2278
+ response: MemberSerachResponseSchema
2279
+ }),
2280
+ incomingRequest: endpoint({
2281
+ method: "GET",
2282
+ path: "/friends/requests/incoming",
2283
+ response: import_zod28.z.array(FriendRequestItemResponseSchema)
2284
+ }),
2285
+ outgoingRequest: endpoint({
2286
+ method: "GET",
2287
+ path: "/friends/requests/outgoing",
2288
+ response: import_zod28.z.array(FriendRequestItemResponseSchema)
2289
+ }),
2290
+ sendRequest: endpoint({
2291
+ method: "POST",
2292
+ path: "/friends/requests/:memberId",
2293
+ pathParams: memberIdParam,
2294
+ response: NoContentSchema
2295
+ }),
2296
+ acceptRequest: endpoint({
2297
+ method: "POST",
2298
+ path: "/friends/requests/:requestId/accept",
2299
+ pathParams: friendRequestIdParam,
2300
+ response: NoContentSchema
2301
+ }),
2302
+ rejectRequest: endpoint({
2303
+ method: "POST",
2304
+ path: "/friends/requests/:requestId/reject",
2305
+ pathParams: friendRequestIdParam,
2306
+ response: NoContentSchema
2307
+ }),
2308
+ block: endpoint({
2309
+ method: "POST",
2310
+ path: "/friends/blocks/:memberId",
2311
+ pathParams: memberIdParam,
2312
+ response: NoContentSchema
2313
+ }),
2314
+ cancelRequest: endpoint({
2315
+ method: "DELETE",
2316
+ path: "/friends/requests/:requestId",
2317
+ pathParams: friendRequestIdParam,
2318
+ response: NoContentSchema
2319
+ }),
2320
+ unblock: endpoint({
2321
+ method: "DELETE",
2322
+ path: "/friends/blocks/:memberId",
2323
+ pathParams: memberIdParam,
2324
+ response: NoContentSchema
2325
+ }),
2326
+ unfriend: endpoint({
2327
+ method: "DELETE",
2328
+ path: "/friends/:memberId",
2329
+ pathParams: memberIdParam,
2330
+ response: NoContentSchema
2331
+ })
748
2332
  },
749
2333
  coupons: {
750
- list: endpoint({ method: "GET", path: "/coupons", response: import_zod20.z.array(CouponResponseSchema) }),
751
- use: endpoint({ method: "POST", path: "/coupons/:couponId/use", pathParams: couponIdParam, response: NoContentSchema })
2334
+ list: endpoint({
2335
+ method: "GET",
2336
+ path: "/coupons",
2337
+ response: import_zod28.z.array(CouponResponseSchema)
2338
+ }),
2339
+ use: endpoint({
2340
+ method: "POST",
2341
+ path: "/coupons/:couponId/use",
2342
+ pathParams: couponIdParam,
2343
+ response: NoContentSchema
2344
+ })
752
2345
  },
753
2346
  challenges: {
754
- status: endpoint({ method: "GET", path: "/challenges/status", response: ChallengeStatusResponseSchema }),
755
- claimReward: endpoint({ method: "POST", path: "/challenges/rewards", body: ClaimChallengeRewardRequestSchema, response: NoContentSchema })
2347
+ status: endpoint({
2348
+ method: "GET",
2349
+ path: "/challenges/status",
2350
+ response: ChallengeStatusResponseSchema
2351
+ }),
2352
+ claimReward: endpoint({
2353
+ method: "POST",
2354
+ path: "/challenges/rewards",
2355
+ body: ClaimChallengeRewardRequestSchema,
2356
+ response: NoContentSchema
2357
+ })
756
2358
  },
757
2359
  referrals: {
758
- list: endpoint({ method: "GET", path: "/referrals", response: import_zod20.z.array(ReferralItemResponseSchema) }),
759
- create: endpoint({ method: "POST", path: "/referrals", response: ReferralCreateResponseSchema }),
760
- redeem: endpoint({ method: "POST", path: "/referrals/redeem", body: RedeemReferralRequestSchema, response: NoContentSchema })
2360
+ list: endpoint({
2361
+ method: "GET",
2362
+ path: "/referrals",
2363
+ response: import_zod28.z.array(ReferralItemResponseSchema)
2364
+ }),
2365
+ create: endpoint({
2366
+ method: "POST",
2367
+ path: "/referrals",
2368
+ response: ReferralCreateResponseSchema
2369
+ }),
2370
+ redeem: endpoint({
2371
+ method: "POST",
2372
+ path: "/referrals/redeem",
2373
+ body: RedeemReferralRequestSchema,
2374
+ response: NoContentSchema
2375
+ })
761
2376
  },
762
2377
  notifications: {
763
- list: endpoint({ method: "GET", path: "/notifications", response: import_zod20.z.array(MatchingNotificationSchema) }),
764
- markRead: endpoint({ method: "PATCH", path: "/notifications/:notificationId/read", pathParams: notificationIdParam, response: MatchingNotificationSchema }),
765
- delete: endpoint({ method: "DELETE", path: "/notifications/:notificationId", pathParams: notificationIdParam, response: NoContentSchema })
2378
+ list: endpoint({
2379
+ method: "GET",
2380
+ path: "/notifications",
2381
+ response: import_zod28.z.array(MealPlanNotificationSchema)
2382
+ }),
2383
+ markRead: endpoint({
2384
+ method: "PATCH",
2385
+ path: "/notifications/:notificationId/read",
2386
+ pathParams: notificationIdParam,
2387
+ response: MealPlanNotificationSchema
2388
+ }),
2389
+ delete: endpoint({
2390
+ method: "DELETE",
2391
+ path: "/notifications/:notificationId",
2392
+ pathParams: notificationIdParam,
2393
+ response: NoContentSchema
2394
+ })
766
2395
  },
767
- room: {
768
- access: endpoint({ method: "GET", path: "/rooms/:roomId/access", pathParams: roomIdParam, response: RoomAccessResponseSchema })
2396
+ pushTokens: {
2397
+ list: endpoint({
2398
+ method: "GET",
2399
+ path: "/push-tokens",
2400
+ response: import_zod28.z.array(PushTokenResponseSchema)
2401
+ }),
2402
+ register: endpoint({
2403
+ method: "POST",
2404
+ path: "/push-tokens",
2405
+ body: RegisterPushTokenRequestSchema,
2406
+ response: PushTokenResponseSchema
2407
+ }),
2408
+ revoke: endpoint({
2409
+ method: "POST",
2410
+ path: "/push-tokens/revoke",
2411
+ body: RevokePushTokenRequestSchema,
2412
+ response: NoContentSchema
2413
+ })
2414
+ },
2415
+ liveActivities: {
2416
+ listMealPlanSessions: endpoint({
2417
+ method: "GET",
2418
+ path: "/meal-plans/:mealPlanId/live-activity",
2419
+ pathParams: mealPlanIdParam,
2420
+ response: MealPlanLiveActivitySessionListResponseSchema
2421
+ }),
2422
+ registerMealPlanSession: endpoint({
2423
+ method: "POST",
2424
+ path: "/meal-plans/:mealPlanId/live-activity/sessions",
2425
+ pathParams: mealPlanIdParam,
2426
+ body: RegisterMealPlanLiveActivitySessionRequestSchema,
2427
+ response: MealPlanLiveActivitySessionResponseSchema
2428
+ }),
2429
+ endMealPlanSessions: endpoint({
2430
+ method: "POST",
2431
+ path: "/meal-plans/:mealPlanId/live-activity/end",
2432
+ pathParams: mealPlanIdParam,
2433
+ body: EndMealPlanLiveActivitySessionRequestSchema,
2434
+ response: NoContentSchema
2435
+ })
2436
+ },
2437
+ sse: {
2438
+ notifications: endpoint({
2439
+ method: "GET",
2440
+ path: "/sse/notifications",
2441
+ query: sseTokenQuery,
2442
+ response: import_zod28.z.any()
2443
+ })
769
2444
  },
770
2445
  health: {
771
- healthCheck: endpoint({ method: "GET", path: "/", response: import_zod20.z.string() })
2446
+ healthCheck: endpoint({
2447
+ method: "GET",
2448
+ path: "/",
2449
+ response: import_zod28.z.string()
2450
+ })
772
2451
  }
773
2452
  };
774
2453
 
2454
+ // src/domain/common/contracts/cache-invalidation.ts
2455
+ var CACHE_INVALIDATION_SSE_EVENT = "cache-invalidate";
2456
+
775
2457
  // src/domain/common/contracts/envelope.ts
776
2458
  var makeApiResponseSchema = ApiResponseSchema;
777
2459
  var makeApiSuccessSchema = ApiSuccessSchema;
778
2460
 
779
2461
  // src/domain/common/contracts/id.ts
780
- var toMemberId = (value) => MemberIdSchema.parse(value);
781
- var toArticleId = (value) => ArticleIdSchema.parse(value);
782
- var toRecruitId = (value) => RecruitIdSchema.parse(value);
783
- var toInvitationId = (value) => InvitationIdSchema.parse(value);
784
- var toRoomId = (value) => RoomIdSchema.parse(value);
785
- var toRestaurantId = (value) => RestaurantIdSchema.parse(value);
786
- var toCommentId = (value) => CommentIdSchema.parse(value);
787
- var toPlanId = (value) => PlanIdSchema.parse(value);
788
- var toCouponId = (value) => CouponIdSchema.parse(value);
789
- var toSubscriptionId = (value) => SubscriptionIdSchema.parse(value);
790
- var toFriendRequestId = (value) => FriendRequestIdSchema.parse(value);
791
- var toReferralCode = (value) => ReferralCodeSchema.parse(value);
2462
+ var toMemberId = /* @__PURE__ */ __name((value) => MemberIdSchema.parse(value), "toMemberId");
2463
+ var toArticleId = /* @__PURE__ */ __name((value) => ArticleIdSchema.parse(value), "toArticleId");
2464
+ var toMealPlanId = /* @__PURE__ */ __name((value) => MealPlanIdSchema.parse(value), "toMealPlanId");
2465
+ var toMealPlanInviteId = /* @__PURE__ */ __name((value) => MealPlanInviteIdSchema.parse(value), "toMealPlanInviteId");
2466
+ var toMealPlanJoinRequestId = /* @__PURE__ */ __name((value) => MealPlanJoinRequestIdSchema.parse(value), "toMealPlanJoinRequestId");
2467
+ var toMealPlanNearbyFriendExposureBatchId = /* @__PURE__ */ __name((value) => MealPlanNearbyFriendExposureBatchIdSchema.parse(value), "toMealPlanNearbyFriendExposureBatchId");
2468
+ var toMealPlanChangeRequestId = /* @__PURE__ */ __name((value) => MealPlanChangeRequestIdSchema.parse(value), "toMealPlanChangeRequestId");
2469
+ var toMealPlanShareLinkId = /* @__PURE__ */ __name((value) => MealPlanShareLinkIdSchema.parse(value), "toMealPlanShareLinkId");
2470
+ var toMealPlanShareLinkToken = /* @__PURE__ */ __name((value) => MealPlanShareLinkTokenSchema.parse(value), "toMealPlanShareLinkToken");
2471
+ var toMealPlanChatRoomId = /* @__PURE__ */ __name((value) => MealPlanChatRoomIdSchema.parse(value), "toMealPlanChatRoomId");
2472
+ var toMealPlanChatMessageId = /* @__PURE__ */ __name((value) => MealPlanChatMessageIdSchema.parse(value), "toMealPlanChatMessageId");
2473
+ var toMealGroupId = /* @__PURE__ */ __name((value) => MealGroupIdSchema.parse(value), "toMealGroupId");
2474
+ var toRestaurantId = /* @__PURE__ */ __name((value) => RestaurantIdSchema.parse(value), "toRestaurantId");
2475
+ var toCommentId = /* @__PURE__ */ __name((value) => CommentIdSchema.parse(value), "toCommentId");
2476
+ var toCouponId = /* @__PURE__ */ __name((value) => CouponIdSchema.parse(value), "toCouponId");
2477
+ var toSubscriptionId = /* @__PURE__ */ __name((value) => SubscriptionIdSchema.parse(value), "toSubscriptionId");
2478
+ var toFriendRequestId = /* @__PURE__ */ __name((value) => FriendRequestIdSchema.parse(value), "toFriendRequestId");
2479
+ var toReferralCode = /* @__PURE__ */ __name((value) => ReferralCodeSchema.parse(value), "toReferralCode");
792
2480
  // Annotate the CommonJS export names for ESM import in node:
793
2481
  0 && (module.exports = {
794
2482
  ApiFailureSchema,
795
2483
  ApiResponseSchema,
796
2484
  ApiSuccessSchema,
797
2485
  ArticleIdSchema,
2486
+ CACHE_INVALIDATION_SSE_EVENT,
2487
+ CacheInvalidationActionSchema,
2488
+ CacheInvalidationEntitySchema,
2489
+ CacheInvalidationEventSchema,
2490
+ CacheInvalidationKeySchema,
798
2491
  CommentIdSchema,
799
2492
  CouponIdSchema,
800
2493
  CreatedEntityIdResponseSchema,
@@ -804,7 +2497,16 @@ var toReferralCode = (value) => ReferralCodeSchema.parse(value);
804
2497
  FriendRequestIdSchema,
805
2498
  ISODateStringSchema,
806
2499
  ISODateTimeStringSchema,
807
- InvitationIdSchema,
2500
+ MealGroupIdSchema,
2501
+ MealPlanChangeRequestIdSchema,
2502
+ MealPlanChatMessageIdSchema,
2503
+ MealPlanChatRoomIdSchema,
2504
+ MealPlanIdSchema,
2505
+ MealPlanInviteIdSchema,
2506
+ MealPlanJoinRequestIdSchema,
2507
+ MealPlanNearbyFriendExposureBatchIdSchema,
2508
+ MealPlanShareLinkIdSchema,
2509
+ MealPlanShareLinkTokenSchema,
808
2510
  MemberIdSchema,
809
2511
  NoBodySchema,
810
2512
  NoContentSchema,
@@ -814,12 +2516,9 @@ var toReferralCode = (value) => ReferralCodeSchema.parse(value);
814
2516
  PageMetaSchema,
815
2517
  PageQuerySchema,
816
2518
  PageResponseSchema,
817
- PlanIdSchema,
818
2519
  PositiveIntIdSchema,
819
- RecruitIdSchema,
820
2520
  ReferralCodeSchema,
821
2521
  RestaurantIdSchema,
822
- RoomIdSchema,
823
2522
  SortDirectionSchema,
824
2523
  SubscriptionIdSchema,
825
2524
  TimeHHmmStringSchema,
@@ -832,12 +2531,18 @@ var toReferralCode = (value) => ReferralCodeSchema.parse(value);
832
2531
  toCommentId,
833
2532
  toCouponId,
834
2533
  toFriendRequestId,
835
- toInvitationId,
2534
+ toMealGroupId,
2535
+ toMealPlanChangeRequestId,
2536
+ toMealPlanChatMessageId,
2537
+ toMealPlanChatRoomId,
2538
+ toMealPlanId,
2539
+ toMealPlanInviteId,
2540
+ toMealPlanJoinRequestId,
2541
+ toMealPlanNearbyFriendExposureBatchId,
2542
+ toMealPlanShareLinkId,
2543
+ toMealPlanShareLinkToken,
836
2544
  toMemberId,
837
- toPlanId,
838
- toRecruitId,
839
2545
  toReferralCode,
840
2546
  toRestaurantId,
841
- toRoomId,
842
2547
  toSubscriptionId
843
2548
  });