@kimdaegyu/babmukdang-shared 1.1.11 → 2.0.3

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