@kimdaegyu/babmukdang-shared 1.1.11 → 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 (100) 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 +79 -796
  19. package/dist/domain/article/index.d.ts +79 -796
  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 +6 -46
  23. package/dist/domain/auth/index.d.ts +6 -46
  24. package/dist/domain/auth/index.js +3 -3
  25. package/dist/domain/common/index.cjs +2100 -395
  26. package/dist/domain/common/index.d.cts +212 -3037
  27. package/dist/domain/common/index.d.ts +212 -3037
  28. package/dist/domain/common/index.js +65 -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 +39 -98
  35. package/dist/domain/friend/index.d.ts +39 -98
  36. package/dist/domain/friend/index.js +6 -4
  37. package/dist/domain/index.cjs +2736 -522
  38. package/dist/domain/index.d.cts +383 -123
  39. package/dist/domain/index.d.ts +383 -123
  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 +21 -40
  47. package/dist/domain/meal/index.d.ts +21 -40
  48. package/dist/domain/meal/index.js +4 -4
  49. package/dist/domain/meal-plan/index.cjs +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 +263 -273
  55. package/dist/domain/member/index.d.ts +263 -273
  56. package/dist/domain/member/index.js +26 -2
  57. package/dist/domain/promotion/index.cjs +26 -8
  58. package/dist/domain/promotion/index.d.cts +35 -112
  59. package/dist/domain/promotion/index.d.ts +35 -112
  60. package/dist/domain/promotion/index.js +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 +27 -1
  67. package/dist/domain/restaurant/index.d.ts +27 -1
  68. package/dist/domain/restaurant/index.js +2 -2
  69. package/dist/index.cjs +2535 -464
  70. package/dist/index.d.cts +5 -7
  71. package/dist/index.d.ts +5 -7
  72. package/dist/index.js +16 -15
  73. package/package.json +52 -55
  74. package/dist/chunk-PFSZSKD5.js +0 -0
  75. package/dist/chunk-PQMEXOPZ.js +0 -232
  76. package/dist/chunk-W4TUW2GY.js +0 -40
  77. package/dist/chunk-WNYCCQM4.js +0 -342
  78. package/dist/chunk-YGFAVC5N.js +0 -34
  79. package/dist/chunk-YM7YU7IR.js +0 -319
  80. package/dist/chunk-ZH7D7B2Y.js +0 -78
  81. package/dist/domain/invitation/index.cjs +0 -82
  82. package/dist/domain/invitation/index.d.cts +0 -64
  83. package/dist/domain/invitation/index.d.ts +0 -64
  84. package/dist/domain/invitation/index.js +0 -13
  85. package/dist/domain/plan/index.cjs +0 -327
  86. package/dist/domain/plan/index.d.cts +0 -178
  87. package/dist/domain/plan/index.d.ts +0 -178
  88. package/dist/domain/plan/index.js +0 -18
  89. package/dist/domain/recruit/index.cjs +0 -189
  90. package/dist/domain/recruit/index.d.cts +0 -214
  91. package/dist/domain/recruit/index.d.ts +0 -214
  92. package/dist/domain/recruit/index.js +0 -30
  93. package/dist/domain/room/index.cjs +0 -401
  94. package/dist/domain/room/index.d.cts +0 -2643
  95. package/dist/domain/room/index.d.ts +0 -2643
  96. package/dist/domain/room/index.js +0 -82
  97. package/dist/id-dAYxfjZn.d.cts +0 -64
  98. package/dist/id-dAYxfjZn.d.ts +0 -64
  99. package/dist/restaurant.schema-CuEcX3S3.d.cts +0 -78
  100. package/dist/restaurant.schema-CuEcX3S3.d.ts +0 -78
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 });
@@ -37,8 +38,10 @@ module.exports = __toCommonJS(index_exports);
37
38
  // src/domain/index.ts
38
39
  var domain_exports = {};
