@kimdaegyu/babmukdang-shared 1.0.7 → 1.1.1
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.
- package/dist/chunk-4XAGRJUM.js +61 -0
- package/dist/chunk-5QLCZOPJ.js +34 -0
- package/dist/chunk-AATETFLU.js +312 -0
- package/dist/chunk-ADIREWTX.js +72 -0
- package/dist/chunk-ET2Z5ZYA.js +37 -0
- package/dist/chunk-HRM3FQPL.js +12 -0
- package/dist/chunk-JNJRBUKR.js +30 -0
- package/dist/chunk-M7HH7FMO.js +40 -0
- package/dist/chunk-NAPCX4Q6.js +183 -0
- package/dist/chunk-NCVWB52E.js +0 -0
- package/dist/chunk-NJTV6DRT.js +0 -0
- package/dist/chunk-O56CI56W.js +37 -0
- package/dist/chunk-PFSZSKD5.js +0 -0
- package/dist/chunk-RHQHBUO4.js +78 -0
- package/dist/chunk-XTBVYY5B.js +286 -0
- package/dist/chunk-XWTMYXPO.js +109 -0
- package/dist/chunk-YJ7RUOEJ.js +35 -0
- package/dist/domain/article/index.cjs +243 -0
- package/dist/domain/article/index.d.cts +952 -0
- package/dist/domain/article/index.d.ts +952 -0
- package/dist/domain/article/index.js +30 -0
- package/dist/domain/auth/index.cjs +141 -0
- package/dist/domain/auth/index.d.cts +72 -0
- package/dist/domain/auth/index.d.ts +72 -0
- package/dist/domain/auth/index.js +14 -0
- package/dist/domain/common/index.cjs +756 -0
- package/dist/domain/common/index.d.cts +2689 -0
- package/dist/domain/common/index.d.ts +2689 -0
- package/dist/domain/common/index.js +106 -0
- package/dist/domain/friend/index.cjs +148 -0
- package/dist/domain/friend/index.d.cts +117 -0
- package/dist/domain/friend/index.d.ts +117 -0
- package/dist/domain/friend/index.js +17 -0
- package/dist/domain/index.cjs +974 -0
- package/dist/domain/index.d.cts +14 -0
- package/dist/domain/index.d.ts +14 -0
- package/dist/domain/index.js +308 -0
- package/dist/domain/invitation/index.cjs +82 -0
- package/dist/domain/invitation/index.d.cts +64 -0
- package/dist/domain/invitation/index.d.ts +64 -0
- package/dist/domain/invitation/index.js +13 -0
- package/dist/domain/meal/index.cjs +154 -0
- package/dist/domain/meal/index.d.cts +66 -0
- package/dist/domain/meal/index.d.ts +66 -0
- package/dist/domain/meal/index.js +20 -0
- package/dist/domain/member/index.cjs +136 -0
- package/dist/domain/member/index.d.cts +332 -0
- package/dist/domain/member/index.d.ts +332 -0
- package/dist/domain/member/index.js +30 -0
- package/dist/domain/plan/index.cjs +278 -0
- package/dist/domain/plan/index.d.cts +178 -0
- package/dist/domain/plan/index.d.ts +178 -0
- package/dist/domain/plan/index.js +18 -0
- package/dist/domain/promotion/index.cjs +134 -0
- package/dist/domain/promotion/index.d.cts +114 -0
- package/dist/domain/promotion/index.d.ts +114 -0
- package/dist/domain/promotion/index.js +24 -0
- package/dist/domain/recruit/index.cjs +181 -0
- package/dist/domain/recruit/index.d.cts +130 -0
- package/dist/domain/recruit/index.d.ts +130 -0
- package/dist/domain/recruit/index.js +29 -0
- package/dist/domain/restaurant/index.cjs +85 -0
- package/dist/domain/restaurant/index.d.cts +82 -0
- package/dist/domain/restaurant/index.d.ts +82 -0
- package/dist/domain/restaurant/index.js +10 -0
- package/dist/domain/room/index.cjs +344 -0
- package/dist/domain/room/index.d.cts +1482 -0
- package/dist/domain/room/index.d.ts +1482 -0
- package/dist/domain/room/index.js +74 -0
- package/dist/id-_a-oManb.d.cts +58 -0
- package/dist/id-_a-oManb.d.ts +58 -0
- package/dist/index-CqcSqpDV.d.ts +286 -0
- package/dist/index-HEHaDbrV.d.cts +286 -0
- package/dist/index.cjs +825 -21
- package/dist/index.d.cts +108 -616
- package/dist/index.d.ts +108 -616
- package/dist/index.js +33 -36
- package/package.json +55 -39
|
@@ -0,0 +1,756 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/domain/common/index.ts
|
|
31
|
+
var common_exports = {};
|
|
32
|
+
__export(common_exports, {
|
|
33
|
+
ApiFailureSchema: () => ApiFailureSchema,
|
|
34
|
+
ApiResponseSchema: () => ApiResponseSchema,
|
|
35
|
+
ApiSuccessSchema: () => ApiSuccessSchema,
|
|
36
|
+
ArticleIdSchema: () => ArticleIdSchema,
|
|
37
|
+
CommentIdSchema: () => CommentIdSchema,
|
|
38
|
+
CouponIdSchema: () => CouponIdSchema,
|
|
39
|
+
CreatedEntityIdResponseSchema: () => CreatedEntityIdResponseSchema,
|
|
40
|
+
FoodCodeSchema: () => FoodCodeSchema,
|
|
41
|
+
FoodLabelSchema: () => FoodLabelSchema,
|
|
42
|
+
FoodSchema: () => FoodSchema,
|
|
43
|
+
FriendRequestIdSchema: () => FriendRequestIdSchema,
|
|
44
|
+
ISODateStringSchema: () => ISODateStringSchema,
|
|
45
|
+
ISODateTimeStringSchema: () => ISODateTimeStringSchema,
|
|
46
|
+
InvitationIdSchema: () => InvitationIdSchema,
|
|
47
|
+
MemberIdSchema: () => MemberIdSchema,
|
|
48
|
+
NoBodySchema: () => NoBodySchema,
|
|
49
|
+
NoContentSchema: () => NoContentSchema,
|
|
50
|
+
NoParamsSchema: () => NoParamsSchema,
|
|
51
|
+
NoQuerySchema: () => NoQuerySchema,
|
|
52
|
+
NonEmptyStringIdSchema: () => NonEmptyStringIdSchema,
|
|
53
|
+
PageMetaSchema: () => PageMetaSchema,
|
|
54
|
+
PageQuerySchema: () => PageQuerySchema,
|
|
55
|
+
PageResponseSchema: () => PageResponseSchema,
|
|
56
|
+
PlanIdSchema: () => PlanIdSchema,
|
|
57
|
+
PositiveIntIdSchema: () => PositiveIntIdSchema,
|
|
58
|
+
RecruitIdSchema: () => RecruitIdSchema,
|
|
59
|
+
ReferralCodeSchema: () => ReferralCodeSchema,
|
|
60
|
+
RestaurantIdSchema: () => RestaurantIdSchema,
|
|
61
|
+
RoomIdSchema: () => RoomIdSchema,
|
|
62
|
+
SortDirectionSchema: () => SortDirectionSchema,
|
|
63
|
+
SubscriptionIdSchema: () => SubscriptionIdSchema,
|
|
64
|
+
TimeHHmmStringSchema: () => TimeHHmmStringSchema,
|
|
65
|
+
UserIdSchema: () => UserIdSchema,
|
|
66
|
+
apiContract: () => apiContract,
|
|
67
|
+
endpoint: () => endpoint,
|
|
68
|
+
makeApiResponseSchema: () => makeApiResponseSchema,
|
|
69
|
+
makeApiSuccessSchema: () => makeApiSuccessSchema,
|
|
70
|
+
toArticleId: () => toArticleId,
|
|
71
|
+
toInvitationId: () => toInvitationId,
|
|
72
|
+
toMemberId: () => toMemberId,
|
|
73
|
+
toRecruitId: () => toRecruitId,
|
|
74
|
+
toRestaurantId: () => toRestaurantId,
|
|
75
|
+
toRoomId: () => toRoomId
|
|
76
|
+
});
|
|
77
|
+
module.exports = __toCommonJS(common_exports);
|
|
78
|
+
|
|
79
|
+
// src/domain/common/contracts/api.ts
|
|
80
|
+
var import_zod19 = require("zod");
|
|
81
|
+
|
|
82
|
+
// src/domain/article/article.schema.ts
|
|
83
|
+
var import_zod7 = require("zod");
|
|
84
|
+
|
|
85
|
+
// src/domain/common/schema/date.schema.ts
|
|
86
|
+
var import_zod = require("zod");
|
|
87
|
+
var isoDateRegex = /^\d{4}-\d{2}-\d{2}$/;
|
|
88
|
+
var ISODateStringSchema = import_zod.z.string().regex(isoDateRegex, "Expected ISO date string in YYYY-MM-DD format");
|
|
89
|
+
var ISODateTimeStringSchema = import_zod.z.string().datetime({ offset: true, message: "Expected ISO datetime string" });
|
|
90
|
+
var TimeHHmmStringSchema = import_zod.z.string().regex(/^\d{2}:\d{2}$/, "Expected time string in HH:mm format");
|
|
91
|
+
|
|
92
|
+
// src/domain/common/schema/id.schema.ts
|
|
93
|
+
var import_zod2 = require("zod");
|
|
94
|
+
var PositiveIntIdSchema = import_zod2.z.number().int().positive();
|
|
95
|
+
var NonEmptyStringIdSchema = import_zod2.z.string().min(1);
|
|
96
|
+
var MemberIdSchema = PositiveIntIdSchema.brand();
|
|
97
|
+
var UserIdSchema = MemberIdSchema;
|
|
98
|
+
var ArticleIdSchema = PositiveIntIdSchema.brand();
|
|
99
|
+
var CommentIdSchema = PositiveIntIdSchema.brand();
|
|
100
|
+
var RecruitIdSchema = PositiveIntIdSchema.brand();
|
|
101
|
+
var PlanIdSchema = PositiveIntIdSchema.brand();
|
|
102
|
+
var InvitationIdSchema = PositiveIntIdSchema.brand();
|
|
103
|
+
var RoomIdSchema = NonEmptyStringIdSchema.brand();
|
|
104
|
+
var RestaurantIdSchema = NonEmptyStringIdSchema.brand();
|
|
105
|
+
var CouponIdSchema = PositiveIntIdSchema.brand();
|
|
106
|
+
var SubscriptionIdSchema = PositiveIntIdSchema.brand();
|
|
107
|
+
var FriendRequestIdSchema = PositiveIntIdSchema.brand();
|
|
108
|
+
var ReferralCodeSchema = import_zod2.z.string().min(4).max(64).brand();
|
|
109
|
+
var FoodCodeSchema = NonEmptyStringIdSchema.brand();
|
|
110
|
+
var FoodLabelSchema = NonEmptyStringIdSchema.brand();
|
|
111
|
+
var FoodSchema = import_zod2.z.object({
|
|
112
|
+
code: FoodCodeSchema,
|
|
113
|
+
label: FoodLabelSchema
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
// src/domain/common/schema/pagination.schema.ts
|
|
117
|
+
var import_zod3 = require("zod");
|
|
118
|
+
var PageQuerySchema = import_zod3.z.object({
|
|
119
|
+
page: import_zod3.z.number().int().min(0).optional().default(0),
|
|
120
|
+
size: import_zod3.z.number().int().min(1).max(100).optional().default(20)
|
|
121
|
+
});
|
|
122
|
+
var PageMetaSchema = import_zod3.z.object({
|
|
123
|
+
page: import_zod3.z.number().int().min(0),
|
|
124
|
+
size: import_zod3.z.number().int().min(1),
|
|
125
|
+
totalItems: import_zod3.z.number().int().min(0),
|
|
126
|
+
totalPages: import_zod3.z.number().int().min(0),
|
|
127
|
+
hasNext: import_zod3.z.boolean(),
|
|
128
|
+
hasPrevious: import_zod3.z.boolean()
|
|
129
|
+
});
|
|
130
|
+
var PageResponseSchema = (item) => import_zod3.z.object({
|
|
131
|
+
items: import_zod3.z.array(item),
|
|
132
|
+
meta: PageMetaSchema
|
|
133
|
+
});
|
|
134
|
+
var SortDirectionSchema = import_zod3.z.enum(["asc", "desc"]);
|
|
135
|
+
|
|
136
|
+
// src/domain/member/member.schema.ts
|
|
137
|
+
var import_zod5 = require("zod");
|
|
138
|
+
|
|
139
|
+
// src/domain/common/contracts/upload.ts
|
|
140
|
+
var import_zod4 = __toESM(require("zod"), 1);
|
|
141
|
+
var PresignUploadResponseSchema = import_zod4.default.object({
|
|
142
|
+
key: import_zod4.default.string(),
|
|
143
|
+
putUrl: import_zod4.default.string().url(),
|
|
144
|
+
cdnUrl: import_zod4.default.string().url()
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
// src/domain/member/member.schema.ts
|
|
148
|
+
var MemberRoleSchema = import_zod5.z.enum(["USER", "ADMIN"]);
|
|
149
|
+
var MemberCoreSchema = import_zod5.z.object({
|
|
150
|
+
memberId: MemberIdSchema,
|
|
151
|
+
username: import_zod5.z.string().min(1).max(50),
|
|
152
|
+
profileImageUrl: import_zod5.z.string().url().nullable().optional()
|
|
153
|
+
});
|
|
154
|
+
var PresignProfileResponseSchema = PresignUploadResponseSchema.extend({});
|
|
155
|
+
var MemberResponseSchema = MemberCoreSchema.pick({
|
|
156
|
+
memberId: true,
|
|
157
|
+
username: true,
|
|
158
|
+
profileImageUrl: true
|
|
159
|
+
});
|
|
160
|
+
var MemberSearchQuerySchema = import_zod5.z.object({
|
|
161
|
+
email: import_zod5.z.string().email().optional(),
|
|
162
|
+
username: import_zod5.z.string().optional()
|
|
163
|
+
});
|
|
164
|
+
var MemberSerachResponseSchema = import_zod5.z.array(MemberCoreSchema);
|
|
165
|
+
var MemberDetailSchema = MemberCoreSchema.extend({
|
|
166
|
+
bio: import_zod5.z.string().nullable(),
|
|
167
|
+
friendConunt: import_zod5.z.number().int().min(0).default(0),
|
|
168
|
+
completedPlans: import_zod5.z.number().int().min(0).default(0),
|
|
169
|
+
uncompletedPlans: import_zod5.z.number().int().min(0).default(0)
|
|
170
|
+
});
|
|
171
|
+
var FoodPreferenceItemSchema = FoodSchema.extend({});
|
|
172
|
+
var MemberFoodPreferenceSchema = import_zod5.z.object({
|
|
173
|
+
liked: import_zod5.z.array(FoodPreferenceItemSchema).optional(),
|
|
174
|
+
disliked: import_zod5.z.array(FoodPreferenceItemSchema).optional(),
|
|
175
|
+
allergy: import_zod5.z.array(FoodPreferenceItemSchema).optional()
|
|
176
|
+
});
|
|
177
|
+
var ProfileDetailResponseSchema = MemberDetailSchema;
|
|
178
|
+
var UpdateProfileRequestSchema = import_zod5.z.object({
|
|
179
|
+
username: import_zod5.z.string().min(1).max(50),
|
|
180
|
+
profileImageUrl: import_zod5.z.string().url().nullable(),
|
|
181
|
+
bio: import_zod5.z.string().max(500).nullable()
|
|
182
|
+
});
|
|
183
|
+
var UpdatePreferenceRequestSchema = MemberFoodPreferenceSchema;
|
|
184
|
+
var CreateProfileRequestSchema = UpdateProfileRequestSchema.merge(
|
|
185
|
+
UpdatePreferenceRequestSchema
|
|
186
|
+
);
|
|
187
|
+
|
|
188
|
+
// src/domain/restaurant/restaurant.schema.ts
|
|
189
|
+
var import_zod6 = require("zod");
|
|
190
|
+
var RestaurantSchema = import_zod6.z.object({
|
|
191
|
+
restaurantId: RestaurantIdSchema,
|
|
192
|
+
placeName: import_zod6.z.string(),
|
|
193
|
+
categoryName: import_zod6.z.string(),
|
|
194
|
+
categoryGroupName: import_zod6.z.string(),
|
|
195
|
+
distance: import_zod6.z.string().optional(),
|
|
196
|
+
roadAddressName: import_zod6.z.string(),
|
|
197
|
+
addressName: import_zod6.z.string(),
|
|
198
|
+
phone: import_zod6.z.string().nullable(),
|
|
199
|
+
placeUrl: import_zod6.z.string().url().nullable(),
|
|
200
|
+
lat: import_zod6.z.number(),
|
|
201
|
+
lng: import_zod6.z.number()
|
|
202
|
+
});
|
|
203
|
+
var KakaoPlaceRawSchema = import_zod6.z.object({
|
|
204
|
+
id: RestaurantIdSchema,
|
|
205
|
+
place_name: import_zod6.z.string(),
|
|
206
|
+
category_name: import_zod6.z.string(),
|
|
207
|
+
category_group_name: import_zod6.z.string(),
|
|
208
|
+
distance: import_zod6.z.string(),
|
|
209
|
+
road_address_name: import_zod6.z.string(),
|
|
210
|
+
address_name: import_zod6.z.string(),
|
|
211
|
+
phone: import_zod6.z.string(),
|
|
212
|
+
place_url: import_zod6.z.string().url().optional(),
|
|
213
|
+
lat: import_zod6.z.number(),
|
|
214
|
+
lng: import_zod6.z.number()
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
// src/domain/article/article.schema.ts
|
|
218
|
+
var ArticleSortBySchema = import_zod7.z.enum(["createdAt", "likeCount", "commentCount"]);
|
|
219
|
+
var ArticleListQuerySchema = PageQuerySchema.extend({
|
|
220
|
+
sortBy: ArticleSortBySchema.optional().default("createdAt"),
|
|
221
|
+
direction: SortDirectionSchema.optional().default("desc")
|
|
222
|
+
});
|
|
223
|
+
var PresignArticleResponseSchema = PresignUploadResponseSchema.extend({});
|
|
224
|
+
var FoodAnalysisResultSchema = FoodSchema.extend({
|
|
225
|
+
confidence: import_zod7.z.number().min(0).max(1),
|
|
226
|
+
tsUtc: ISODateTimeStringSchema.optional()
|
|
227
|
+
});
|
|
228
|
+
var CreateArticleRequestSchema = import_zod7.z.object({
|
|
229
|
+
imageUrl: import_zod7.z.string().url(),
|
|
230
|
+
mealDate: ISODateStringSchema,
|
|
231
|
+
restaurant: RestaurantSchema,
|
|
232
|
+
taggedMemberIds: import_zod7.z.array(MemberIdSchema).default([]),
|
|
233
|
+
foodAnalysis: FoodAnalysisResultSchema.optional()
|
|
234
|
+
});
|
|
235
|
+
var CreateCommentRequestSchema = import_zod7.z.object({
|
|
236
|
+
content: import_zod7.z.string().min(1).max(500),
|
|
237
|
+
parentCommentId: CommentIdSchema.nullish()
|
|
238
|
+
});
|
|
239
|
+
var ArticleCommentSchema = import_zod7.z.object({
|
|
240
|
+
commentId: CommentIdSchema,
|
|
241
|
+
author: MemberCoreSchema,
|
|
242
|
+
parentCommentId: CommentIdSchema.nullable(),
|
|
243
|
+
content: import_zod7.z.string(),
|
|
244
|
+
createdAt: ISODateTimeStringSchema,
|
|
245
|
+
updatedAt: ISODateTimeStringSchema
|
|
246
|
+
});
|
|
247
|
+
var ArticleCoreSchema = import_zod7.z.object({
|
|
248
|
+
articleId: ArticleIdSchema,
|
|
249
|
+
author: MemberCoreSchema,
|
|
250
|
+
imageUrl: import_zod7.z.string().url(),
|
|
251
|
+
mealDate: ISODateStringSchema,
|
|
252
|
+
restaurant: RestaurantSchema,
|
|
253
|
+
createdAt: ISODateTimeStringSchema,
|
|
254
|
+
updatedAt: ISODateTimeStringSchema,
|
|
255
|
+
expiresAt: ISODateTimeStringSchema,
|
|
256
|
+
taggedMembers: import_zod7.z.array(MemberCoreSchema)
|
|
257
|
+
});
|
|
258
|
+
var ArticleSummaryResponseSchema = ArticleCoreSchema.extend({
|
|
259
|
+
likeCount: import_zod7.z.number().int().min(0),
|
|
260
|
+
commentCount: import_zod7.z.number().int().min(0),
|
|
261
|
+
likedByMe: import_zod7.z.boolean()
|
|
262
|
+
});
|
|
263
|
+
var ArticleDetailResponseSchema = ArticleSummaryResponseSchema.extend({
|
|
264
|
+
comments: import_zod7.z.array(ArticleCommentSchema).optional()
|
|
265
|
+
});
|
|
266
|
+
var PageArticleSummaryResponseSchema = PageResponseSchema(ArticleSummaryResponseSchema);
|
|
267
|
+
|
|
268
|
+
// src/domain/auth/auth.schema.ts
|
|
269
|
+
var import_zod8 = require("zod");
|
|
270
|
+
var TokenResponseSchema = import_zod8.z.object({
|
|
271
|
+
accessToken: import_zod8.z.string().min(1),
|
|
272
|
+
accessTokenMaxAge: import_zod8.z.number().int().positive()
|
|
273
|
+
});
|
|
274
|
+
var LoginRequestSchema = import_zod8.z.object({
|
|
275
|
+
email: import_zod8.z.string().email(),
|
|
276
|
+
password: import_zod8.z.string().min(1)
|
|
277
|
+
});
|
|
278
|
+
var SignupRequestSchema = import_zod8.z.object({
|
|
279
|
+
email: import_zod8.z.string().email(),
|
|
280
|
+
password: import_zod8.z.string().min(8),
|
|
281
|
+
username: import_zod8.z.string().min(1).max(50),
|
|
282
|
+
profileImageUrl: import_zod8.z.string().url().nullable().optional()
|
|
283
|
+
});
|
|
284
|
+
var SignupResponseSchema = import_zod8.z.object({
|
|
285
|
+
member: MemberCoreSchema
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
// src/domain/promotion/challenge.schema.ts
|
|
289
|
+
var import_zod9 = require("zod");
|
|
290
|
+
var RewardTypeSchema = import_zod9.z.enum(["WEEK", "MONTH"]);
|
|
291
|
+
var WeekProgressSchema = import_zod9.z.object({
|
|
292
|
+
days: import_zod9.z.array(import_zod9.z.boolean()),
|
|
293
|
+
completed: import_zod9.z.number().int().min(0),
|
|
294
|
+
goal: import_zod9.z.number().int().positive()
|
|
295
|
+
});
|
|
296
|
+
var MonthProgressSchema = import_zod9.z.object({
|
|
297
|
+
count: import_zod9.z.number().int().min(0),
|
|
298
|
+
goal: import_zod9.z.number().int().positive()
|
|
299
|
+
});
|
|
300
|
+
var ChallengeStatusResponseSchema = import_zod9.z.object({
|
|
301
|
+
count: import_zod9.z.number().int().min(0)
|
|
302
|
+
});
|
|
303
|
+
var ClaimChallengeRewardRequestSchema = import_zod9.z.object({
|
|
304
|
+
type: RewardTypeSchema
|
|
305
|
+
});
|
|
306
|
+
var ClaimChallengeRewardResponseSchema = import_zod9.z.object({
|
|
307
|
+
rewardType: RewardTypeSchema,
|
|
308
|
+
claimed: import_zod9.z.boolean()
|
|
309
|
+
});
|
|
310
|
+
|
|
311
|
+
// src/domain/friend/friend.schema.ts
|
|
312
|
+
var import_zod10 = require("zod");
|
|
313
|
+
var FriendRequestStatusSchema = import_zod10.z.enum(["PENDING", "ACCEPTED", "REJECTED", "CANCELED"]);
|
|
314
|
+
var FriendListItemResponseSchema = MemberCoreSchema.extend({
|
|
315
|
+
friendSince: ISODateTimeStringSchema
|
|
316
|
+
});
|
|
317
|
+
var FriendBlockItemResponseSchema = MemberCoreSchema.extend({
|
|
318
|
+
blockedAt: ISODateTimeStringSchema
|
|
319
|
+
});
|
|
320
|
+
var FriendRequestMemberSchema = MemberCoreSchema;
|
|
321
|
+
var FriendRequestItemResponseSchema = import_zod10.z.object({
|
|
322
|
+
requestId: FriendRequestIdSchema,
|
|
323
|
+
requester: FriendRequestMemberSchema,
|
|
324
|
+
recipient: FriendRequestMemberSchema,
|
|
325
|
+
status: FriendRequestStatusSchema,
|
|
326
|
+
requestedAt: ISODateTimeStringSchema
|
|
327
|
+
});
|
|
328
|
+
|
|
329
|
+
// src/domain/invitation/invitation.schema.ts
|
|
330
|
+
var import_zod11 = require("zod");
|
|
331
|
+
var CreateInvitationRequestSchema = import_zod11.z.object({
|
|
332
|
+
inviteeId: MemberIdSchema,
|
|
333
|
+
message: import_zod11.z.string().min(1).max(500)
|
|
334
|
+
});
|
|
335
|
+
var InvitationListItemResponseSchema = import_zod11.z.object({
|
|
336
|
+
invitationId: InvitationIdSchema,
|
|
337
|
+
inviterName: import_zod11.z.string(),
|
|
338
|
+
inviterProfileImageUrl: import_zod11.z.string().url().nullable().optional()
|
|
339
|
+
});
|
|
340
|
+
var SendInvitationResponseSchema = import_zod11.z.object({
|
|
341
|
+
invitationId: InvitationIdSchema
|
|
342
|
+
});
|
|
343
|
+
var AcceptInvitationResponseSchema = import_zod11.z.object({
|
|
344
|
+
invitationId: InvitationIdSchema,
|
|
345
|
+
room: import_zod11.z.object({
|
|
346
|
+
type: import_zod11.z.literal("invitation"),
|
|
347
|
+
roomId: RoomIdSchema
|
|
348
|
+
})
|
|
349
|
+
});
|
|
350
|
+
|
|
351
|
+
// src/domain/meal/meal.schema.ts
|
|
352
|
+
var import_zod12 = require("zod");
|
|
353
|
+
var MealStatusResponseSchema = import_zod12.z.object({
|
|
354
|
+
hungry: import_zod12.z.boolean(),
|
|
355
|
+
label: import_zod12.z.string(),
|
|
356
|
+
updatedAt: ISODateStringSchema,
|
|
357
|
+
secondsToAutoOff: import_zod12.z.number().int().min(0)
|
|
358
|
+
});
|
|
359
|
+
var MealStatusActionSchema = import_zod12.z.enum(["ARTICLE_UPLOAD", "SET_MANNUALY"]);
|
|
360
|
+
var UpdateMealStatusRequestSchema = import_zod12.z.object({
|
|
361
|
+
action: MealStatusActionSchema.optional().default("SET_MANNUALY")
|
|
362
|
+
});
|
|
363
|
+
var MealStatusSchema = import_zod12.z.enum(["ALL", "HUNGRY", "NOT_HUNGRY"]);
|
|
364
|
+
var FriendMealQuerySchema = import_zod12.z.object({
|
|
365
|
+
status: MealStatusSchema.optional().default("ALL")
|
|
366
|
+
});
|
|
367
|
+
var FriendMealItemResponseSchema = MemberCoreSchema.extend({
|
|
368
|
+
hungry: import_zod12.z.boolean(),
|
|
369
|
+
label: import_zod12.z.string(),
|
|
370
|
+
updatedAt: ISODateStringSchema
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
// src/domain/plan/plan.schema.ts
|
|
374
|
+
var import_zod14 = require("zod");
|
|
375
|
+
|
|
376
|
+
// src/domain/room/schema/room.schema.ts
|
|
377
|
+
var import_zod13 = require("zod");
|
|
378
|
+
var MenuCodeSchema = FoodCodeSchema;
|
|
379
|
+
var LocationIdSchema = import_zod13.z.string().min(1).brand();
|
|
380
|
+
var MenuSchema = FoodSchema.extend({});
|
|
381
|
+
var LocationCandidateSchema = import_zod13.z.object({
|
|
382
|
+
locationId: LocationIdSchema,
|
|
383
|
+
placeName: import_zod13.z.string(),
|
|
384
|
+
lat: import_zod13.z.number(),
|
|
385
|
+
lng: import_zod13.z.number(),
|
|
386
|
+
address: import_zod13.z.string()
|
|
387
|
+
});
|
|
388
|
+
var ParticipantSchema = MemberCoreSchema.extend({
|
|
389
|
+
ready: import_zod13.z.boolean()
|
|
390
|
+
});
|
|
391
|
+
var RecruitRoomStageSchema = import_zod13.z.enum([
|
|
392
|
+
"waiting",
|
|
393
|
+
"location",
|
|
394
|
+
"location-vote",
|
|
395
|
+
"exclude-menu",
|
|
396
|
+
"menu",
|
|
397
|
+
"restaurant",
|
|
398
|
+
"finish"
|
|
399
|
+
]);
|
|
400
|
+
var InvitationRoomStageSchema = import_zod13.z.enum([
|
|
401
|
+
"waiting",
|
|
402
|
+
"date",
|
|
403
|
+
"time",
|
|
404
|
+
"location",
|
|
405
|
+
"location-vote",
|
|
406
|
+
"exclude-menu",
|
|
407
|
+
"menu",
|
|
408
|
+
"restaurant",
|
|
409
|
+
"finish"
|
|
410
|
+
]);
|
|
411
|
+
var ReadyStateRequestSchema = import_zod13.z.object({
|
|
412
|
+
isReady: import_zod13.z.boolean()
|
|
413
|
+
});
|
|
414
|
+
var ChatMessageRequestSchema = import_zod13.z.object({
|
|
415
|
+
message: import_zod13.z.string().min(1).max(500)
|
|
416
|
+
});
|
|
417
|
+
var VoteLocationRequestSchema = import_zod13.z.object({ locationId: LocationIdSchema });
|
|
418
|
+
var ExcludeMenuRequestSchema = import_zod13.z.object({ menu: MenuSchema });
|
|
419
|
+
var PickMenuRequestSchema = import_zod13.z.object({ menuCode: MenuCodeSchema });
|
|
420
|
+
var PickRestaurantRequestSchema = import_zod13.z.object({ restaurantId: RestaurantIdSchema });
|
|
421
|
+
var PickTimesRequestSchema = import_zod13.z.object({ times: import_zod13.z.array(import_zod13.z.string().min(1)).min(1) });
|
|
422
|
+
var PickDateRequestSchema = import_zod13.z.object({ dates: import_zod13.z.array(ISODateStringSchema).min(1) });
|
|
423
|
+
var RoomAssignedResponseSchema = import_zod13.z.object({
|
|
424
|
+
roomId: RoomIdSchema
|
|
425
|
+
});
|
|
426
|
+
var RoomSocketErrorSchema = import_zod13.z.object({
|
|
427
|
+
code: import_zod13.z.string(),
|
|
428
|
+
message: import_zod13.z.string()
|
|
429
|
+
});
|
|
430
|
+
var ChatMessageResponseSchema = import_zod13.z.object({
|
|
431
|
+
messageId: import_zod13.z.string(),
|
|
432
|
+
user: MemberCoreSchema,
|
|
433
|
+
message: import_zod13.z.string(),
|
|
434
|
+
createdAt: ISODateTimeStringSchema
|
|
435
|
+
});
|
|
436
|
+
var ReadyStateChangedSchema = import_zod13.z.object({
|
|
437
|
+
readyCount: import_zod13.z.number().int().min(0),
|
|
438
|
+
participantCount: import_zod13.z.number().int().min(0)
|
|
439
|
+
});
|
|
440
|
+
var FinalStateSchema = import_zod13.z.object({
|
|
441
|
+
location: LocationCandidateSchema.optional(),
|
|
442
|
+
excludeMenu: import_zod13.z.array(MenuSchema).optional(),
|
|
443
|
+
menu: MenuSchema.optional(),
|
|
444
|
+
restaurant: RestaurantSchema.optional(),
|
|
445
|
+
time: import_zod13.z.string().optional(),
|
|
446
|
+
date: ISODateStringSchema.optional()
|
|
447
|
+
});
|
|
448
|
+
var RoomInitialStateSchema = import_zod13.z.object({
|
|
449
|
+
participants: import_zod13.z.array(ParticipantSchema),
|
|
450
|
+
chat: import_zod13.z.array(ChatMessageResponseSchema),
|
|
451
|
+
final: FinalStateSchema
|
|
452
|
+
});
|
|
453
|
+
var PhaseDataBroadcastSchema = import_zod13.z.object({
|
|
454
|
+
phase: import_zod13.z.union([RecruitRoomStageSchema, InvitationRoomStageSchema]),
|
|
455
|
+
data: import_zod13.z.unknown()
|
|
456
|
+
});
|
|
457
|
+
var TimePicksUpdateResponseSchema = import_zod13.z.array(
|
|
458
|
+
import_zod13.z.object({ memberId: MemberIdSchema, times: import_zod13.z.array(import_zod13.z.string()) })
|
|
459
|
+
);
|
|
460
|
+
var DatePicksUpdateResponseSchema = import_zod13.z.array(
|
|
461
|
+
import_zod13.z.object({ memberId: MemberIdSchema, dates: import_zod13.z.array(ISODateStringSchema) })
|
|
462
|
+
);
|
|
463
|
+
var LocationCandidateAddUpdateResponseSchema = import_zod13.z.array(
|
|
464
|
+
LocationCandidateSchema.extend({ authorMemberId: MemberIdSchema })
|
|
465
|
+
);
|
|
466
|
+
var LocationCandidateVoteUpdateResponseSchema = import_zod13.z.array(
|
|
467
|
+
import_zod13.z.object({ locationId: LocationIdSchema, votes: import_zod13.z.array(MemberIdSchema) })
|
|
468
|
+
);
|
|
469
|
+
var ExcludeMenuUpdateResponseSchema = import_zod13.z.array(
|
|
470
|
+
import_zod13.z.object({ memberId: MemberIdSchema, exclusions: import_zod13.z.array(MenuSchema) })
|
|
471
|
+
);
|
|
472
|
+
var MenuPickUpdateResponseSchema = import_zod13.z.array(
|
|
473
|
+
import_zod13.z.object({ menuCode: MenuCodeSchema, selectedMembers: import_zod13.z.array(MemberIdSchema) })
|
|
474
|
+
);
|
|
475
|
+
var RestaurantPickUpdateResponseSchema = import_zod13.z.array(
|
|
476
|
+
import_zod13.z.object({ restaurantId: RestaurantIdSchema, selectedMembers: import_zod13.z.array(MemberIdSchema) })
|
|
477
|
+
);
|
|
478
|
+
|
|
479
|
+
// src/domain/plan/plan.schema.ts
|
|
480
|
+
var PlanStatusSchema = import_zod14.z.enum(["PLANNING", "COMPLETED"]);
|
|
481
|
+
var PlanTypeSchema = import_zod14.z.enum(["RECRUIT", "INVITATION"]);
|
|
482
|
+
var PlanResponseSchema = import_zod14.z.object({
|
|
483
|
+
planId: PlanIdSchema,
|
|
484
|
+
meetingAt: ISODateTimeStringSchema,
|
|
485
|
+
location: LocationCandidateSchema.nullable(),
|
|
486
|
+
restaurant: RestaurantSchema.nullable(),
|
|
487
|
+
author: MemberCoreSchema,
|
|
488
|
+
participants: import_zod14.z.array(MemberCoreSchema),
|
|
489
|
+
status: PlanStatusSchema,
|
|
490
|
+
type: PlanTypeSchema,
|
|
491
|
+
createdAt: ISODateTimeStringSchema,
|
|
492
|
+
updatedAt: ISODateTimeStringSchema
|
|
493
|
+
});
|
|
494
|
+
var PlanListQuerySchema = import_zod14.z.object({});
|
|
495
|
+
|
|
496
|
+
// src/domain/recruit/recruit.schema.ts
|
|
497
|
+
var import_zod15 = require("zod");
|
|
498
|
+
var RecruitStatusSchema = import_zod15.z.enum(["OPEN", "CLOSED", "EXPIRED"]);
|
|
499
|
+
var RecruitParticipantSchema = MemberCoreSchema.extend({});
|
|
500
|
+
var RecruitSortBySchema = import_zod15.z.enum(["createdAt", "deadline", "participantCount"]);
|
|
501
|
+
var RecruitListQuerySchema = PageQuerySchema.extend({
|
|
502
|
+
sortBy: RecruitSortBySchema.default("createdAt"),
|
|
503
|
+
direction: SortDirectionSchema.default("desc")
|
|
504
|
+
});
|
|
505
|
+
var RecruitResponseSchema = import_zod15.z.object({
|
|
506
|
+
targetCount: import_zod15.z.number().int().min(2),
|
|
507
|
+
meetingAt: ISODateTimeStringSchema,
|
|
508
|
+
location: import_zod15.z.string().min(1),
|
|
509
|
+
message: import_zod15.z.string().max(500),
|
|
510
|
+
recruitId: RecruitIdSchema,
|
|
511
|
+
status: RecruitStatusSchema,
|
|
512
|
+
createdAt: ISODateTimeStringSchema,
|
|
513
|
+
expiredAt: ISODateTimeStringSchema,
|
|
514
|
+
updatedAt: ISODateTimeStringSchema,
|
|
515
|
+
author: MemberCoreSchema,
|
|
516
|
+
participants: import_zod15.z.array(RecruitParticipantSchema)
|
|
517
|
+
});
|
|
518
|
+
var RecruitListResponseSchema = import_zod15.z.array(RecruitResponseSchema);
|
|
519
|
+
var CreateRecruitRequestSchema = import_zod15.z.object({
|
|
520
|
+
targetCount: import_zod15.z.number().int().min(2),
|
|
521
|
+
meetingAt: ISODateTimeStringSchema,
|
|
522
|
+
location: import_zod15.z.string().min(1),
|
|
523
|
+
message: import_zod15.z.string().max(500)
|
|
524
|
+
});
|
|
525
|
+
var CreateRecruitResponseSchema = import_zod15.z.object({
|
|
526
|
+
recruitId: RecruitIdSchema
|
|
527
|
+
});
|
|
528
|
+
|
|
529
|
+
// src/domain/promotion/referral.schema.ts
|
|
530
|
+
var import_zod16 = require("zod");
|
|
531
|
+
var ReferralCreateResponseSchema = import_zod16.z.object({
|
|
532
|
+
code: ReferralCodeSchema,
|
|
533
|
+
link: import_zod16.z.string().url(),
|
|
534
|
+
expiresAt: ISODateTimeStringSchema
|
|
535
|
+
});
|
|
536
|
+
var ReferralItemResponseSchema = import_zod16.z.object({
|
|
537
|
+
code: ReferralCodeSchema,
|
|
538
|
+
createdAt: ISODateTimeStringSchema,
|
|
539
|
+
expiresAt: ISODateTimeStringSchema,
|
|
540
|
+
used: import_zod16.z.boolean(),
|
|
541
|
+
usedByMemberId: MemberIdSchema.nullable(),
|
|
542
|
+
usedByUsername: import_zod16.z.string().nullable()
|
|
543
|
+
});
|
|
544
|
+
var RedeemReferralRequestSchema = import_zod16.z.object({
|
|
545
|
+
code: ReferralCodeSchema
|
|
546
|
+
});
|
|
547
|
+
|
|
548
|
+
// src/domain/promotion/coupon.schema.ts
|
|
549
|
+
var import_zod17 = require("zod");
|
|
550
|
+
var CouponTypeSchema = import_zod17.z.enum(["DISCOUNT", "SERVICE"]);
|
|
551
|
+
var CouponStatusSchema = import_zod17.z.enum(["UNUSED", "USED"]);
|
|
552
|
+
var CouponResponseSchema = import_zod17.z.object({
|
|
553
|
+
couponId: CouponIdSchema,
|
|
554
|
+
title: import_zod17.z.string(),
|
|
555
|
+
shopName: import_zod17.z.string(),
|
|
556
|
+
type: CouponTypeSchema,
|
|
557
|
+
condition: import_zod17.z.string(),
|
|
558
|
+
expiresAt: ISODateStringSchema,
|
|
559
|
+
used: import_zod17.z.boolean(),
|
|
560
|
+
thumbnailUrl: import_zod17.z.string().url()
|
|
561
|
+
});
|
|
562
|
+
|
|
563
|
+
// src/domain/common/contracts/endpoint.ts
|
|
564
|
+
var import_zod18 = require("zod");
|
|
565
|
+
var NoBodySchema = import_zod18.z.undefined();
|
|
566
|
+
var NoQuerySchema = import_zod18.z.undefined();
|
|
567
|
+
var NoParamsSchema = import_zod18.z.undefined();
|
|
568
|
+
var endpoint = (contract) => ({
|
|
569
|
+
method: contract.method,
|
|
570
|
+
path: contract.path,
|
|
571
|
+
pathParams: contract.pathParams ?? NoParamsSchema,
|
|
572
|
+
query: contract.query ?? NoQuerySchema,
|
|
573
|
+
body: contract.body ?? NoBodySchema,
|
|
574
|
+
response: contract.response
|
|
575
|
+
});
|
|
576
|
+
|
|
577
|
+
// src/domain/common/contracts/api.ts
|
|
578
|
+
var memberIdParam = import_zod19.z.object({ memberId: MemberIdSchema });
|
|
579
|
+
var authorIdParam = import_zod19.z.object({ memberId: MemberIdSchema });
|
|
580
|
+
var articleIdParam = import_zod19.z.object({ articleId: ArticleIdSchema });
|
|
581
|
+
var commentIdParam = import_zod19.z.object({ commentId: CommentIdSchema });
|
|
582
|
+
var recruitIdParam = import_zod19.z.object({ recruitId: RecruitIdSchema });
|
|
583
|
+
var invitationIdParam = import_zod19.z.object({ invitationId: InvitationIdSchema });
|
|
584
|
+
var planIdParam = import_zod19.z.object({ planId: PlanIdSchema });
|
|
585
|
+
var couponIdParam = import_zod19.z.object({ couponId: CouponIdSchema });
|
|
586
|
+
var friendRequestIdParam = import_zod19.z.object({ requestId: FriendRequestIdSchema });
|
|
587
|
+
var apiContract = {
|
|
588
|
+
auth: {
|
|
589
|
+
signup: endpoint({ method: "POST", path: "/auth/signup", body: SignupRequestSchema, response: SignupResponseSchema }),
|
|
590
|
+
login: endpoint({ method: "POST", path: "/auth/login", body: LoginRequestSchema, response: TokenResponseSchema }),
|
|
591
|
+
refresh: endpoint({ method: "POST", path: "/auth/refresh", response: TokenResponseSchema }),
|
|
592
|
+
logout: endpoint({ method: "POST", path: "/auth/logout", response: NoContentSchema })
|
|
593
|
+
// test: endpoint({method: "GET", path: "/auth/test", response: TokenResponseSchema}) TODO: Dev에서만 작동하도록 백엔드에서 수정해야함
|
|
594
|
+
},
|
|
595
|
+
members: {
|
|
596
|
+
me: endpoint({ method: "GET", path: "/members/me", response: MemberResponseSchema }),
|
|
597
|
+
myProfile: endpoint({ method: "GET", path: "/members/me/detail", response: ProfileDetailResponseSchema }),
|
|
598
|
+
search: endpoint({ method: "GET", path: "/members/search", query: MemberSearchQuerySchema, response: MemberSerachResponseSchema }),
|
|
599
|
+
memberProfile: endpoint({ method: "GET", path: "/members/:memberId", pathParams: memberIdParam, response: ProfileDetailResponseSchema }),
|
|
600
|
+
presignProfileImage: endpoint({ method: "POST", path: "/uploads/presign-profile", response: PresignProfileResponseSchema }),
|
|
601
|
+
createProfile: endpoint({ method: "POST", path: "/members/onboarding", body: CreateProfileRequestSchema, response: NoContentSchema }),
|
|
602
|
+
updateProfile: endpoint({ method: "PATCH", path: "/members/me/profile", body: UpdateProfileRequestSchema, response: NoContentSchema }),
|
|
603
|
+
updatePreferences: endpoint({ method: "PATCH", path: "/members/me/preferences", body: UpdatePreferenceRequestSchema, response: NoContentSchema })
|
|
604
|
+
},
|
|
605
|
+
mealStatus: {
|
|
606
|
+
my: endpoint({ method: "GET", path: "/meal-status", response: MealStatusResponseSchema }),
|
|
607
|
+
updateMealStatus: endpoint({ method: "PATCH", path: "/meal-status", body: UpdateMealStatusRequestSchema, response: NoContentSchema }),
|
|
608
|
+
friendMealStatus: endpoint({ method: "GET", path: "/meal-status/friend", query: FriendMealQuerySchema, response: import_zod19.z.array(FriendMealItemResponseSchema) })
|
|
609
|
+
},
|
|
610
|
+
articles: {
|
|
611
|
+
list: endpoint({ method: "GET", path: "/articles/home", query: ArticleListQuerySchema, response: PageArticleSummaryResponseSchema }),
|
|
612
|
+
byAuthor: endpoint({ method: "GET", path: "/articles/by-author/:authorId", pathParams: authorIdParam, response: PageArticleSummaryResponseSchema }),
|
|
613
|
+
my: endpoint({ method: "GET", path: "/articles/my", response: PageArticleSummaryResponseSchema }),
|
|
614
|
+
detail: endpoint({ method: "GET", path: "/articles/:articleId", pathParams: articleIdParam, response: ArticleDetailResponseSchema }),
|
|
615
|
+
create: endpoint({ method: "POST", path: "/articles", body: CreateArticleRequestSchema, response: NoContentSchema }),
|
|
616
|
+
createComment: endpoint({ method: "POST", path: "/articles/:articleId/comments", pathParams: articleIdParam, body: CreateCommentRequestSchema, response: NoContentSchema }),
|
|
617
|
+
presignArticleImage: endpoint({ method: "POST", path: "/uploads/presign-article", response: PresignArticleResponseSchema }),
|
|
618
|
+
delete: endpoint({ method: "DELETE", path: "/articles/:articleId", pathParams: articleIdParam, response: NoContentSchema }),
|
|
619
|
+
deleteComment: endpoint({ method: "DELETE", path: "/articles/:articleId/comments/:commentId", pathParams: articleIdParam.merge(commentIdParam), response: NoContentSchema })
|
|
620
|
+
// TODO: 게시물 수정 기능
|
|
621
|
+
},
|
|
622
|
+
recruits: {
|
|
623
|
+
list: endpoint({ method: "GET", path: "/recruits", query: RecruitListQuerySchema, response: RecruitListResponseSchema }),
|
|
624
|
+
create: endpoint({ method: "POST", path: "/recruits", body: CreateRecruitRequestSchema, response: CreateRecruitResponseSchema }),
|
|
625
|
+
join: endpoint({ method: "POST", path: "/recruits/:recruitId/join", pathParams: recruitIdParam, response: NoContentSchema }),
|
|
626
|
+
close: endpoint({ method: "PATCH", path: "/recruits/:recruitId/close", pathParams: recruitIdParam, response: NoContentSchema })
|
|
627
|
+
},
|
|
628
|
+
invitations: {
|
|
629
|
+
list: endpoint({ method: "GET", path: "/invitations", response: import_zod19.z.array(InvitationListItemResponseSchema) }),
|
|
630
|
+
// TODO: Invitation Response 정하기 detail: endpoint({ method: "GET", path: "/invitations/:invitationId", pathParams: invitationIdParam, response: InvitationItemDetailResponseSchema }),
|
|
631
|
+
send: endpoint({ method: "POST", path: "/invitations", body: CreateInvitationRequestSchema, response: SendInvitationResponseSchema }),
|
|
632
|
+
accept: endpoint({ method: "POST", path: "/invitations/:invitationId/accept", pathParams: invitationIdParam, response: AcceptInvitationResponseSchema }),
|
|
633
|
+
reject: endpoint({ method: "POST", path: "/invitations/:invitationId/reject", pathParams: invitationIdParam, response: NoContentSchema })
|
|
634
|
+
},
|
|
635
|
+
plans: {
|
|
636
|
+
list: endpoint({ method: "GET", path: "/plans", query: PlanListQuerySchema, response: import_zod19.z.array(PlanResponseSchema) }),
|
|
637
|
+
detail: endpoint({ method: "GET", path: "/plans/:planId", pathParams: planIdParam, response: PlanResponseSchema }),
|
|
638
|
+
cancel: endpoint({ method: "PATCH", path: "/plans/:planId/cancel", pathParams: planIdParam, response: NoContentSchema })
|
|
639
|
+
},
|
|
640
|
+
friends: {
|
|
641
|
+
list: endpoint({ method: "GET", path: "/friends", response: import_zod19.z.array(FriendListItemResponseSchema) }),
|
|
642
|
+
blockList: endpoint({ method: "GET", path: "/friends/blocks", response: import_zod19.z.array(FriendBlockItemResponseSchema) }),
|
|
643
|
+
incomingRequest: endpoint({ method: "GET", path: "/friends/requests/incoming", response: import_zod19.z.array(FriendRequestItemResponseSchema) }),
|
|
644
|
+
outgoingRequest: endpoint({ method: "GET", path: "/friends/requests/outgoint", response: import_zod19.z.array(FriendRequestItemResponseSchema) }),
|
|
645
|
+
sendRequest: endpoint({ method: "POST", path: "/friends/requests/:memberId", pathParams: friendRequestIdParam, response: NoContentSchema }),
|
|
646
|
+
acceptRequest: endpoint({ method: "POST", path: "/friends/requests/:requestId/accept", pathParams: friendRequestIdParam, response: NoContentSchema }),
|
|
647
|
+
rejectRequest: endpoint({ method: "POST", path: "/friends/requests/:requestId/reject", pathParams: friendRequestIdParam, response: NoContentSchema }),
|
|
648
|
+
block: endpoint({ method: "POST", path: "/friends/blocks/:memberId", pathParams: memberIdParam, response: NoContentSchema }),
|
|
649
|
+
cancelRequest: endpoint({ method: "DELETE", path: "/friends/requests/:requestId", pathParams: friendRequestIdParam, response: NoContentSchema }),
|
|
650
|
+
unblock: endpoint({ method: "DELETE", path: "/friends/blocks/:memberId", pathParams: memberIdParam, response: NoContentSchema }),
|
|
651
|
+
unfriend: endpoint({ method: "DELETE", path: "/friends/:memberId", pathParams: memberIdParam, response: NoContentSchema })
|
|
652
|
+
},
|
|
653
|
+
coupons: {
|
|
654
|
+
list: endpoint({ method: "GET", path: "/coupons", response: import_zod19.z.array(CouponResponseSchema) }),
|
|
655
|
+
use: endpoint({ method: "PATCH", path: "/coupons/:couponId/use", pathParams: couponIdParam, response: NoContentSchema })
|
|
656
|
+
},
|
|
657
|
+
challenges: {
|
|
658
|
+
status: endpoint({ method: "GET", path: "/challenges/status", response: ChallengeStatusResponseSchema }),
|
|
659
|
+
claimReward: endpoint({ method: "POST", path: "/challenges/rewards", body: ClaimChallengeRewardRequestSchema, response: NoContentSchema })
|
|
660
|
+
},
|
|
661
|
+
referrals: {
|
|
662
|
+
list: endpoint({ method: "GET", path: "/referrals", response: import_zod19.z.array(ReferralItemResponseSchema) }),
|
|
663
|
+
create: endpoint({ method: "POST", path: "/referrals", response: ReferralCreateResponseSchema }),
|
|
664
|
+
redeem: endpoint({ method: "POST", path: "/referrals/redeem", body: RedeemReferralRequestSchema, response: NoContentSchema })
|
|
665
|
+
},
|
|
666
|
+
room: {
|
|
667
|
+
//TODO: 방 입장 기능
|
|
668
|
+
},
|
|
669
|
+
health: {
|
|
670
|
+
healthCheck: endpoint({ method: "GET", path: "/", response: import_zod19.z.string() })
|
|
671
|
+
}
|
|
672
|
+
};
|
|
673
|
+
|
|
674
|
+
// src/domain/common/schema/envelope.schema.ts
|
|
675
|
+
var import_zod20 = require("zod");
|
|
676
|
+
var NoContentSchema = import_zod20.z.null();
|
|
677
|
+
var ApiSuccessSchema = (data) => import_zod20.z.object({
|
|
678
|
+
success: import_zod20.z.literal(true),
|
|
679
|
+
code: import_zod20.z.number().int(),
|
|
680
|
+
message: import_zod20.z.string(),
|
|
681
|
+
data
|
|
682
|
+
});
|
|
683
|
+
var ApiFailureSchema = import_zod20.z.object({
|
|
684
|
+
success: import_zod20.z.literal(false),
|
|
685
|
+
status: import_zod20.z.number().int(),
|
|
686
|
+
code: import_zod20.z.string(),
|
|
687
|
+
message: import_zod20.z.string()
|
|
688
|
+
});
|
|
689
|
+
var ApiResponseSchema = (data) => import_zod20.z.union([ApiSuccessSchema(data), ApiFailureSchema]);
|
|
690
|
+
var CreatedEntityIdResponseSchema = import_zod20.z.discriminatedUnion("entity", [
|
|
691
|
+
import_zod20.z.object({ entity: import_zod20.z.literal("article"), id: ArticleIdSchema }),
|
|
692
|
+
import_zod20.z.object({ entity: import_zod20.z.literal("comment"), id: CommentIdSchema }),
|
|
693
|
+
import_zod20.z.object({ entity: import_zod20.z.literal("recruit"), id: RecruitIdSchema }),
|
|
694
|
+
import_zod20.z.object({ entity: import_zod20.z.literal("invitation"), id: InvitationIdSchema }),
|
|
695
|
+
import_zod20.z.object({ entity: import_zod20.z.literal("subscription"), id: SubscriptionIdSchema }),
|
|
696
|
+
import_zod20.z.object({ entity: import_zod20.z.literal("coupon"), id: CouponIdSchema }),
|
|
697
|
+
import_zod20.z.object({ entity: import_zod20.z.literal("plan"), id: PlanIdSchema })
|
|
698
|
+
]);
|
|
699
|
+
|
|
700
|
+
// src/domain/common/contracts/envelope.ts
|
|
701
|
+
var makeApiResponseSchema = ApiResponseSchema;
|
|
702
|
+
var makeApiSuccessSchema = ApiSuccessSchema;
|
|
703
|
+
|
|
704
|
+
// src/domain/common/contracts/id.ts
|
|
705
|
+
var toMemberId = (value) => MemberIdSchema.parse(value);
|
|
706
|
+
var toArticleId = (value) => ArticleIdSchema.parse(value);
|
|
707
|
+
var toRecruitId = (value) => RecruitIdSchema.parse(value);
|
|
708
|
+
var toInvitationId = (value) => InvitationIdSchema.parse(value);
|
|
709
|
+
var toRoomId = (value) => RoomIdSchema.parse(value);
|
|
710
|
+
var toRestaurantId = (value) => RestaurantIdSchema.parse(value);
|
|
711
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
712
|
+
0 && (module.exports = {
|
|
713
|
+
ApiFailureSchema,
|
|
714
|
+
ApiResponseSchema,
|
|
715
|
+
ApiSuccessSchema,
|
|
716
|
+
ArticleIdSchema,
|
|
717
|
+
CommentIdSchema,
|
|
718
|
+
CouponIdSchema,
|
|
719
|
+
CreatedEntityIdResponseSchema,
|
|
720
|
+
FoodCodeSchema,
|
|
721
|
+
FoodLabelSchema,
|
|
722
|
+
FoodSchema,
|
|
723
|
+
FriendRequestIdSchema,
|
|
724
|
+
ISODateStringSchema,
|
|
725
|
+
ISODateTimeStringSchema,
|
|
726
|
+
InvitationIdSchema,
|
|
727
|
+
MemberIdSchema,
|
|
728
|
+
NoBodySchema,
|
|
729
|
+
NoContentSchema,
|
|
730
|
+
NoParamsSchema,
|
|
731
|
+
NoQuerySchema,
|
|
732
|
+
NonEmptyStringIdSchema,
|
|
733
|
+
PageMetaSchema,
|
|
734
|
+
PageQuerySchema,
|
|
735
|
+
PageResponseSchema,
|
|
736
|
+
PlanIdSchema,
|
|
737
|
+
PositiveIntIdSchema,
|
|
738
|
+
RecruitIdSchema,
|
|
739
|
+
ReferralCodeSchema,
|
|
740
|
+
RestaurantIdSchema,
|
|
741
|
+
RoomIdSchema,
|
|
742
|
+
SortDirectionSchema,
|
|
743
|
+
SubscriptionIdSchema,
|
|
744
|
+
TimeHHmmStringSchema,
|
|
745
|
+
UserIdSchema,
|
|
746
|
+
apiContract,
|
|
747
|
+
endpoint,
|
|
748
|
+
makeApiResponseSchema,
|
|
749
|
+
makeApiSuccessSchema,
|
|
750
|
+
toArticleId,
|
|
751
|
+
toInvitationId,
|
|
752
|
+
toMemberId,
|
|
753
|
+
toRecruitId,
|
|
754
|
+
toRestaurantId,
|
|
755
|
+
toRoomId
|
|
756
|
+
});
|