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