39
40
  __export(domain_exports, {
40
- AcceptInvitationResponseSchema: () => AcceptInvitationResponseSchema,
41
- 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,
42
45
  ApiFailureSchema: () => ApiFailureSchema,
43
46
  ApiResponseSchema: () => ApiResponseSchema,
44
47
  ApiSuccessSchema: () => ApiSuccessSchema,
@@ -50,33 +53,61 @@ __export(domain_exports, {
50
53
  ArticleListQuerySchema: () => ArticleListQuerySchema,
51
54
  ArticleSortBySchema: () => ArticleSortBySchema,
52
55
  ArticleSummaryResponseSchema: () => ArticleSummaryResponseSchema,
56
+ CACHE_INVALIDATION_SSE_EVENT: () => CACHE_INVALIDATION_SSE_EVENT,
57
+ CacheInvalidationActionSchema: () => CacheInvalidationActionSchema,
58
+ CacheInvalidationEntitySchema: () => CacheInvalidationEntitySchema,
59
+ CacheInvalidationEventSchema: () => CacheInvalidationEventSchema,
60
+ CacheInvalidationKeySchema: () => CacheInvalidationKeySchema,
53
61
  ChallengeStatusResponseSchema: () => ChallengeStatusResponseSchema,
54
- ChatMessageRequestSchema: () => ChatMessageRequestSchema,
55
- ChatMessageResponseSchema: () => ChatMessageResponseSchema,
56
62
  ClaimChallengeRewardRequestSchema: () => ClaimChallengeRewardRequestSchema,
57
63
  ClaimChallengeRewardResponseSchema: () => ClaimChallengeRewardResponseSchema,
58
64
  CommentIdSchema: () => CommentIdSchema,
65
+ CompleteMealPlanDecisionStageRequestSchema: () => CompleteMealPlanDecisionStageRequestSchema,
66
+ CompleteOnboardingRequestSchema: () => CompleteOnboardingRequestSchema,
67
+ ConfirmMealPlanDecisionSnapshotRequestSchema: () => ConfirmMealPlanDecisionSnapshotRequestSchema,
59
68
  CouponIdSchema: () => CouponIdSchema,
60
69
  CouponResponseSchema: () => CouponResponseSchema,
61
70
  CouponStatusSchema: () => CouponStatusSchema,
62
71
  CouponTypeSchema: () => CouponTypeSchema,
63
72
  CreateArticleRequestSchema: () => CreateArticleRequestSchema,
64
73
  CreateCommentRequestSchema: () => CreateCommentRequestSchema,
65
- 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,
66
83
  CreateProfileRequestSchema: () => CreateProfileRequestSchema,
67
- CreateRecruitRequestSchema: () => CreateRecruitRequestSchema,
68
- CreateRecruitResponseSchema: () => CreateRecruitResponseSchema,
69
84
  CreatedEntityIdResponseSchema: () => CreatedEntityIdResponseSchema,
70
- DatePicksUpdateResponseSchema: () => DatePicksUpdateResponseSchema,
71
- ExcludeMenuRequestSchema: () => ExcludeMenuRequestSchema,
72
- ExcludeMenuUpdateResponseSchema: () => ExcludeMenuUpdateResponseSchema,
73
- 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,
74
93
  FoodAnalysisResultSchema: () => FoodAnalysisResultSchema,
94
+ FoodCodeManifestImageSchema: () => FoodCodeManifestImageSchema,
95
+ FoodCodeManifestItemSchema: () => FoodCodeManifestItemSchema,
96
+ FoodCodeManifestSchema: () => FoodCodeManifestSchema,
75
97
  FoodCodeSchema: () => FoodCodeSchema,
98
+ FoodGranularitySchema: () => FoodGranularitySchema,
99
+ FoodImageIndexItemSchema: () => FoodImageIndexItemSchema,
100
+ FoodImageIndexManifestSchema: () => FoodImageIndexManifestSchema,
76
101
  FoodLabelSchema: () => FoodLabelSchema,
102
+ FoodResolveQuerySchema: () => FoodResolveQuerySchema,
103
+ FoodResolveResponseSchema: () => FoodResolveResponseSchema,
104
+ FoodResolvedMatchSourceSchema: () => FoodResolvedMatchSourceSchema,
77
105
  FoodSchema: () => FoodSchema,
106
+ FoodSearchQuerySchema: () => FoodSearchQuerySchema,
107
+ FoodSearchResponseSchema: () => FoodSearchResponseSchema,
78
108
  FriendBlockItemResponseSchema: () => FriendBlockItemResponseSchema,
79
109
  FriendListItemResponseSchema: () => FriendListItemResponseSchema,
110
+ FriendMealAvailabilitySchema: () => FriendMealAvailabilitySchema,
80
111
  FriendMealItemResponseSchema: () => FriendMealItemResponseSchema,
81
112
  FriendMealQuerySchema: () => FriendMealQuerySchema,
82
113
  FriendRequestIdSchema: () => FriendRequestIdSchema,
@@ -85,19 +116,121 @@ __export(domain_exports, {
85
116
  FriendRequestStatusSchema: () => FriendRequestStatusSchema,
86
117
  FriendSearchQuerySchema: () => FriendSearchQuerySchema,
87
118
  FriendSearchResponseSchema: () => FriendSearchResponseSchema,
119
+ HomeMealPlanActionCardSchema: () => HomeMealPlanActionCardSchema,
120
+ HomeMealPlanActionKindSchema: () => HomeMealPlanActionKindSchema,
121
+ HomeMealPlanDashboardResponseSchema: () => HomeMealPlanDashboardResponseSchema,
88
122
  ISODateStringSchema: () => ISODateStringSchema,
89
123
  ISODateTimeStringSchema: () => ISODateTimeStringSchema,
90
- InvitationIdSchema: () => InvitationIdSchema,
91
- InvitationListItemResponseSchema: () => InvitationListItemResponseSchema,
92
- InvitationRoomStageSchema: () => InvitationRoomStageSchema,
124
+ JoinMealPlanGuestRequestSchema: () => JoinMealPlanGuestRequestSchema,
125
+ JoinMealPlanGuestResponseSchema: () => JoinMealPlanGuestResponseSchema,
93
126
  KakaoPlaceRawSchema: () => KakaoPlaceRawSchema,
94
- LocationCandidateAddUpdateResponseSchema: () => LocationCandidateAddUpdateResponseSchema,
95
- LocationCandidateSchema: () => LocationCandidateSchema,
96
- LocationCandidateVoteUpdateResponseSchema: () => LocationCandidateVoteUpdateResponseSchema,
97
- LocationIdSchema: () => LocationIdSchema,
127
+ LocationConsentStatusSchema: () => LocationConsentStatusSchema,
98
128
  LoginRequestSchema: () => LoginRequestSchema,
99
- MatchingNotificationKindSchema: () => MatchingNotificationKindSchema,
100
- 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,
101
234
  MealStatusActionSchema: () => MealStatusActionSchema,
102
235
  MealStatusResponseSchema: () => MealStatusResponseSchema,
103
236
  MealStatusSchema: () => MealStatusSchema,
@@ -105,67 +238,68 @@ __export(domain_exports, {
105
238
  MemberDetailSchema: () => MemberDetailSchema,
106
239
  MemberFoodPreferenceSchema: () => MemberFoodPreferenceSchema,
107
240
  MemberIdSchema: () => MemberIdSchema,
241
+ MemberLocationSchema: () => MemberLocationSchema,
242
+ MemberLocationSettingsResponseSchema: () => MemberLocationSettingsResponseSchema,
108
243
  MemberResponseSchema: () => MemberResponseSchema,
109
244
  MemberRoleSchema: () => MemberRoleSchema,
110
245
  MemberSearchQuerySchema: () => MemberSearchQuerySchema,
111
246
  MemberSerachResponseSchema: () => MemberSerachResponseSchema,
112
- MenuCodeSchema: () => MenuCodeSchema,
113
- MenuPickUpdateResponseSchema: () => MenuPickUpdateResponseSchema,
114
- MenuSchema: () => MenuSchema,
247
+ MyMealPlanGroupSchema: () => MyMealPlanGroupSchema,
248
+ MyMealPlanListItemSchema: () => MyMealPlanListItemSchema,
249
+ MyMealPlanListResponseSchema: () => MyMealPlanListResponseSchema,
250
+ NearbyFriendExposureEligibilitySchema: () => NearbyFriendExposureEligibilitySchema,
251
+ NearbyFriendMealPlanSummarySchema: () => NearbyFriendMealPlanSummarySchema,
115
252
  NoBodySchema: () => NoBodySchema,
116
253
  NoContentSchema: () => NoContentSchema,
117
254
  NoParamsSchema: () => NoParamsSchema,
118
255
  NoQuerySchema: () => NoQuerySchema,
119
256
  NonEmptyStringIdSchema: () => NonEmptyStringIdSchema,
257
+ OnboardingDraftSchema: () => OnboardingDraftSchema,
258
+ OnboardingStatusSchema: () => OnboardingStatusSchema,
120
259
  PageArticleSummaryResponseSchema: () => PageArticleSummaryResponseSchema,
121
260
  PageMetaSchema: () => PageMetaSchema,
122
261
  PageQuerySchema: () => PageQuerySchema,
123
262
  PageResponseSchema: () => PageResponseSchema,
124
- ParticipantSchema: () => ParticipantSchema,
125
- PhaseDataBroadcastSchema: () => PhaseDataBroadcastSchema,
126
- PickDateRequestSchema: () => PickDateRequestSchema,
127
- PickMenuRequestSchema: () => PickMenuRequestSchema,
128
- PickRestaurantRequestSchema: () => PickRestaurantRequestSchema,
129
- PickTimesRequestSchema: () => PickTimesRequestSchema,
130
- PlanIdSchema: () => PlanIdSchema,
131
- PlanListQuerySchema: () => PlanListQuerySchema,
132
- PlanResponseSchema: () => PlanResponseSchema,
133
- PlanStatusSchema: () => PlanStatusSchema,
134
- PlanTypeSchema: () => PlanTypeSchema,
263
+ PermissionKindSchema: () => PermissionKindSchema,
264
+ PermissionPlatformSchema: () => PermissionPlatformSchema,
265
+ PermissionStatusSchema: () => PermissionStatusSchema,
135
266
  PositiveIntIdSchema: () => PositiveIntIdSchema,
136
267
  ProfileDetailResponseSchema: () => ProfileDetailResponseSchema,
137
- ReadyStateChangedSchema: () => ReadyStateChangedSchema,
138
- ReadyStateRequestSchema: () => ReadyStateRequestSchema,
139
- RecruitIdSchema: () => RecruitIdSchema,
140
- RecruitListQuerySchema: () => RecruitListQuerySchema,
141
- RecruitListResponseSchema: () => RecruitListResponseSchema,
142
- RecruitRoomStageSchema: () => RecruitRoomStageSchema,
143
- RecruitSortBySchema: () => RecruitSortBySchema,
144
- 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,
145
278
  RedeemReferralRequestSchema: () => RedeemReferralRequestSchema,
146
279
  ReferralCodeSchema: () => ReferralCodeSchema,
147
280
  ReferralCreateResponseSchema: () => ReferralCreateResponseSchema,
148
281
  ReferralItemResponseSchema: () => ReferralItemResponseSchema,
282
+ RegisterMealPlanLiveActivitySessionRequestSchema: () => RegisterMealPlanLiveActivitySessionRequestSchema,
283
+ RegisterPushTokenRequestSchema: () => RegisterPushTokenRequestSchema,
284
+ ReopenMealPlanDecisionTaskRequestSchema: () => ReopenMealPlanDecisionTaskRequestSchema,
285
+ ResolvedFoodCodeSchema: () => ResolvedFoodCodeSchema,
149
286
  RestaurantIdSchema: () => RestaurantIdSchema,
150
- RestaurantPickUpdateResponseSchema: () => RestaurantPickUpdateResponseSchema,
151
287
  RestaurantSchema: () => RestaurantSchema,
152
- RoomAccessResponseSchema: () => RoomAccessResponseSchema,
153
- RoomAssignedResponseSchema: () => RoomAssignedResponseSchema,
154
- RoomIdSchema: () => RoomIdSchema,
155
- RoomInitialStateSchema: () => RoomInitialStateSchema,
156
- RoomSocketClientEventSchemas: () => RoomSocketClientEventSchemas,
157
- RoomSocketErrorSchema: () => RoomSocketErrorSchema,
158
- RoomSocketServerEventSchemas: () => RoomSocketServerEventSchemas,
159
- RoomTypeSchema: () => RoomTypeSchema,
160
- SendInvitationResponseSchema: () => SendInvitationResponseSchema,
288
+ RevokePushTokenRequestSchema: () => RevokePushTokenRequestSchema,
289
+ SendMealPlanChatMessageRequestSchema: () => SendMealPlanChatMessageRequestSchema,
290
+ SendMealPlanInviteResponseSchema: () => SendMealPlanInviteResponseSchema,
161
291
  SignupRequestSchema: () => SignupRequestSchema,
162
292
  SignupResponseSchema: () => SignupResponseSchema,
163
293
  SortDirectionSchema: () => SortDirectionSchema,
294
+ StartMealPlanFromGroupRequestSchema: () => StartMealPlanFromGroupRequestSchema,
164
295
  SubscriptionIdSchema: () => SubscriptionIdSchema,
165
296
  TimeHHmmStringSchema: () => TimeHHmmStringSchema,
166
- TimePicksUpdateResponseSchema: () => TimePicksUpdateResponseSchema,
167
297
  TokenResponseSchema: () => TokenResponseSchema,
298
+ UpdateMealGroupMemberRoleRequestSchema: () => UpdateMealGroupMemberRoleRequestSchema,
299
+ UpdateMealPlanContextRequestSchema: () => UpdateMealPlanContextRequestSchema,
168
300
  UpdateMealStatusRequestSchema: () => UpdateMealStatusRequestSchema,
301
+ UpdateMemberLocationConsentRequestSchema: () => UpdateMemberLocationConsentRequestSchema,
302
+ UpdateMemberLocationRequestSchema: () => UpdateMemberLocationRequestSchema,
169
303
  UpdatePreferenceRequestSchema: () => UpdatePreferenceRequestSchema,
170
304
  UpdateProfileRequestSchema: () => UpdateProfileRequestSchema,
171
305
  UploadArticleImageRequestSchema: () => UploadArticleImageRequestSchema,
@@ -173,22 +307,32 @@ __export(domain_exports, {
173
307
  UploadProfileImageRequestSchema: () => UploadProfileImageRequestSchema,
174
308
  UploadProfileImageResponseSchema: () => UploadProfileImageResponseSchema,
175
309
  UserIdSchema: () => UserIdSchema,
176
- VoteLocationRequestSchema: () => VoteLocationRequestSchema,
177
310
  apiContract: () => apiContract,
311
+ compareMealPlanNotificationsByPriority: () => compareMealPlanNotificationsByPriority,
178
312
  endpoint: () => endpoint,
313
+ getMealPlanLiveActivityBehavior: () => getMealPlanLiveActivityBehavior,
314
+ getMealPlanNotificationPriority: () => getMealPlanNotificationPriority,
315
+ getMealPlanNotificationPriorityPolicy: () => getMealPlanNotificationPriorityPolicy,
179
316
  makeApiResponseSchema: () => makeApiResponseSchema,
180
317
  makeApiSuccessSchema: () => makeApiSuccessSchema,
318
+ shouldShowForegroundToast: () => shouldShowForegroundToast,
181
319
  toArticleId: () => toArticleId,
182
320
  toCommentId: () => toCommentId,
183
321
  toCouponId: () => toCouponId,
184
322
  toFriendRequestId: () => toFriendRequestId,
185
- 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,
186
333
  toMemberId: () => toMemberId,
187
- toPlanId: () => toPlanId,
188
- toRecruitId: () => toRecruitId,
189
334
  toReferralCode: () => toReferralCode,
190
335
  toRestaurantId: () => toRestaurantId,
191
- toRoomId: () => toRoomId,
192
336
  toSubscriptionId: () => toSubscriptionId
193
337
  });
194
338
 
@@ -199,7 +343,10 @@ var import_zod7 = require("zod");
199
343
  var import_zod = require("zod");
200
344
  var isoDateRegex = /^\d{4}-\d{2}-\d{2}$/;
201
345
  var ISODateStringSchema = import_zod.z.string().regex(isoDateRegex, "Expected ISO date string in YYYY-MM-DD format");
202
- 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
+ });
203
350
  var TimeHHmmStringSchema = import_zod.z.string().regex(/^\d{2}:\d{2}$/, "Expected time string in HH:mm format");
204
351
 
205
352
  // src/domain/common/schema/id.schema.ts
@@ -210,10 +357,16 @@ var MemberIdSchema = PositiveIntIdSchema.brand();
210
357
  var UserIdSchema = MemberIdSchema;
211
358
  var ArticleIdSchema = PositiveIntIdSchema.brand();
212
359
  var CommentIdSchema = PositiveIntIdSchema.brand();
213
- var RecruitIdSchema = PositiveIntIdSchema.brand();
214
- var PlanIdSchema = PositiveIntIdSchema.brand();
215
- var InvitationIdSchema = PositiveIntIdSchema.brand();
216
- 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();
217
370
  var RestaurantIdSchema = NonEmptyStringIdSchema.brand();
218
371
  var CouponIdSchema = PositiveIntIdSchema.brand();
219
372
  var SubscriptionIdSchema = PositiveIntIdSchema.brand();
@@ -240,11 +393,14 @@ var PageMetaSchema = import_zod3.z.object({
240
393
  hasNext: import_zod3.z.boolean(),
241
394
  hasPrevious: import_zod3.z.boolean()
242
395
  });
243
- var PageResponseSchema = (item) => import_zod3.z.object({
396
+ var PageResponseSchema = /* @__PURE__ */ __name((item) => import_zod3.z.object({
244
397
  items: import_zod3.z.array(item),
245
398
  meta: PageMetaSchema
246
- });
247
- var SortDirectionSchema = import_zod3.z.enum(["asc", "desc"]);
399
+ }), "PageResponseSchema");
400
+ var SortDirectionSchema = import_zod3.z.enum([
401
+ "asc",
402
+ "desc"
403
+ ]);
248
404
 
249
405
  // src/domain/member/member.schema.ts
250
406
  var import_zod5 = require("zod");
@@ -261,7 +417,66 @@ var UploadPresignImageRequestSchema = import_zod4.default.object({
261
417
  });
262
418
 
263
419
  // src/domain/member/member.schema.ts
264
- 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
+ });
265
480
  var MemberCoreSchema = import_zod5.z.object({
266
481
  memberId: MemberIdSchema,
267
482
  username: import_zod5.z.string().min(1).max(50),
@@ -273,6 +488,11 @@ var MemberResponseSchema = MemberCoreSchema.pick({
273
488
  memberId: true,
274
489
  username: true,
275
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()
276
496
  });
277
497
  var MemberSearchQuerySchema = import_zod5.z.object({
278
498
  email: import_zod5.z.string().email().optional(),
@@ -283,7 +503,11 @@ var MemberDetailSchema = MemberCoreSchema.extend({
283
503
  bio: import_zod5.z.string().nullable(),
284
504
  friendConunt: import_zod5.z.number().int().min(0).default(0),
285
505
  completedPlans: import_zod5.z.number().int().min(0).default(0),
286
- 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)
287
511
  });
288
512
  var FoodPreferenceItemSchema = FoodSchema.extend({});
289
513
  var MemberFoodPreferenceSchema = import_zod5.z.object({
@@ -298,9 +522,16 @@ var UpdateProfileRequestSchema = import_zod5.z.object({
298
522
  bio: import_zod5.z.string().max(500).nullable()
299
523
  });
300
524
  var UpdatePreferenceRequestSchema = MemberFoodPreferenceSchema;
301
- var CreateProfileRequestSchema = UpdateProfileRequestSchema.merge(
302
- UpdatePreferenceRequestSchema
303
- );
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;
304
535
 
305
536
  // src/domain/restaurant/restaurant.schema.ts
306
537
  var import_zod6 = require("zod");
@@ -332,7 +563,11 @@ var KakaoPlaceRawSchema = import_zod6.z.object({
332
563
  });
333
564
 
334
565
  // src/domain/article/article.schema.ts
335
- var ArticleSortBySchema = import_zod7.z.enum(["createdAt", "likeCount", "commentCount"]);
566
+ var ArticleSortBySchema = import_zod7.z.enum([
567
+ "createdAt",
568
+ "likeCount",
569
+ "commentCount"
570
+ ]);
336
571
  var ArticleListQuerySchema = PageQuerySchema.extend({
337
572
  sortBy: ArticleSortBySchema.optional().default("createdAt"),
338
573
  direction: SortDirectionSchema.optional().default("desc")
@@ -348,7 +583,8 @@ var CreateArticleRequestSchema = import_zod7.z.object({
348
583
  mealDate: ISODateStringSchema,
349
584
  restaurant: RestaurantSchema,
350
585
  taggedMemberIds: import_zod7.z.array(MemberIdSchema).default([]),
351
- foodAnalysis: FoodAnalysisResultSchema.optional()
586
+ foodAnalysis: FoodAnalysisResultSchema.optional(),
587
+ mealPlanId: MealPlanIdSchema.optional()
352
588
  });
353
589
  var CreateCommentRequestSchema = import_zod7.z.object({
354
590
  content: import_zod7.z.string().min(1).max(500),
@@ -368,6 +604,7 @@ var ArticleCoreSchema = import_zod7.z.object({
368
604
  imageUrl: import_zod7.z.string().url(),
369
605
  mealDate: ISODateStringSchema,
370
606
  restaurant: RestaurantSchema,
607
+ mealPlanId: MealPlanIdSchema.nullable(),
371
608
  createdAt: ISODateTimeStringSchema,
372
609
  updatedAt: ISODateTimeStringSchema,
373
610
  expiresAt: ISODateTimeStringSchema,
@@ -407,65 +644,145 @@ var SignupResponseSchema = import_zod8.z.object({
407
644
  });
408
645
 
409
646
  // src/domain/common/contracts/api.ts
410
- var import_zod20 = require("zod");
647
+ var import_zod28 = require("zod");
411
648
 
412
- // src/domain/promotion/challenge.schema.ts
649
+ // src/domain/common/schema/cache-invalidation.schema.ts
413
650
  var import_zod9 = require("zod");
414
- var RewardTypeSchema = import_zod9.z.enum(["WEEK", "MONTH"]);
415
- var WeekProgressSchema = import_zod9.z.object({
416
- days: import_zod9.z.array(import_zod9.z.boolean()),
417
- completed: import_zod9.z.number().int().min(0),
418
- goal: import_zod9.z.number().int().positive()
419
- });
420
- var MonthProgressSchema = import_zod9.z.object({
421
- count: import_zod9.z.number().int().min(0),
422
- goal: import_zod9.z.number().int().positive()
423
- });
424
- var ChallengeStatusResponseSchema = import_zod9.z.object({
425
- week: WeekProgressSchema,
426
- month: MonthProgressSchema,
427
- weekRewardAvailable: import_zod9.z.boolean(),
428
- monthRewardAvailable: import_zod9.z.boolean()
429
- });
430
- var ClaimChallengeRewardRequestSchema = import_zod9.z.object({
431
- type: RewardTypeSchema
432
- });
433
- var ClaimChallengeRewardResponseSchema = import_zod9.z.object({
434
- rewardType: RewardTypeSchema,
435
- 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()
436
701
  });
437
702
 
438
703
  // src/domain/common/schema/envelope.schema.ts
439
704
  var import_zod10 = require("zod");
440
705
  var NoContentSchema = import_zod10.z.null();
441
- var ApiSuccessSchema = (data) => import_zod10.z.object({
706
+ var ApiSuccessSchema = /* @__PURE__ */ __name((data) => import_zod10.z.object({
442
707
  success: import_zod10.z.literal(true),
443
708
  code: import_zod10.z.number().int(),
444
709
  message: import_zod10.z.string(),
445
710
  data
446
- });
711
+ }), "ApiSuccessSchema");
447
712
  var ApiFailureSchema = import_zod10.z.object({
448
713
  success: import_zod10.z.literal(false),
449
714
  status: import_zod10.z.number().int(),
450
715
  code: import_zod10.z.string(),
451
716
  message: import_zod10.z.string()
452
717
  });
453
- 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");
454
722
  var CreatedEntityIdResponseSchema = import_zod10.z.discriminatedUnion("entity", [
455
- import_zod10.z.object({ entity: import_zod10.z.literal("article"), id: ArticleIdSchema }),
456
- import_zod10.z.object({ entity: import_zod10.z.literal("comment"), id: CommentIdSchema }),
457
- import_zod10.z.object({ entity: import_zod10.z.literal("recruit"), id: RecruitIdSchema }),
458
- import_zod10.z.object({ entity: import_zod10.z.literal("invitation"), id: InvitationIdSchema }),
459
- import_zod10.z.object({ entity: import_zod10.z.literal("subscription"), id: SubscriptionIdSchema }),
460
- import_zod10.z.object({ entity: import_zod10.z.literal("coupon"), id: CouponIdSchema }),
461
- 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
+ })
462
767
  ]);
463
768
 
464
769
  // src/domain/friend/friend.schema.ts
465
770
  var import_zod11 = require("zod");
466
- 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
+ });
467
783
  var FriendListItemResponseSchema = MemberCoreSchema.extend({
468
- friendSince: ISODateTimeStringSchema
784
+ friendSince: ISODateTimeStringSchema,
785
+ mealAvailability: FriendMealAvailabilitySchema.optional()
469
786
  });
470
787
  var FriendBlockItemResponseSchema = MemberCoreSchema.extend({
471
788
  blockedAt: ISODateTimeStringSchema
@@ -481,452 +798,2206 @@ var FriendRequestItemResponseSchema = import_zod11.z.object({
481
798
  var FriendSearchQuerySchema = import_zod11.z.string().min(1).max(50);
482
799
  var FriendSearchResponseSchema = import_zod11.z.array(MemberCoreSchema);
483
800
 
484
- // src/domain/invitation/invitation.schema.ts
485
- var import_zod12 = require("zod");
486
- var CreateInvitationRequestSchema = import_zod12.z.object({
487
- inviteeId: MemberIdSchema,
488
- message: import_zod12.z.string().min(1).max(500)
489
- });
490
- var InvitationListItemResponseSchema = import_zod12.z.object({
491
- invitationId: InvitationIdSchema,
492
- inviterName: import_zod12.z.string(),
493
- inviterProfileImageUrl: import_zod12.z.string().url().nullable().optional()
494
- });
495
- var SendInvitationResponseSchema = import_zod12.z.object({
496
- invitationId: InvitationIdSchema
497
- });
498
- var AcceptInvitationResponseSchema = import_zod12.z.object({
499
- invitationId: InvitationIdSchema,
500
- room: import_zod12.z.object({
501
- type: import_zod12.z.literal("invitation"),
502
- roomId: RoomIdSchema
503
- })
504
- });
505
-
506
801
  // src/domain/meal/meal.schema.ts
507
- var import_zod13 = require("zod");
508
- var MealStatusResponseSchema = import_zod13.z.object({
509
- hungry: import_zod13.z.boolean(),
510
- 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(),
511
806
  updatedAt: ISODateStringSchema,
512
- secondsToAutoOff: import_zod13.z.number().int().min(0)
807
+ secondsToAutoOff: import_zod12.z.number().int().min(0)
513
808
  });
514
- var MealStatusActionSchema = import_zod13.z.enum(["ARTICLE_UPLOAD", "SET_MANNUALY"]);
515
- 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({
516
814
  action: MealStatusActionSchema.optional().default("SET_MANNUALY")
517
815
  });
518
- var MealStatusSchema = import_zod13.z.enum(["ALL", "HUNGRY", "NOT_HUNGRY"]);
519
- 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({
520
822
  status: MealStatusSchema.optional().default("ALL")
521
823
  });
522
824
  var FriendMealItemResponseSchema = MemberCoreSchema.extend({
523
- hungry: import_zod13.z.boolean(),
524
- label: import_zod13.z.string(),
825
+ hungry: import_zod12.z.boolean(),
826
+ label: import_zod12.z.string(),
525
827
  updatedAt: ISODateStringSchema
526
828
  });
527
829
 
528
- // src/domain/plan/plan.schema.ts
529
- var import_zod15 = require("zod");
830
+ // src/domain/meal-plan/meal-plan.schema.ts
831
+ var import_zod18 = require("zod");
530
832
 
531
- // src/domain/room/schema/room.schema.ts
532
- var import_zod14 = require("zod");
533
- var MenuCodeSchema = FoodCodeSchema;
534
- var LocationIdSchema = import_zod14.z.string().min(1).brand();
535
- var MenuSchema = FoodSchema.extend({});
536
- var LocationCandidateSchema = import_zod14.z.object({
537
- locationId: LocationIdSchema,
538
- placeName: import_zod14.z.string(),
539
- lat: import_zod14.z.number(),
540
- lng: import_zod14.z.number(),
541
- address: import_zod14.z.string()
542
- });
543
- var ParticipantSchema = MemberCoreSchema.extend({
544
- ready: import_zod14.z.boolean()
545
- });
546
- var RecruitRoomStageSchema = import_zod14.z.enum([
547
- "waiting",
548
- "location",
549
- "location-vote",
550
- "exclude-menu",
551
- "menu",
552
- "restaurant",
553
- "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"
977
+ ]);
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"
554
1001
  ]);
555
- var RoomTypeSchema = import_zod14.z.enum(["recruit", "invitation"]);
556
- var InvitationRoomStageSchema = import_zod14.z.enum([
557
- "waiting",
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([
558
1010
  "date",
559
1011
  "time",
560
- "location",
561
- "location-vote",
562
- "exclude-menu",
1012
+ "meetingAt",
1013
+ "area",
563
1014
  "menu",
564
- "restaurant",
565
- "finish"
566
- ]);
567
- var ReadyStateRequestSchema = import_zod14.z.object({
568
- isReady: import_zod14.z.boolean()
569
- });
570
- var ChatMessageRequestSchema = import_zod14.z.object({
571
- message: import_zod14.z.string().min(1).max(500)
572
- });
573
- var AddLocationCandidateRequestSchema = LocationCandidateSchema;
574
- var VoteLocationRequestSchema = import_zod14.z.object({ locationId: LocationIdSchema });
575
- var ExcludeMenuRequestSchema = import_zod14.z.object({ menu: MenuSchema });
576
- var PickMenuRequestSchema = import_zod14.z.object({ menuCode: MenuCodeSchema });
577
- var PickRestaurantRequestSchema = import_zod14.z.object({ restaurantId: RestaurantIdSchema });
578
- var PickTimesRequestSchema = import_zod14.z.object({ times: import_zod14.z.array(import_zod14.z.string().min(1)).min(1) });
579
- var PickDateRequestSchema = import_zod14.z.object({ dates: import_zod14.z.array(ISODateStringSchema).min(1) });
580
- var RoomAssignedResponseSchema = import_zod14.z.object({
581
- roomId: RoomIdSchema
582
- });
583
- var RoomAccessResponseSchema = import_zod14.z.object({
584
- roomId: RoomIdSchema,
585
- roomType: RoomTypeSchema,
586
- stage: import_zod14.z.union([RecruitRoomStageSchema, InvitationRoomStageSchema]),
587
- canJoin: import_zod14.z.boolean()
588
- });
589
- var MatchingNotificationKindSchema = import_zod14.z.enum(["recruit", "invitation"]);
590
- var MatchingNotificationSchema = import_zod14.z.object({
591
- notificationId: import_zod14.z.string().min(1),
592
- kind: MatchingNotificationKindSchema,
593
- roomId: RoomIdSchema,
594
- roomType: RoomTypeSchema,
595
- title: import_zod14.z.string().min(1),
596
- 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),
597
1053
  createdAt: ISODateTimeStringSchema,
598
- 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
599
1063
  });
600
- var RoomSocketErrorSchema = import_zod14.z.object({
601
- code: import_zod14.z.string(),
602
- 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
603
1073
  });
604
- var ChatMessageResponseSchema = import_zod14.z.object({
605
- messageId: import_zod14.z.string(),
606
- user: MemberCoreSchema,
607
- message: import_zod14.z.string(),
608
- 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()
609
1082
  });
610
- var ReadyStateChangedSchema = import_zod14.z.object({
611
- readyCount: import_zod14.z.number().int().min(0),
612
- participantCount: import_zod14.z.number().int().min(0)
613
- });
614
- var FinalStateSchema = import_zod14.z.object({
615
- location: LocationCandidateSchema.optional(),
616
- excludeMenu: import_zod14.z.array(MenuSchema).optional(),
617
- menu: MenuSchema.optional(),
618
- restaurant: RestaurantSchema.optional(),
619
- time: import_zod14.z.string().optional(),
620
- date: ISODateStringSchema.optional()
621
- });
622
- var RoomInitialStateSchema = import_zod14.z.object({
623
- participants: import_zod14.z.array(ParticipantSchema),
624
- chat: import_zod14.z.array(ChatMessageResponseSchema),
625
- final: FinalStateSchema
626
- });
627
- var TimePicksUpdateResponseSchema = import_zod14.z.array(
628
- import_zod14.z.object({ memberId: MemberIdSchema, times: import_zod14.z.array(import_zod14.z.string()) })
629
- );
630
- var DatePicksUpdateResponseSchema = import_zod14.z.array(
631
- import_zod14.z.object({ memberId: MemberIdSchema, dates: import_zod14.z.array(ISODateStringSchema) })
632
- );
633
- var LocationCandidateAddUpdateResponseSchema = import_zod14.z.array(
634
- LocationCandidateSchema.extend({ authorMemberId: MemberIdSchema })
635
- );
636
- var LocationCandidateVoteUpdateResponseSchema = import_zod14.z.array(
637
- import_zod14.z.object({ locationId: LocationIdSchema, votes: import_zod14.z.array(MemberIdSchema) })
638
- );
639
- var ExcludeMenuUpdateResponseSchema = import_zod14.z.array(
640
- import_zod14.z.object({ memberId: MemberIdSchema, exclusions: import_zod14.z.array(MenuSchema) })
641
- );
642
- var MenuPickUpdateResponseSchema = import_zod14.z.array(
643
- import_zod14.z.object({ menuCode: MenuCodeSchema, selectedMembers: import_zod14.z.array(MemberIdSchema) })
644
- );
645
- var RestaurantPickUpdateResponseSchema = import_zod14.z.array(
646
- import_zod14.z.object({ restaurantId: RestaurantIdSchema, selectedMembers: import_zod14.z.array(MemberIdSchema) })
647
- );
648
- var WaitingPhaseDataSchema = import_zod14.z.object({
649
- locationInitial: import_zod14.z.string().optional(),
650
- meetingAt: ISODateTimeStringSchema.optional()
651
- });
652
- var LocationVotePhaseDataSchema = import_zod14.z.object({
653
- locations: LocationCandidateAddUpdateResponseSchema,
654
- votes: LocationCandidateVoteUpdateResponseSchema
655
- });
656
- var ExcludeMenuPhaseDataSchema = import_zod14.z.object({
657
- recentMenus: import_zod14.z.array(import_zod14.z.object({ userId: import_zod14.z.string(), menuList: import_zod14.z.array(MenuSchema) })),
658
- excludedMenuList: ExcludeMenuUpdateResponseSchema
659
- });
660
- var MenuPhaseDataSchema = import_zod14.z.object({
661
- initialMenus: import_zod14.z.array(MenuSchema),
662
- menuPick: MenuPickUpdateResponseSchema
663
- });
664
- var RestaurantPhaseDataSchema = import_zod14.z.object({
665
- initialRestaurants: import_zod14.z.array(RestaurantSchema),
666
- restaurantUserList: RestaurantPickUpdateResponseSchema
667
- });
668
- var PhaseDataBroadcastSchema = import_zod14.z.discriminatedUnion("phase", [
669
- import_zod14.z.object({ phase: import_zod14.z.literal("waiting"), data: WaitingPhaseDataSchema }),
670
- import_zod14.z.object({ phase: import_zod14.z.literal("date"), data: DatePicksUpdateResponseSchema }),
671
- import_zod14.z.object({ phase: import_zod14.z.literal("time"), data: TimePicksUpdateResponseSchema }),
672
- import_zod14.z.object({ phase: import_zod14.z.literal("location"), data: WaitingPhaseDataSchema }),
673
- import_zod14.z.object({ phase: import_zod14.z.literal("location-vote"), data: LocationVotePhaseDataSchema }),
674
- import_zod14.z.object({ phase: import_zod14.z.literal("exclude-menu"), data: ExcludeMenuPhaseDataSchema }),
675
- import_zod14.z.object({ phase: import_zod14.z.literal("menu"), data: MenuPhaseDataSchema }),
676
- import_zod14.z.object({ phase: import_zod14.z.literal("restaurant"), data: RestaurantPhaseDataSchema }),
677
- import_zod14.z.object({ phase: import_zod14.z.literal("finish"), data: WaitingPhaseDataSchema })
678
- ]);
679
- var RoomSocketClientEventSchemas = {
680
- "ready-state": ReadyStateRequestSchema,
681
- "chat-message": ChatMessageRequestSchema,
682
- "add-location-candidate": AddLocationCandidateRequestSchema,
683
- "vote-location": VoteLocationRequestSchema,
684
- "exclude-menu": ExcludeMenuRequestSchema,
685
- "pick-menu": PickMenuRequestSchema,
686
- "pick-restaurant": PickRestaurantRequestSchema,
687
- "pick-times": PickTimesRequestSchema,
688
- "pick-date": PickDateRequestSchema
689
- };
690
- var RoomSocketServerEventSchemas = {
691
- "room-assigned": RoomAssignedResponseSchema,
692
- "stage-changed": PhaseDataBroadcastSchema,
693
- "chat-message": ChatMessageResponseSchema,
694
- "room-error": RoomSocketErrorSchema,
695
- "ready-state-changed": ReadyStateChangedSchema,
696
- "join-room": RoomInitialStateSchema,
697
- "time-updated": TimePicksUpdateResponseSchema,
698
- "date-updated": DatePicksUpdateResponseSchema,
699
- "location-add-updated": LocationCandidateAddUpdateResponseSchema,
700
- "location-vote-updated": LocationCandidateVoteUpdateResponseSchema,
701
- "exclude-menu-updated": ExcludeMenuUpdateResponseSchema,
702
- "menu-pick-updated": MenuPickUpdateResponseSchema,
703
- "restaurant-pick-updated": RestaurantPickUpdateResponseSchema,
704
- "final-state-response": FinalStateSchema
705
- };
706
1083
 
707
- // src/domain/plan/plan.schema.ts
708
- var PlanStatusSchema = import_zod15.z.enum(["PLANNING", "COMPLETED"]);
709
- var PlanTypeSchema = import_zod15.z.enum(["RECRUIT", "INVITATION"]);
710
- var PlanResponseSchema = import_zod15.z.object({
711
- planId: PlanIdSchema,
712
- meetingAt: ISODateTimeStringSchema,
713
- location: LocationCandidateSchema.nullable(),
714
- restaurant: RestaurantSchema.nullable(),
715
- author: MemberCoreSchema,
716
- participants: import_zod15.z.array(MemberCoreSchema),
717
- status: PlanStatusSchema,
718
- 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),
719
1148
  createdAt: ISODateTimeStringSchema,
720
- 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
721
1154
  });
722
- var PlanListQuerySchema = import_zod15.z.object({});
723
1155
 
724
- // src/domain/recruit/recruit.schema.ts
1156
+ // src/domain/meal-plan/meal-plan-nearby-friend.schema.ts
725
1157
  var import_zod16 = require("zod");
726
- var RecruitStatusSchema = import_zod16.z.enum(["OPEN", "CLOSED", "EXPIRED"]);
727
- var RecruitParticipantSchema = MemberCoreSchema.extend({});
728
- var RecruitSortBySchema = import_zod16.z.enum(["createdAt", "deadline", "participantCount"]);
729
- var RecruitListQuerySchema = PageQuerySchema.extend({
730
- sortBy: RecruitSortBySchema.default("createdAt"),
731
- direction: SortDirectionSchema.default("desc")
732
- });
733
- var RecruitResponseSchema = import_zod16.z.object({
734
- targetCount: import_zod16.z.number().int().min(2),
735
- meetingAt: ISODateTimeStringSchema,
736
- 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,
737
1249
  message: import_zod16.z.string().max(500),
738
- recruitId: RecruitIdSchema,
739
- 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(),
740
1400
  createdAt: ISODateTimeStringSchema,
741
- expiredAt: ISODateTimeStringSchema,
742
- updatedAt: ISODateTimeStringSchema,
743
- author: MemberCoreSchema,
744
- participants: import_zod16.z.array(RecruitParticipantSchema)
1401
+ updatedAt: ISODateTimeStringSchema
1402
+ });
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
1425
+ });
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()
1577
+ });
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
745
1643
  });
746
- var RecruitListResponseSchema = PageResponseSchema(RecruitResponseSchema);
747
- var CreateRecruitRequestSchema = import_zod16.z.object({
748
- targetCount: import_zod16.z.number().int().min(2),
749
- meetingAt: ISODateTimeStringSchema,
750
- location: import_zod16.z.string().min(1),
751
- message: import_zod16.z.string().max(500)
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
+ })
752
1677
  });
753
- var CreateRecruitResponseSchema = import_zod16.z.object({
754
- recruitId: RecruitIdSchema
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
+ })
755
1811
  });
756
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
+
757
1854
  // src/domain/promotion/referral.schema.ts
758
- var import_zod17 = require("zod");
759
- var ReferralCreateResponseSchema = import_zod17.z.object({
1855
+ var import_zod22 = require("zod");
1856
+ var ReferralCreateResponseSchema = import_zod22.z.object({
760
1857
  code: ReferralCodeSchema,
761
- link: import_zod17.z.string().url(),
1858
+ link: import_zod22.z.string().url(),
762
1859
  expiresAt: ISODateTimeStringSchema
763
1860
  });
764
- var ReferralItemResponseSchema = import_zod17.z.object({
1861
+ var ReferralItemResponseSchema = import_zod22.z.object({
765
1862
  code: ReferralCodeSchema,
766
1863
  createdAt: ISODateTimeStringSchema,
767
1864
  expiresAt: ISODateTimeStringSchema,
768
- used: import_zod17.z.boolean(),
1865
+ used: import_zod22.z.boolean(),
769
1866
  usedByMemberId: MemberIdSchema.nullable(),
770
- usedByUsername: import_zod17.z.string().nullable()
1867
+ usedByUsername: import_zod22.z.string().nullable()
771
1868
  });
772
- var RedeemReferralRequestSchema = import_zod17.z.object({
1869
+ var RedeemReferralRequestSchema = import_zod22.z.object({
773
1870
  code: ReferralCodeSchema
774
1871
  });
775
1872
 
776
1873
  // src/domain/promotion/coupon.schema.ts
777
- var import_zod18 = require("zod");
778
- var CouponTypeSchema = import_zod18.z.enum(["DISCOUNT", "SERVICE"]);
779
- var CouponStatusSchema = import_zod18.z.enum(["UNUSED", "USED"]);
780
- 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({
781
1884
  couponId: CouponIdSchema,
782
- title: import_zod18.z.string(),
783
- shopName: import_zod18.z.string(),
1885
+ title: import_zod23.z.string(),
1886
+ shopName: import_zod23.z.string(),
784
1887
  type: CouponTypeSchema,
785
- condition: import_zod18.z.string(),
1888
+ condition: import_zod23.z.string(),
786
1889
  expiresAt: ISODateStringSchema,
787
- used: import_zod18.z.boolean(),
788
- 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)
789
2084
  });
790
2085
 
791
2086
  // src/domain/common/contracts/endpoint.ts
792
- var import_zod19 = require("zod");
793
- var NoBodySchema = import_zod19.z.undefined();
794
- var NoQuerySchema = import_zod19.z.undefined();
795
- var NoParamsSchema = import_zod19.z.undefined();
796
- 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) => ({
797
2092
  method: contract.method,
798
2093
  path: contract.path,
799
2094
  pathParams: contract.pathParams ?? NoParamsSchema,
800
2095
  query: contract.query ?? NoQuerySchema,
801
2096
  body: contract.body ?? NoBodySchema,
802
2097
  response: contract.response
803
- });
2098
+ }), "endpoint");
804
2099
 
805
2100
  // src/domain/common/contracts/api.ts
806
- var memberIdParam = import_zod20.z.object({ memberId: MemberIdSchema });
807
- var articleIdParam = import_zod20.z.object({ articleId: ArticleIdSchema });
808
- var commentIdParam = import_zod20.z.object({ commentId: CommentIdSchema });
809
- var recruitIdParam = import_zod20.z.object({ recruitId: RecruitIdSchema });
810
- var roomIdParam = import_zod20.z.object({ roomId: RoomIdSchema });
811
- var invitationIdParam = import_zod20.z.object({ invitationId: InvitationIdSchema });
812
- var notificationIdParam = import_zod20.z.object({ notificationId: import_zod20.z.string().min(1) });
813
- var planIdParam = import_zod20.z.object({ planId: PlanIdSchema });
814
- var couponIdParam = import_zod20.z.object({ couponId: CouponIdSchema });
815
- 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
+ });
816
2155
  var apiContract = {
817
2156
  auth: {
818
- signup: endpoint({ method: "POST", path: "/auth/signup", body: SignupRequestSchema, response: SignupResponseSchema }),
819
- login: endpoint({ method: "POST", path: "/auth/login", body: LoginRequestSchema, response: TokenResponseSchema }),
820
- refresh: endpoint({ method: "POST", path: "/auth/refresh", response: TokenResponseSchema }),
821
- logout: endpoint({ method: "POST", path: "/auth/logout", response: NoContentSchema })
822
- // 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
+ })
823
2179
  },
824
2180
  members: {
825
- me: endpoint({ method: "GET", path: "/members/me", response: MemberResponseSchema }),
826
- myProfile: endpoint({ method: "GET", path: "/members/me/profile", response: ProfileDetailResponseSchema }),
827
- search: endpoint({ method: "GET", path: "/members/search", query: MemberSearchQuerySchema, response: MemberSerachResponseSchema }),
828
- memberProfile: endpoint({ method: "GET", path: "/members/:memberId/profile", pathParams: memberIdParam, response: ProfileDetailResponseSchema }),
829
- presignProfileImage: endpoint({ method: "POST", path: "/uploads/presign-profile", body: UploadProfileImageRequestSchema, response: UploadProfileImageResponseSchema }),
830
- createProfile: endpoint({ method: "POST", path: "/members/onboarding", body: CreateProfileRequestSchema, response: NoContentSchema }),
831
- 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
+ })
832
2244
  },
833
2245
  preferences: {
834
- my: endpoint({ method: "GET", path: "/preferences/me", response: MemberFoodPreferenceSchema }),
835
- 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
+ })
836
2257
  },
837
2258
  mealStatus: {
838
- my: endpoint({ method: "GET", path: "/members/me/meal-status", response: MealStatusResponseSchema }),
839
- updateMealStatus: endpoint({ method: "PATCH", path: "/members/me/meal-status", body: UpdateMealStatusRequestSchema, response: NoContentSchema }),
840
- 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
+ })
841
2276
  },
842
2277
  articles: {
843
- list: endpoint({ method: "GET", path: "/articles/home", query: ArticleListQuerySchema, response: PageArticleSummaryResponseSchema }),
844
- byMember: endpoint({ method: "GET", path: "/articles/by-author/:memberId", pathParams: memberIdParam, query: ArticleListQuerySchema, response: PageArticleSummaryResponseSchema }),
845
- my: endpoint({ method: "GET", path: "/articles/my", response: PageArticleSummaryResponseSchema }),
846
- detail: endpoint({ method: "GET", path: "/articles/:articleId", pathParams: articleIdParam, response: ArticleDetailResponseSchema }),
847
- create: endpoint({ method: "POST", path: "/articles", body: CreateArticleRequestSchema, response: CreatedEntityIdResponseSchema }),
848
- like: endpoint({ method: "POST", path: "/articles/:articleId/like", pathParams: articleIdParam, response: ArticleLikeResponseSchema }),
849
- createComment: endpoint({ method: "POST", path: "/articles/:articleId/comments", pathParams: articleIdParam, body: CreateCommentRequestSchema, response: CreatedEntityIdResponseSchema }),
850
- presignArticleImage: endpoint({ method: "POST", path: "/uploads/presign-article", body: UploadArticleImageRequestSchema, response: UploadArticleImageResponseSchema }),
851
- delete: endpoint({ method: "DELETE", path: "/articles/:articleId", pathParams: articleIdParam, response: NoContentSchema }),
852
- deleteComment: endpoint({ method: "DELETE", path: "/articles/comments/:commentId", pathParams: commentIdParam, response: NoContentSchema })
853
- // TODO: 게시물 수정 기능
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
+ })
854
2339
  },
855
- recruits: {
856
- list: endpoint({ method: "GET", path: "/recruits", query: RecruitListQuerySchema, response: RecruitListResponseSchema }),
857
- create: endpoint({ method: "POST", path: "/recruits", body: CreateRecruitRequestSchema, response: CreateRecruitResponseSchema }),
858
- join: endpoint({ method: "POST", path: "/recruits/:recruitId/join", pathParams: recruitIdParam, response: NoContentSchema }),
859
- close: endpoint({ method: "POST", path: "/recruits/:recruitId/close", pathParams: recruitIdParam, 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
+ })
860
2583
  },
861
- invitations: {
862
- list: endpoint({ method: "GET", path: "/invitations", response: import_zod20.z.array(InvitationListItemResponseSchema) }),
863
- // TODO: Invitation Response 정하기 detail: endpoint({ method: "GET", path: "/invitations/:invitationId", pathParams: invitationIdParam, response: InvitationItemDetailResponseSchema }),
864
- send: endpoint({ method: "POST", path: "/invitations/send", body: CreateInvitationRequestSchema, response: SendInvitationResponseSchema }),
865
- accept: endpoint({ method: "POST", path: "/invitations/:invitationId/accept", pathParams: invitationIdParam, response: AcceptInvitationResponseSchema }),
866
- reject: endpoint({ method: "POST", path: "/invitations/:invitationId/reject", pathParams: invitationIdParam, response: NoContentSchema })
867
- },
868
- plans: {
869
- list: endpoint({ method: "GET", path: "/plans", query: PlanListQuerySchema, response: import_zod20.z.array(PlanResponseSchema) }),
870
- detail: endpoint({ method: "GET", path: "/plans/:planId", pathParams: planIdParam, response: PlanResponseSchema }),
871
- 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
+ })
872
2641
  },
873
2642
  friends: {
874
- list: endpoint({ method: "GET", path: "/friends", response: import_zod20.z.array(FriendListItemResponseSchema) }),
875
- blockList: endpoint({ method: "GET", path: "/friends/blocks", response: import_zod20.z.array(FriendBlockItemResponseSchema) }),
876
- search: endpoint({ method: "GET", path: "/friends/search", query: MemberSearchQuerySchema, response: MemberSerachResponseSchema }),
877
- incomingRequest: endpoint({ method: "GET", path: "/friends/requests/incoming", response: import_zod20.z.array(FriendRequestItemResponseSchema) }),
878
- outgoingRequest: endpoint({ method: "GET", path: "/friends/requests/outgoing", response: import_zod20.z.array(FriendRequestItemResponseSchema) }),
879
- sendRequest: endpoint({ method: "POST", path: "/friends/requests/:memberId", pathParams: memberIdParam, response: NoContentSchema }),
880
- acceptRequest: endpoint({ method: "POST", path: "/friends/requests/:requestId/accept", pathParams: friendRequestIdParam, response: NoContentSchema }),
881
- rejectRequest: endpoint({ method: "POST", path: "/friends/requests/:requestId/reject", pathParams: friendRequestIdParam, response: NoContentSchema }),
882
- block: endpoint({ method: "POST", path: "/friends/blocks/:memberId", pathParams: memberIdParam, response: NoContentSchema }),
883
- cancelRequest: endpoint({ method: "DELETE", path: "/friends/requests/:requestId", pathParams: friendRequestIdParam, response: NoContentSchema }),
884
- unblock: endpoint({ method: "DELETE", path: "/friends/blocks/:memberId", pathParams: memberIdParam, response: NoContentSchema }),
885
- 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
+ })
886
2711
  },
887
2712
  coupons: {
888
- list: endpoint({ method: "GET", path: "/coupons", response: import_zod20.z.array(CouponResponseSchema) }),
889
- 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
+ })
890
2724
  },
891
2725
  challenges: {
892
- status: endpoint({ method: "GET", path: "/challenges/status", response: ChallengeStatusResponseSchema }),
893
- 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
+ })
894
2737
  },
895
2738
  referrals: {
896
- list: endpoint({ method: "GET", path: "/referrals", response: import_zod20.z.array(ReferralItemResponseSchema) }),
897
- create: endpoint({ method: "POST", path: "/referrals", response: ReferralCreateResponseSchema }),
898
- 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
+ })
899
2755
  },
900
2756
  notifications: {
901
- list: endpoint({ method: "GET", path: "/notifications", response: import_zod20.z.array(MatchingNotificationSchema) }),
902
- markRead: endpoint({ method: "PATCH", path: "/notifications/:notificationId/read", pathParams: notificationIdParam, response: MatchingNotificationSchema }),
903
- 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
+ })
2774
+ },
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
+ })
904
2793
  },
905
- room: {
906
- access: endpoint({ method: "GET", path: "/rooms/:roomId/access", pathParams: roomIdParam, response: RoomAccessResponseSchema })
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
+ })
907
2823
  },
908
2824
  health: {
909
- 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
+ })
910
2830
  }
911
2831
  };
912
2832
 
2833
+ // src/domain/common/contracts/cache-invalidation.ts
2834
+ var CACHE_INVALIDATION_SSE_EVENT = "cache-invalidate";
2835
+
913
2836
  // src/domain/common/contracts/envelope.ts
914
2837
  var makeApiResponseSchema = ApiResponseSchema;
915
2838
  var makeApiSuccessSchema = ApiSuccessSchema;
916
2839
 
917
2840
  // src/domain/common/contracts/id.ts
918
- var toMemberId = (value) => MemberIdSchema.parse(value);
919
- var toArticleId = (value) => ArticleIdSchema.parse(value);
920
- var toRecruitId = (value) => RecruitIdSchema.parse(value);
921
- var toInvitationId = (value) => InvitationIdSchema.parse(value);
922
- var toRoomId = (value) => RoomIdSchema.parse(value);
923
- var toRestaurantId = (value) => RestaurantIdSchema.parse(value);
924
- var toCommentId = (value) => CommentIdSchema.parse(value);
925
- var toPlanId = (value) => PlanIdSchema.parse(value);
926
- var toCouponId = (value) => CouponIdSchema.parse(value);
927
- var toSubscriptionId = (value) => SubscriptionIdSchema.parse(value);
928
- var toFriendRequestId = (value) => FriendRequestIdSchema.parse(value);
929
- 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");
2859
+
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";
2864
+
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
+ });
930
3001
  // Annotate the CommonJS export names for ESM import in node:
931
3002
  0 && (module.exports = {
932
3003
  domain