@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.
Files changed (78) hide show
  1. package/dist/chunk-4XAGRJUM.js +61 -0
  2. package/dist/chunk-5QLCZOPJ.js +34 -0
  3. package/dist/chunk-AATETFLU.js +312 -0
  4. package/dist/chunk-ADIREWTX.js +72 -0
  5. package/dist/chunk-ET2Z5ZYA.js +37 -0
  6. package/dist/chunk-HRM3FQPL.js +12 -0
  7. package/dist/chunk-JNJRBUKR.js +30 -0
  8. package/dist/chunk-M7HH7FMO.js +40 -0
  9. package/dist/chunk-NAPCX4Q6.js +183 -0
  10. package/dist/chunk-NCVWB52E.js +0 -0
  11. package/dist/chunk-NJTV6DRT.js +0 -0
  12. package/dist/chunk-O56CI56W.js +37 -0
  13. package/dist/chunk-PFSZSKD5.js +0 -0
  14. package/dist/chunk-RHQHBUO4.js +78 -0
  15. package/dist/chunk-XTBVYY5B.js +286 -0
  16. package/dist/chunk-XWTMYXPO.js +109 -0
  17. package/dist/chunk-YJ7RUOEJ.js +35 -0
  18. package/dist/domain/article/index.cjs +243 -0
  19. package/dist/domain/article/index.d.cts +952 -0
  20. package/dist/domain/article/index.d.ts +952 -0
  21. package/dist/domain/article/index.js +30 -0
  22. package/dist/domain/auth/index.cjs +141 -0
  23. package/dist/domain/auth/index.d.cts +72 -0
  24. package/dist/domain/auth/index.d.ts +72 -0
  25. package/dist/domain/auth/index.js +14 -0
  26. package/dist/domain/common/index.cjs +756 -0
  27. package/dist/domain/common/index.d.cts +2689 -0
  28. package/dist/domain/common/index.d.ts +2689 -0
  29. package/dist/domain/common/index.js +106 -0
  30. package/dist/domain/friend/index.cjs +148 -0
  31. package/dist/domain/friend/index.d.cts +117 -0
  32. package/dist/domain/friend/index.d.ts +117 -0
  33. package/dist/domain/friend/index.js +17 -0
  34. package/dist/domain/index.cjs +974 -0
  35. package/dist/domain/index.d.cts +14 -0
  36. package/dist/domain/index.d.ts +14 -0
  37. package/dist/domain/index.js +308 -0
  38. package/dist/domain/invitation/index.cjs +82 -0
  39. package/dist/domain/invitation/index.d.cts +64 -0
  40. package/dist/domain/invitation/index.d.ts +64 -0
  41. package/dist/domain/invitation/index.js +13 -0
  42. package/dist/domain/meal/index.cjs +154 -0
  43. package/dist/domain/meal/index.d.cts +66 -0
  44. package/dist/domain/meal/index.d.ts +66 -0
  45. package/dist/domain/meal/index.js +20 -0
  46. package/dist/domain/member/index.cjs +136 -0
  47. package/dist/domain/member/index.d.cts +332 -0
  48. package/dist/domain/member/index.d.ts +332 -0
  49. package/dist/domain/member/index.js +30 -0
  50. package/dist/domain/plan/index.cjs +278 -0
  51. package/dist/domain/plan/index.d.cts +178 -0
  52. package/dist/domain/plan/index.d.ts +178 -0
  53. package/dist/domain/plan/index.js +18 -0
  54. package/dist/domain/promotion/index.cjs +134 -0
  55. package/dist/domain/promotion/index.d.cts +114 -0
  56. package/dist/domain/promotion/index.d.ts +114 -0
  57. package/dist/domain/promotion/index.js +24 -0
  58. package/dist/domain/recruit/index.cjs +181 -0
  59. package/dist/domain/recruit/index.d.cts +130 -0
  60. package/dist/domain/recruit/index.d.ts +130 -0
  61. package/dist/domain/recruit/index.js +29 -0
  62. package/dist/domain/restaurant/index.cjs +85 -0
  63. package/dist/domain/restaurant/index.d.cts +82 -0
  64. package/dist/domain/restaurant/index.d.ts +82 -0
  65. package/dist/domain/restaurant/index.js +10 -0
  66. package/dist/domain/room/index.cjs +344 -0
  67. package/dist/domain/room/index.d.cts +1482 -0
  68. package/dist/domain/room/index.d.ts +1482 -0
  69. package/dist/domain/room/index.js +74 -0
  70. package/dist/id-_a-oManb.d.cts +58 -0
  71. package/dist/id-_a-oManb.d.ts +58 -0
  72. package/dist/index-CqcSqpDV.d.ts +286 -0
  73. package/dist/index-HEHaDbrV.d.cts +286 -0
  74. package/dist/index.cjs +825 -21
  75. package/dist/index.d.cts +108 -616
  76. package/dist/index.d.ts +108 -616
  77. package/dist/index.js +33 -36
  78. package/package.json +55 -39
@@ -0,0 +1,2689 @@
1
+ import { z } from 'zod';
2
+ export { A as ArticleId, a as ArticleIdSchema, B as Brand, C as CommentId, b as CommentIdSchema, c as CouponId, d as CouponIdSchema, F as Food, e as FoodCode, f as FoodCodeSchema, g as FoodLabel, h as FoodLabelSchema, i as FoodSchema, j as FriendRequestId, k as FriendRequestIdSchema, I as InvitationId, l as InvitationIdSchema, M as MemberId, m as MemberIdSchema, N as NonEmptyStringIdSchema, P as PlanId, n as PlanIdSchema, o as PositiveIntIdSchema, R as RecruitId, p as RecruitIdSchema, q as ReferralCode, r as ReferralCodeSchema, s as RestaurantId, t as RestaurantIdSchema, u as RoomId, v as RoomIdSchema, S as SubscriptionId, w as SubscriptionIdSchema, U as UserId, x as UserIdSchema, y as toArticleId, z as toInvitationId, D as toMemberId, E as toRecruitId, G as toRestaurantId, H as toRoomId } from '../../id-_a-oManb.js';
3
+
4
+ declare const apiContract: {
5
+ readonly auth: {
6
+ readonly signup: EndpointContract<"POST", "/auth/signup", z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
7
+ email: z.ZodString;
8
+ password: z.ZodString;
9
+ username: z.ZodString;
10
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ username: string;
13
+ email: string;
14
+ password: string;
15
+ profileImageUrl?: string | null | undefined;
16
+ }, {
17
+ username: string;
18
+ email: string;
19
+ password: string;
20
+ profileImageUrl?: string | null | undefined;
21
+ }>, z.ZodObject<{
22
+ member: z.ZodObject<{
23
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
24
+ username: z.ZodString;
25
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26
+ }, "strip", z.ZodTypeAny, {
27
+ memberId: number & z.BRAND<"MemberId">;
28
+ username: string;
29
+ profileImageUrl?: string | null | undefined;
30
+ }, {
31
+ memberId: number;
32
+ username: string;
33
+ profileImageUrl?: string | null | undefined;
34
+ }>;
35
+ }, "strip", z.ZodTypeAny, {
36
+ member: {
37
+ memberId: number & z.BRAND<"MemberId">;
38
+ username: string;
39
+ profileImageUrl?: string | null | undefined;
40
+ };
41
+ }, {
42
+ member: {
43
+ memberId: number;
44
+ username: string;
45
+ profileImageUrl?: string | null | undefined;
46
+ };
47
+ }>>;
48
+ readonly login: EndpointContract<"POST", "/auth/login", z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
49
+ email: z.ZodString;
50
+ password: z.ZodString;
51
+ }, "strip", z.ZodTypeAny, {
52
+ email: string;
53
+ password: string;
54
+ }, {
55
+ email: string;
56
+ password: string;
57
+ }>, z.ZodObject<{
58
+ accessToken: z.ZodString;
59
+ accessTokenMaxAge: z.ZodNumber;
60
+ }, "strip", z.ZodTypeAny, {
61
+ accessToken: string;
62
+ accessTokenMaxAge: number;
63
+ }, {
64
+ accessToken: string;
65
+ accessTokenMaxAge: number;
66
+ }>>;
67
+ readonly refresh: EndpointContract<"POST", "/auth/refresh", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
68
+ accessToken: z.ZodString;
69
+ accessTokenMaxAge: z.ZodNumber;
70
+ }, "strip", z.ZodTypeAny, {
71
+ accessToken: string;
72
+ accessTokenMaxAge: number;
73
+ }, {
74
+ accessToken: string;
75
+ accessTokenMaxAge: number;
76
+ }>>;
77
+ readonly logout: EndpointContract<"POST", "/auth/logout", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
78
+ };
79
+ readonly members: {
80
+ readonly me: EndpointContract<"GET", "/members/me", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodObject<Pick<{
81
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
82
+ username: z.ZodString;
83
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
84
+ }, "memberId" | "username" | "profileImageUrl">, "strip", z.ZodTypeAny, {
85
+ memberId: number & z.BRAND<"MemberId">;
86
+ username: string;
87
+ profileImageUrl?: string | null | undefined;
88
+ }, {
89
+ memberId: number;
90
+ username: string;
91
+ profileImageUrl?: string | null | undefined;
92
+ }>>;
93
+ readonly myProfile: EndpointContract<"GET", "/members/me/detail", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
94
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
95
+ username: z.ZodString;
96
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
97
+ } & {
98
+ bio: z.ZodNullable<z.ZodString>;
99
+ friendConunt: z.ZodDefault<z.ZodNumber>;
100
+ completedPlans: z.ZodDefault<z.ZodNumber>;
101
+ uncompletedPlans: z.ZodDefault<z.ZodNumber>;
102
+ }, "strip", z.ZodTypeAny, {
103
+ memberId: number & z.BRAND<"MemberId">;
104
+ username: string;
105
+ bio: string | null;
106
+ friendConunt: number;
107
+ completedPlans: number;
108
+ uncompletedPlans: number;
109
+ profileImageUrl?: string | null | undefined;
110
+ }, {
111
+ memberId: number;
112
+ username: string;
113
+ bio: string | null;
114
+ profileImageUrl?: string | null | undefined;
115
+ friendConunt?: number | undefined;
116
+ completedPlans?: number | undefined;
117
+ uncompletedPlans?: number | undefined;
118
+ }>>;
119
+ readonly search: EndpointContract<"GET", "/members/search", z.ZodUndefined, z.ZodObject<{
120
+ email: z.ZodOptional<z.ZodString>;
121
+ username: z.ZodOptional<z.ZodString>;
122
+ }, "strip", z.ZodTypeAny, {
123
+ username?: string | undefined;
124
+ email?: string | undefined;
125
+ }, {
126
+ username?: string | undefined;
127
+ email?: string | undefined;
128
+ }>, z.ZodUndefined, z.ZodArray<z.ZodObject<{
129
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
130
+ username: z.ZodString;
131
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
132
+ }, "strip", z.ZodTypeAny, {
133
+ memberId: number & z.BRAND<"MemberId">;
134
+ username: string;
135
+ profileImageUrl?: string | null | undefined;
136
+ }, {
137
+ memberId: number;
138
+ username: string;
139
+ profileImageUrl?: string | null | undefined;
140
+ }>, "many">>;
141
+ readonly memberProfile: EndpointContract<"GET", "/members/:memberId", z.ZodObject<{
142
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
143
+ }, "strip", z.ZodTypeAny, {
144
+ memberId: number & z.BRAND<"MemberId">;
145
+ }, {
146
+ memberId: number;
147
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
148
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
149
+ username: z.ZodString;
150
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
151
+ } & {
152
+ bio: z.ZodNullable<z.ZodString>;
153
+ friendConunt: z.ZodDefault<z.ZodNumber>;
154
+ completedPlans: z.ZodDefault<z.ZodNumber>;
155
+ uncompletedPlans: z.ZodDefault<z.ZodNumber>;
156
+ }, "strip", z.ZodTypeAny, {
157
+ memberId: number & z.BRAND<"MemberId">;
158
+ username: string;
159
+ bio: string | null;
160
+ friendConunt: number;
161
+ completedPlans: number;
162
+ uncompletedPlans: number;
163
+ profileImageUrl?: string | null | undefined;
164
+ }, {
165
+ memberId: number;
166
+ username: string;
167
+ bio: string | null;
168
+ profileImageUrl?: string | null | undefined;
169
+ friendConunt?: number | undefined;
170
+ completedPlans?: number | undefined;
171
+ uncompletedPlans?: number | undefined;
172
+ }>>;
173
+ readonly presignProfileImage: EndpointContract<"POST", "/uploads/presign-profile", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
174
+ key: z.ZodString;
175
+ putUrl: z.ZodString;
176
+ cdnUrl: z.ZodString;
177
+ }, "strip", z.ZodTypeAny, {
178
+ key: string;
179
+ putUrl: string;
180
+ cdnUrl: string;
181
+ }, {
182
+ key: string;
183
+ putUrl: string;
184
+ cdnUrl: string;
185
+ }>>;
186
+ readonly createProfile: EndpointContract<"POST", "/members/onboarding", z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
187
+ username: z.ZodString;
188
+ profileImageUrl: z.ZodNullable<z.ZodString>;
189
+ bio: z.ZodNullable<z.ZodString>;
190
+ } & {
191
+ liked: z.ZodOptional<z.ZodArray<z.ZodObject<{
192
+ code: z.ZodBranded<z.ZodString, "FoodCode">;
193
+ label: z.ZodBranded<z.ZodString, "FoodLabel">;
194
+ }, "strip", z.ZodTypeAny, {
195
+ code: string & z.BRAND<"FoodCode">;
196
+ label: string & z.BRAND<"FoodLabel">;
197
+ }, {
198
+ code: string;
199
+ label: string;
200
+ }>, "many">>;
201
+ disliked: z.ZodOptional<z.ZodArray<z.ZodObject<{
202
+ code: z.ZodBranded<z.ZodString, "FoodCode">;
203
+ label: z.ZodBranded<z.ZodString, "FoodLabel">;
204
+ }, "strip", z.ZodTypeAny, {
205
+ code: string & z.BRAND<"FoodCode">;
206
+ label: string & z.BRAND<"FoodLabel">;
207
+ }, {
208
+ code: string;
209
+ label: string;
210
+ }>, "many">>;
211
+ allergy: z.ZodOptional<z.ZodArray<z.ZodObject<{
212
+ code: z.ZodBranded<z.ZodString, "FoodCode">;
213
+ label: z.ZodBranded<z.ZodString, "FoodLabel">;
214
+ }, "strip", z.ZodTypeAny, {
215
+ code: string & z.BRAND<"FoodCode">;
216
+ label: string & z.BRAND<"FoodLabel">;
217
+ }, {
218
+ code: string;
219
+ label: string;
220
+ }>, "many">>;
221
+ }, "strip", z.ZodTypeAny, {
222
+ username: string;
223
+ profileImageUrl: string | null;
224
+ bio: string | null;
225
+ liked?: {
226
+ code: string & z.BRAND<"FoodCode">;
227
+ label: string & z.BRAND<"FoodLabel">;
228
+ }[] | undefined;
229
+ disliked?: {
230
+ code: string & z.BRAND<"FoodCode">;
231
+ label: string & z.BRAND<"FoodLabel">;
232
+ }[] | undefined;
233
+ allergy?: {
234
+ code: string & z.BRAND<"FoodCode">;
235
+ label: string & z.BRAND<"FoodLabel">;
236
+ }[] | undefined;
237
+ }, {
238
+ username: string;
239
+ profileImageUrl: string | null;
240
+ bio: string | null;
241
+ liked?: {
242
+ code: string;
243
+ label: string;
244
+ }[] | undefined;
245
+ disliked?: {
246
+ code: string;
247
+ label: string;
248
+ }[] | undefined;
249
+ allergy?: {
250
+ code: string;
251
+ label: string;
252
+ }[] | undefined;
253
+ }>, z.ZodNull>;
254
+ readonly updateProfile: EndpointContract<"PATCH", "/members/me/profile", z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
255
+ username: z.ZodString;
256
+ profileImageUrl: z.ZodNullable<z.ZodString>;
257
+ bio: z.ZodNullable<z.ZodString>;
258
+ }, "strip", z.ZodTypeAny, {
259
+ username: string;
260
+ profileImageUrl: string | null;
261
+ bio: string | null;
262
+ }, {
263
+ username: string;
264
+ profileImageUrl: string | null;
265
+ bio: string | null;
266
+ }>, z.ZodNull>;
267
+ readonly updatePreferences: EndpointContract<"PATCH", "/members/me/preferences", z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
268
+ liked: z.ZodOptional<z.ZodArray<z.ZodObject<{
269
+ code: z.ZodBranded<z.ZodString, "FoodCode">;
270
+ label: z.ZodBranded<z.ZodString, "FoodLabel">;
271
+ }, "strip", z.ZodTypeAny, {
272
+ code: string & z.BRAND<"FoodCode">;
273
+ label: string & z.BRAND<"FoodLabel">;
274
+ }, {
275
+ code: string;
276
+ label: string;
277
+ }>, "many">>;
278
+ disliked: z.ZodOptional<z.ZodArray<z.ZodObject<{
279
+ code: z.ZodBranded<z.ZodString, "FoodCode">;
280
+ label: z.ZodBranded<z.ZodString, "FoodLabel">;
281
+ }, "strip", z.ZodTypeAny, {
282
+ code: string & z.BRAND<"FoodCode">;
283
+ label: string & z.BRAND<"FoodLabel">;
284
+ }, {
285
+ code: string;
286
+ label: string;
287
+ }>, "many">>;
288
+ allergy: z.ZodOptional<z.ZodArray<z.ZodObject<{
289
+ code: z.ZodBranded<z.ZodString, "FoodCode">;
290
+ label: z.ZodBranded<z.ZodString, "FoodLabel">;
291
+ }, "strip", z.ZodTypeAny, {
292
+ code: string & z.BRAND<"FoodCode">;
293
+ label: string & z.BRAND<"FoodLabel">;
294
+ }, {
295
+ code: string;
296
+ label: string;
297
+ }>, "many">>;
298
+ }, "strip", z.ZodTypeAny, {
299
+ liked?: {
300
+ code: string & z.BRAND<"FoodCode">;
301
+ label: string & z.BRAND<"FoodLabel">;
302
+ }[] | undefined;
303
+ disliked?: {
304
+ code: string & z.BRAND<"FoodCode">;
305
+ label: string & z.BRAND<"FoodLabel">;
306
+ }[] | undefined;
307
+ allergy?: {
308
+ code: string & z.BRAND<"FoodCode">;
309
+ label: string & z.BRAND<"FoodLabel">;
310
+ }[] | undefined;
311
+ }, {
312
+ liked?: {
313
+ code: string;
314
+ label: string;
315
+ }[] | undefined;
316
+ disliked?: {
317
+ code: string;
318
+ label: string;
319
+ }[] | undefined;
320
+ allergy?: {
321
+ code: string;
322
+ label: string;
323
+ }[] | undefined;
324
+ }>, z.ZodNull>;
325
+ };
326
+ readonly mealStatus: {
327
+ readonly my: EndpointContract<"GET", "/meal-status", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
328
+ hungry: z.ZodBoolean;
329
+ label: z.ZodString;
330
+ updatedAt: z.ZodString;
331
+ secondsToAutoOff: z.ZodNumber;
332
+ }, "strip", z.ZodTypeAny, {
333
+ label: string;
334
+ updatedAt: string;
335
+ hungry: boolean;
336
+ secondsToAutoOff: number;
337
+ }, {
338
+ label: string;
339
+ updatedAt: string;
340
+ hungry: boolean;
341
+ secondsToAutoOff: number;
342
+ }>>;
343
+ readonly updateMealStatus: EndpointContract<"PATCH", "/meal-status", z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
344
+ action: z.ZodDefault<z.ZodOptional<z.ZodEnum<["ARTICLE_UPLOAD", "SET_MANNUALY"]>>>;
345
+ }, "strip", z.ZodTypeAny, {
346
+ action: "ARTICLE_UPLOAD" | "SET_MANNUALY";
347
+ }, {
348
+ action?: "ARTICLE_UPLOAD" | "SET_MANNUALY" | undefined;
349
+ }>, z.ZodNull>;
350
+ readonly friendMealStatus: EndpointContract<"GET", "/meal-status/friend", z.ZodUndefined, z.ZodObject<{
351
+ status: z.ZodDefault<z.ZodOptional<z.ZodEnum<["ALL", "HUNGRY", "NOT_HUNGRY"]>>>;
352
+ }, "strip", z.ZodTypeAny, {
353
+ status: "ALL" | "HUNGRY" | "NOT_HUNGRY";
354
+ }, {
355
+ status?: "ALL" | "HUNGRY" | "NOT_HUNGRY" | undefined;
356
+ }>, z.ZodUndefined, z.ZodArray<z.ZodObject<{
357
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
358
+ username: z.ZodString;
359
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
360
+ } & {
361
+ hungry: z.ZodBoolean;
362
+ label: z.ZodString;
363
+ updatedAt: z.ZodString;
364
+ }, "strip", z.ZodTypeAny, {
365
+ label: string;
366
+ memberId: number & z.BRAND<"MemberId">;
367
+ username: string;
368
+ updatedAt: string;
369
+ hungry: boolean;
370
+ profileImageUrl?: string | null | undefined;
371
+ }, {
372
+ label: string;
373
+ memberId: number;
374
+ username: string;
375
+ updatedAt: string;
376
+ hungry: boolean;
377
+ profileImageUrl?: string | null | undefined;
378
+ }>, "many">>;
379
+ };
380
+ readonly articles: {
381
+ readonly list: EndpointContract<"GET", "/articles/home", z.ZodUndefined, z.ZodObject<{
382
+ page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
383
+ size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
384
+ } & {
385
+ sortBy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["createdAt", "likeCount", "commentCount"]>>>;
386
+ direction: z.ZodDefault<z.ZodOptional<z.ZodEnum<["asc", "desc"]>>>;
387
+ }, "strip", z.ZodTypeAny, {
388
+ page: number;
389
+ size: number;
390
+ sortBy: "createdAt" | "likeCount" | "commentCount";
391
+ direction: "asc" | "desc";
392
+ }, {
393
+ page?: number | undefined;
394
+ size?: number | undefined;
395
+ sortBy?: "createdAt" | "likeCount" | "commentCount" | undefined;
396
+ direction?: "asc" | "desc" | undefined;
397
+ }>, z.ZodUndefined, z.ZodObject<{
398
+ items: z.ZodArray<z.ZodObject<{
399
+ articleId: z.ZodBranded<z.ZodNumber, "ArticleId">;
400
+ author: z.ZodObject<{
401
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
402
+ username: z.ZodString;
403
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
404
+ }, "strip", z.ZodTypeAny, {
405
+ memberId: number & z.BRAND<"MemberId">;
406
+ username: string;
407
+ profileImageUrl?: string | null | undefined;
408
+ }, {
409
+ memberId: number;
410
+ username: string;
411
+ profileImageUrl?: string | null | undefined;
412
+ }>;
413
+ imageUrl: z.ZodString;
414
+ mealDate: z.ZodString;
415
+ restaurant: z.ZodObject<{
416
+ restaurantId: z.ZodBranded<z.ZodString, "RestaurantId">;
417
+ placeName: z.ZodString;
418
+ categoryName: z.ZodString;
419
+ categoryGroupName: z.ZodString;
420
+ distance: z.ZodOptional<z.ZodString>;
421
+ roadAddressName: z.ZodString;
422
+ addressName: z.ZodString;
423
+ phone: z.ZodNullable<z.ZodString>;
424
+ placeUrl: z.ZodNullable<z.ZodString>;
425
+ lat: z.ZodNumber;
426
+ lng: z.ZodNumber;
427
+ }, "strip", z.ZodTypeAny, {
428
+ restaurantId: string & z.BRAND<"RestaurantId">;
429
+ placeName: string;
430
+ categoryName: string;
431
+ categoryGroupName: string;
432
+ roadAddressName: string;
433
+ addressName: string;
434
+ phone: string | null;
435
+ placeUrl: string | null;
436
+ lat: number;
437
+ lng: number;
438
+ distance?: string | undefined;
439
+ }, {
440
+ restaurantId: string;
441
+ placeName: string;
442
+ categoryName: string;
443
+ categoryGroupName: string;
444
+ roadAddressName: string;
445
+ addressName: string;
446
+ phone: string | null;
447
+ placeUrl: string | null;
448
+ lat: number;
449
+ lng: number;
450
+ distance?: string | undefined;
451
+ }>;
452
+ createdAt: z.ZodString;
453
+ updatedAt: z.ZodString;
454
+ expiresAt: z.ZodString;
455
+ taggedMembers: z.ZodArray<z.ZodObject<{
456
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
457
+ username: z.ZodString;
458
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
459
+ }, "strip", z.ZodTypeAny, {
460
+ memberId: number & z.BRAND<"MemberId">;
461
+ username: string;
462
+ profileImageUrl?: string | null | undefined;
463
+ }, {
464
+ memberId: number;
465
+ username: string;
466
+ profileImageUrl?: string | null | undefined;
467
+ }>, "many">;
468
+ } & {
469
+ likeCount: z.ZodNumber;
470
+ commentCount: z.ZodNumber;
471
+ likedByMe: z.ZodBoolean;
472
+ }, "strip", z.ZodTypeAny, {
473
+ createdAt: string;
474
+ likeCount: number;
475
+ commentCount: number;
476
+ imageUrl: string;
477
+ mealDate: string;
478
+ restaurant: {
479
+ restaurantId: string & z.BRAND<"RestaurantId">;
480
+ placeName: string;
481
+ categoryName: string;
482
+ categoryGroupName: string;
483
+ roadAddressName: string;
484
+ addressName: string;
485
+ phone: string | null;
486
+ placeUrl: string | null;
487
+ lat: number;
488
+ lng: number;
489
+ distance?: string | undefined;
490
+ };
491
+ author: {
492
+ memberId: number & z.BRAND<"MemberId">;
493
+ username: string;
494
+ profileImageUrl?: string | null | undefined;
495
+ };
496
+ updatedAt: string;
497
+ articleId: number & z.BRAND<"ArticleId">;
498
+ expiresAt: string;
499
+ taggedMembers: {
500
+ memberId: number & z.BRAND<"MemberId">;
501
+ username: string;
502
+ profileImageUrl?: string | null | undefined;
503
+ }[];
504
+ likedByMe: boolean;
505
+ }, {
506
+ createdAt: string;
507
+ likeCount: number;
508
+ commentCount: number;
509
+ imageUrl: string;
510
+ mealDate: string;
511
+ restaurant: {
512
+ restaurantId: string;
513
+ placeName: string;
514
+ categoryName: string;
515
+ categoryGroupName: string;
516
+ roadAddressName: string;
517
+ addressName: string;
518
+ phone: string | null;
519
+ placeUrl: string | null;
520
+ lat: number;
521
+ lng: number;
522
+ distance?: string | undefined;
523
+ };
524
+ author: {
525
+ memberId: number;
526
+ username: string;
527
+ profileImageUrl?: string | null | undefined;
528
+ };
529
+ updatedAt: string;
530
+ articleId: number;
531
+ expiresAt: string;
532
+ taggedMembers: {
533
+ memberId: number;
534
+ username: string;
535
+ profileImageUrl?: string | null | undefined;
536
+ }[];
537
+ likedByMe: boolean;
538
+ }>, "many">;
539
+ meta: z.ZodObject<{
540
+ page: z.ZodNumber;
541
+ size: z.ZodNumber;
542
+ totalItems: z.ZodNumber;
543
+ totalPages: z.ZodNumber;
544
+ hasNext: z.ZodBoolean;
545
+ hasPrevious: z.ZodBoolean;
546
+ }, "strip", z.ZodTypeAny, {
547
+ page: number;
548
+ size: number;
549
+ totalItems: number;
550
+ totalPages: number;
551
+ hasNext: boolean;
552
+ hasPrevious: boolean;
553
+ }, {
554
+ page: number;
555
+ size: number;
556
+ totalItems: number;
557
+ totalPages: number;
558
+ hasNext: boolean;
559
+ hasPrevious: boolean;
560
+ }>;
561
+ }, "strip", z.ZodTypeAny, {
562
+ items: {
563
+ createdAt: string;
564
+ likeCount: number;
565
+ commentCount: number;
566
+ imageUrl: string;
567
+ mealDate: string;
568
+ restaurant: {
569
+ restaurantId: string & z.BRAND<"RestaurantId">;
570
+ placeName: string;
571
+ categoryName: string;
572
+ categoryGroupName: string;
573
+ roadAddressName: string;
574
+ addressName: string;
575
+ phone: string | null;
576
+ placeUrl: string | null;
577
+ lat: number;
578
+ lng: number;
579
+ distance?: string | undefined;
580
+ };
581
+ author: {
582
+ memberId: number & z.BRAND<"MemberId">;
583
+ username: string;
584
+ profileImageUrl?: string | null | undefined;
585
+ };
586
+ updatedAt: string;
587
+ articleId: number & z.BRAND<"ArticleId">;
588
+ expiresAt: string;
589
+ taggedMembers: {
590
+ memberId: number & z.BRAND<"MemberId">;
591
+ username: string;
592
+ profileImageUrl?: string | null | undefined;
593
+ }[];
594
+ likedByMe: boolean;
595
+ }[];
596
+ meta: {
597
+ page: number;
598
+ size: number;
599
+ totalItems: number;
600
+ totalPages: number;
601
+ hasNext: boolean;
602
+ hasPrevious: boolean;
603
+ };
604
+ }, {
605
+ items: {
606
+ createdAt: string;
607
+ likeCount: number;
608
+ commentCount: number;
609
+ imageUrl: string;
610
+ mealDate: string;
611
+ restaurant: {
612
+ restaurantId: string;
613
+ placeName: string;
614
+ categoryName: string;
615
+ categoryGroupName: string;
616
+ roadAddressName: string;
617
+ addressName: string;
618
+ phone: string | null;
619
+ placeUrl: string | null;
620
+ lat: number;
621
+ lng: number;
622
+ distance?: string | undefined;
623
+ };
624
+ author: {
625
+ memberId: number;
626
+ username: string;
627
+ profileImageUrl?: string | null | undefined;
628
+ };
629
+ updatedAt: string;
630
+ articleId: number;
631
+ expiresAt: string;
632
+ taggedMembers: {
633
+ memberId: number;
634
+ username: string;
635
+ profileImageUrl?: string | null | undefined;
636
+ }[];
637
+ likedByMe: boolean;
638
+ }[];
639
+ meta: {
640
+ page: number;
641
+ size: number;
642
+ totalItems: number;
643
+ totalPages: number;
644
+ hasNext: boolean;
645
+ hasPrevious: boolean;
646
+ };
647
+ }>>;
648
+ readonly byAuthor: EndpointContract<"GET", "/articles/by-author/:authorId", z.ZodObject<{
649
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
650
+ }, "strip", z.ZodTypeAny, {
651
+ memberId: number & z.BRAND<"MemberId">;
652
+ }, {
653
+ memberId: number;
654
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
655
+ items: z.ZodArray<z.ZodObject<{
656
+ articleId: z.ZodBranded<z.ZodNumber, "ArticleId">;
657
+ author: z.ZodObject<{
658
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
659
+ username: z.ZodString;
660
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
661
+ }, "strip", z.ZodTypeAny, {
662
+ memberId: number & z.BRAND<"MemberId">;
663
+ username: string;
664
+ profileImageUrl?: string | null | undefined;
665
+ }, {
666
+ memberId: number;
667
+ username: string;
668
+ profileImageUrl?: string | null | undefined;
669
+ }>;
670
+ imageUrl: z.ZodString;
671
+ mealDate: z.ZodString;
672
+ restaurant: z.ZodObject<{
673
+ restaurantId: z.ZodBranded<z.ZodString, "RestaurantId">;
674
+ placeName: z.ZodString;
675
+ categoryName: z.ZodString;
676
+ categoryGroupName: z.ZodString;
677
+ distance: z.ZodOptional<z.ZodString>;
678
+ roadAddressName: z.ZodString;
679
+ addressName: z.ZodString;
680
+ phone: z.ZodNullable<z.ZodString>;
681
+ placeUrl: z.ZodNullable<z.ZodString>;
682
+ lat: z.ZodNumber;
683
+ lng: z.ZodNumber;
684
+ }, "strip", z.ZodTypeAny, {
685
+ restaurantId: string & z.BRAND<"RestaurantId">;
686
+ placeName: string;
687
+ categoryName: string;
688
+ categoryGroupName: string;
689
+ roadAddressName: string;
690
+ addressName: string;
691
+ phone: string | null;
692
+ placeUrl: string | null;
693
+ lat: number;
694
+ lng: number;
695
+ distance?: string | undefined;
696
+ }, {
697
+ restaurantId: string;
698
+ placeName: string;
699
+ categoryName: string;
700
+ categoryGroupName: string;
701
+ roadAddressName: string;
702
+ addressName: string;
703
+ phone: string | null;
704
+ placeUrl: string | null;
705
+ lat: number;
706
+ lng: number;
707
+ distance?: string | undefined;
708
+ }>;
709
+ createdAt: z.ZodString;
710
+ updatedAt: z.ZodString;
711
+ expiresAt: z.ZodString;
712
+ taggedMembers: z.ZodArray<z.ZodObject<{
713
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
714
+ username: z.ZodString;
715
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
716
+ }, "strip", z.ZodTypeAny, {
717
+ memberId: number & z.BRAND<"MemberId">;
718
+ username: string;
719
+ profileImageUrl?: string | null | undefined;
720
+ }, {
721
+ memberId: number;
722
+ username: string;
723
+ profileImageUrl?: string | null | undefined;
724
+ }>, "many">;
725
+ } & {
726
+ likeCount: z.ZodNumber;
727
+ commentCount: z.ZodNumber;
728
+ likedByMe: z.ZodBoolean;
729
+ }, "strip", z.ZodTypeAny, {
730
+ createdAt: string;
731
+ likeCount: number;
732
+ commentCount: number;
733
+ imageUrl: string;
734
+ mealDate: string;
735
+ restaurant: {
736
+ restaurantId: string & z.BRAND<"RestaurantId">;
737
+ placeName: string;
738
+ categoryName: string;
739
+ categoryGroupName: string;
740
+ roadAddressName: string;
741
+ addressName: string;
742
+ phone: string | null;
743
+ placeUrl: string | null;
744
+ lat: number;
745
+ lng: number;
746
+ distance?: string | undefined;
747
+ };
748
+ author: {
749
+ memberId: number & z.BRAND<"MemberId">;
750
+ username: string;
751
+ profileImageUrl?: string | null | undefined;
752
+ };
753
+ updatedAt: string;
754
+ articleId: number & z.BRAND<"ArticleId">;
755
+ expiresAt: string;
756
+ taggedMembers: {
757
+ memberId: number & z.BRAND<"MemberId">;
758
+ username: string;
759
+ profileImageUrl?: string | null | undefined;
760
+ }[];
761
+ likedByMe: boolean;
762
+ }, {
763
+ createdAt: string;
764
+ likeCount: number;
765
+ commentCount: number;
766
+ imageUrl: string;
767
+ mealDate: string;
768
+ restaurant: {
769
+ restaurantId: string;
770
+ placeName: string;
771
+ categoryName: string;
772
+ categoryGroupName: string;
773
+ roadAddressName: string;
774
+ addressName: string;
775
+ phone: string | null;
776
+ placeUrl: string | null;
777
+ lat: number;
778
+ lng: number;
779
+ distance?: string | undefined;
780
+ };
781
+ author: {
782
+ memberId: number;
783
+ username: string;
784
+ profileImageUrl?: string | null | undefined;
785
+ };
786
+ updatedAt: string;
787
+ articleId: number;
788
+ expiresAt: string;
789
+ taggedMembers: {
790
+ memberId: number;
791
+ username: string;
792
+ profileImageUrl?: string | null | undefined;
793
+ }[];
794
+ likedByMe: boolean;
795
+ }>, "many">;
796
+ meta: z.ZodObject<{
797
+ page: z.ZodNumber;
798
+ size: z.ZodNumber;
799
+ totalItems: z.ZodNumber;
800
+ totalPages: z.ZodNumber;
801
+ hasNext: z.ZodBoolean;
802
+ hasPrevious: z.ZodBoolean;
803
+ }, "strip", z.ZodTypeAny, {
804
+ page: number;
805
+ size: number;
806
+ totalItems: number;
807
+ totalPages: number;
808
+ hasNext: boolean;
809
+ hasPrevious: boolean;
810
+ }, {
811
+ page: number;
812
+ size: number;
813
+ totalItems: number;
814
+ totalPages: number;
815
+ hasNext: boolean;
816
+ hasPrevious: boolean;
817
+ }>;
818
+ }, "strip", z.ZodTypeAny, {
819
+ items: {
820
+ createdAt: string;
821
+ likeCount: number;
822
+ commentCount: number;
823
+ imageUrl: string;
824
+ mealDate: string;
825
+ restaurant: {
826
+ restaurantId: string & z.BRAND<"RestaurantId">;
827
+ placeName: string;
828
+ categoryName: string;
829
+ categoryGroupName: string;
830
+ roadAddressName: string;
831
+ addressName: string;
832
+ phone: string | null;
833
+ placeUrl: string | null;
834
+ lat: number;
835
+ lng: number;
836
+ distance?: string | undefined;
837
+ };
838
+ author: {
839
+ memberId: number & z.BRAND<"MemberId">;
840
+ username: string;
841
+ profileImageUrl?: string | null | undefined;
842
+ };
843
+ updatedAt: string;
844
+ articleId: number & z.BRAND<"ArticleId">;
845
+ expiresAt: string;
846
+ taggedMembers: {
847
+ memberId: number & z.BRAND<"MemberId">;
848
+ username: string;
849
+ profileImageUrl?: string | null | undefined;
850
+ }[];
851
+ likedByMe: boolean;
852
+ }[];
853
+ meta: {
854
+ page: number;
855
+ size: number;
856
+ totalItems: number;
857
+ totalPages: number;
858
+ hasNext: boolean;
859
+ hasPrevious: boolean;
860
+ };
861
+ }, {
862
+ items: {
863
+ createdAt: string;
864
+ likeCount: number;
865
+ commentCount: number;
866
+ imageUrl: string;
867
+ mealDate: string;
868
+ restaurant: {
869
+ restaurantId: string;
870
+ placeName: string;
871
+ categoryName: string;
872
+ categoryGroupName: string;
873
+ roadAddressName: string;
874
+ addressName: string;
875
+ phone: string | null;
876
+ placeUrl: string | null;
877
+ lat: number;
878
+ lng: number;
879
+ distance?: string | undefined;
880
+ };
881
+ author: {
882
+ memberId: number;
883
+ username: string;
884
+ profileImageUrl?: string | null | undefined;
885
+ };
886
+ updatedAt: string;
887
+ articleId: number;
888
+ expiresAt: string;
889
+ taggedMembers: {
890
+ memberId: number;
891
+ username: string;
892
+ profileImageUrl?: string | null | undefined;
893
+ }[];
894
+ likedByMe: boolean;
895
+ }[];
896
+ meta: {
897
+ page: number;
898
+ size: number;
899
+ totalItems: number;
900
+ totalPages: number;
901
+ hasNext: boolean;
902
+ hasPrevious: boolean;
903
+ };
904
+ }>>;
905
+ readonly my: EndpointContract<"GET", "/articles/my", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
906
+ items: z.ZodArray<z.ZodObject<{
907
+ articleId: z.ZodBranded<z.ZodNumber, "ArticleId">;
908
+ author: z.ZodObject<{
909
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
910
+ username: z.ZodString;
911
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
912
+ }, "strip", z.ZodTypeAny, {
913
+ memberId: number & z.BRAND<"MemberId">;
914
+ username: string;
915
+ profileImageUrl?: string | null | undefined;
916
+ }, {
917
+ memberId: number;
918
+ username: string;
919
+ profileImageUrl?: string | null | undefined;
920
+ }>;
921
+ imageUrl: z.ZodString;
922
+ mealDate: z.ZodString;
923
+ restaurant: z.ZodObject<{
924
+ restaurantId: z.ZodBranded<z.ZodString, "RestaurantId">;
925
+ placeName: z.ZodString;
926
+ categoryName: z.ZodString;
927
+ categoryGroupName: z.ZodString;
928
+ distance: z.ZodOptional<z.ZodString>;
929
+ roadAddressName: z.ZodString;
930
+ addressName: z.ZodString;
931
+ phone: z.ZodNullable<z.ZodString>;
932
+ placeUrl: z.ZodNullable<z.ZodString>;
933
+ lat: z.ZodNumber;
934
+ lng: z.ZodNumber;
935
+ }, "strip", z.ZodTypeAny, {
936
+ restaurantId: string & z.BRAND<"RestaurantId">;
937
+ placeName: string;
938
+ categoryName: string;
939
+ categoryGroupName: string;
940
+ roadAddressName: string;
941
+ addressName: string;
942
+ phone: string | null;
943
+ placeUrl: string | null;
944
+ lat: number;
945
+ lng: number;
946
+ distance?: string | undefined;
947
+ }, {
948
+ restaurantId: string;
949
+ placeName: string;
950
+ categoryName: string;
951
+ categoryGroupName: string;
952
+ roadAddressName: string;
953
+ addressName: string;
954
+ phone: string | null;
955
+ placeUrl: string | null;
956
+ lat: number;
957
+ lng: number;
958
+ distance?: string | undefined;
959
+ }>;
960
+ createdAt: z.ZodString;
961
+ updatedAt: z.ZodString;
962
+ expiresAt: z.ZodString;
963
+ taggedMembers: z.ZodArray<z.ZodObject<{
964
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
965
+ username: z.ZodString;
966
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
967
+ }, "strip", z.ZodTypeAny, {
968
+ memberId: number & z.BRAND<"MemberId">;
969
+ username: string;
970
+ profileImageUrl?: string | null | undefined;
971
+ }, {
972
+ memberId: number;
973
+ username: string;
974
+ profileImageUrl?: string | null | undefined;
975
+ }>, "many">;
976
+ } & {
977
+ likeCount: z.ZodNumber;
978
+ commentCount: z.ZodNumber;
979
+ likedByMe: z.ZodBoolean;
980
+ }, "strip", z.ZodTypeAny, {
981
+ createdAt: string;
982
+ likeCount: number;
983
+ commentCount: number;
984
+ imageUrl: string;
985
+ mealDate: string;
986
+ restaurant: {
987
+ restaurantId: string & z.BRAND<"RestaurantId">;
988
+ placeName: string;
989
+ categoryName: string;
990
+ categoryGroupName: string;
991
+ roadAddressName: string;
992
+ addressName: string;
993
+ phone: string | null;
994
+ placeUrl: string | null;
995
+ lat: number;
996
+ lng: number;
997
+ distance?: string | undefined;
998
+ };
999
+ author: {
1000
+ memberId: number & z.BRAND<"MemberId">;
1001
+ username: string;
1002
+ profileImageUrl?: string | null | undefined;
1003
+ };
1004
+ updatedAt: string;
1005
+ articleId: number & z.BRAND<"ArticleId">;
1006
+ expiresAt: string;
1007
+ taggedMembers: {
1008
+ memberId: number & z.BRAND<"MemberId">;
1009
+ username: string;
1010
+ profileImageUrl?: string | null | undefined;
1011
+ }[];
1012
+ likedByMe: boolean;
1013
+ }, {
1014
+ createdAt: string;
1015
+ likeCount: number;
1016
+ commentCount: number;
1017
+ imageUrl: string;
1018
+ mealDate: string;
1019
+ restaurant: {
1020
+ restaurantId: string;
1021
+ placeName: string;
1022
+ categoryName: string;
1023
+ categoryGroupName: string;
1024
+ roadAddressName: string;
1025
+ addressName: string;
1026
+ phone: string | null;
1027
+ placeUrl: string | null;
1028
+ lat: number;
1029
+ lng: number;
1030
+ distance?: string | undefined;
1031
+ };
1032
+ author: {
1033
+ memberId: number;
1034
+ username: string;
1035
+ profileImageUrl?: string | null | undefined;
1036
+ };
1037
+ updatedAt: string;
1038
+ articleId: number;
1039
+ expiresAt: string;
1040
+ taggedMembers: {
1041
+ memberId: number;
1042
+ username: string;
1043
+ profileImageUrl?: string | null | undefined;
1044
+ }[];
1045
+ likedByMe: boolean;
1046
+ }>, "many">;
1047
+ meta: z.ZodObject<{
1048
+ page: z.ZodNumber;
1049
+ size: z.ZodNumber;
1050
+ totalItems: z.ZodNumber;
1051
+ totalPages: z.ZodNumber;
1052
+ hasNext: z.ZodBoolean;
1053
+ hasPrevious: z.ZodBoolean;
1054
+ }, "strip", z.ZodTypeAny, {
1055
+ page: number;
1056
+ size: number;
1057
+ totalItems: number;
1058
+ totalPages: number;
1059
+ hasNext: boolean;
1060
+ hasPrevious: boolean;
1061
+ }, {
1062
+ page: number;
1063
+ size: number;
1064
+ totalItems: number;
1065
+ totalPages: number;
1066
+ hasNext: boolean;
1067
+ hasPrevious: boolean;
1068
+ }>;
1069
+ }, "strip", z.ZodTypeAny, {
1070
+ items: {
1071
+ createdAt: string;
1072
+ likeCount: number;
1073
+ commentCount: number;
1074
+ imageUrl: string;
1075
+ mealDate: string;
1076
+ restaurant: {
1077
+ restaurantId: string & z.BRAND<"RestaurantId">;
1078
+ placeName: string;
1079
+ categoryName: string;
1080
+ categoryGroupName: string;
1081
+ roadAddressName: string;
1082
+ addressName: string;
1083
+ phone: string | null;
1084
+ placeUrl: string | null;
1085
+ lat: number;
1086
+ lng: number;
1087
+ distance?: string | undefined;
1088
+ };
1089
+ author: {
1090
+ memberId: number & z.BRAND<"MemberId">;
1091
+ username: string;
1092
+ profileImageUrl?: string | null | undefined;
1093
+ };
1094
+ updatedAt: string;
1095
+ articleId: number & z.BRAND<"ArticleId">;
1096
+ expiresAt: string;
1097
+ taggedMembers: {
1098
+ memberId: number & z.BRAND<"MemberId">;
1099
+ username: string;
1100
+ profileImageUrl?: string | null | undefined;
1101
+ }[];
1102
+ likedByMe: boolean;
1103
+ }[];
1104
+ meta: {
1105
+ page: number;
1106
+ size: number;
1107
+ totalItems: number;
1108
+ totalPages: number;
1109
+ hasNext: boolean;
1110
+ hasPrevious: boolean;
1111
+ };
1112
+ }, {
1113
+ items: {
1114
+ createdAt: string;
1115
+ likeCount: number;
1116
+ commentCount: number;
1117
+ imageUrl: string;
1118
+ mealDate: string;
1119
+ restaurant: {
1120
+ restaurantId: string;
1121
+ placeName: string;
1122
+ categoryName: string;
1123
+ categoryGroupName: string;
1124
+ roadAddressName: string;
1125
+ addressName: string;
1126
+ phone: string | null;
1127
+ placeUrl: string | null;
1128
+ lat: number;
1129
+ lng: number;
1130
+ distance?: string | undefined;
1131
+ };
1132
+ author: {
1133
+ memberId: number;
1134
+ username: string;
1135
+ profileImageUrl?: string | null | undefined;
1136
+ };
1137
+ updatedAt: string;
1138
+ articleId: number;
1139
+ expiresAt: string;
1140
+ taggedMembers: {
1141
+ memberId: number;
1142
+ username: string;
1143
+ profileImageUrl?: string | null | undefined;
1144
+ }[];
1145
+ likedByMe: boolean;
1146
+ }[];
1147
+ meta: {
1148
+ page: number;
1149
+ size: number;
1150
+ totalItems: number;
1151
+ totalPages: number;
1152
+ hasNext: boolean;
1153
+ hasPrevious: boolean;
1154
+ };
1155
+ }>>;
1156
+ readonly detail: EndpointContract<"GET", "/articles/:articleId", z.ZodObject<{
1157
+ articleId: z.ZodBranded<z.ZodNumber, "ArticleId">;
1158
+ }, "strip", z.ZodTypeAny, {
1159
+ articleId: number & z.BRAND<"ArticleId">;
1160
+ }, {
1161
+ articleId: number;
1162
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
1163
+ articleId: z.ZodBranded<z.ZodNumber, "ArticleId">;
1164
+ author: z.ZodObject<{
1165
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
1166
+ username: z.ZodString;
1167
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1168
+ }, "strip", z.ZodTypeAny, {
1169
+ memberId: number & z.BRAND<"MemberId">;
1170
+ username: string;
1171
+ profileImageUrl?: string | null | undefined;
1172
+ }, {
1173
+ memberId: number;
1174
+ username: string;
1175
+ profileImageUrl?: string | null | undefined;
1176
+ }>;
1177
+ imageUrl: z.ZodString;
1178
+ mealDate: z.ZodString;
1179
+ restaurant: z.ZodObject<{
1180
+ restaurantId: z.ZodBranded<z.ZodString, "RestaurantId">;
1181
+ placeName: z.ZodString;
1182
+ categoryName: z.ZodString;
1183
+ categoryGroupName: z.ZodString;
1184
+ distance: z.ZodOptional<z.ZodString>;
1185
+ roadAddressName: z.ZodString;
1186
+ addressName: z.ZodString;
1187
+ phone: z.ZodNullable<z.ZodString>;
1188
+ placeUrl: z.ZodNullable<z.ZodString>;
1189
+ lat: z.ZodNumber;
1190
+ lng: z.ZodNumber;
1191
+ }, "strip", z.ZodTypeAny, {
1192
+ restaurantId: string & z.BRAND<"RestaurantId">;
1193
+ placeName: string;
1194
+ categoryName: string;
1195
+ categoryGroupName: string;
1196
+ roadAddressName: string;
1197
+ addressName: string;
1198
+ phone: string | null;
1199
+ placeUrl: string | null;
1200
+ lat: number;
1201
+ lng: number;
1202
+ distance?: string | undefined;
1203
+ }, {
1204
+ restaurantId: string;
1205
+ placeName: string;
1206
+ categoryName: string;
1207
+ categoryGroupName: string;
1208
+ roadAddressName: string;
1209
+ addressName: string;
1210
+ phone: string | null;
1211
+ placeUrl: string | null;
1212
+ lat: number;
1213
+ lng: number;
1214
+ distance?: string | undefined;
1215
+ }>;
1216
+ createdAt: z.ZodString;
1217
+ updatedAt: z.ZodString;
1218
+ expiresAt: z.ZodString;
1219
+ taggedMembers: z.ZodArray<z.ZodObject<{
1220
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
1221
+ username: z.ZodString;
1222
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1223
+ }, "strip", z.ZodTypeAny, {
1224
+ memberId: number & z.BRAND<"MemberId">;
1225
+ username: string;
1226
+ profileImageUrl?: string | null | undefined;
1227
+ }, {
1228
+ memberId: number;
1229
+ username: string;
1230
+ profileImageUrl?: string | null | undefined;
1231
+ }>, "many">;
1232
+ } & {
1233
+ likeCount: z.ZodNumber;
1234
+ commentCount: z.ZodNumber;
1235
+ likedByMe: z.ZodBoolean;
1236
+ } & {
1237
+ comments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1238
+ commentId: z.ZodBranded<z.ZodNumber, "CommentId">;
1239
+ author: z.ZodObject<{
1240
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
1241
+ username: z.ZodString;
1242
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1243
+ }, "strip", z.ZodTypeAny, {
1244
+ memberId: number & z.BRAND<"MemberId">;
1245
+ username: string;
1246
+ profileImageUrl?: string | null | undefined;
1247
+ }, {
1248
+ memberId: number;
1249
+ username: string;
1250
+ profileImageUrl?: string | null | undefined;
1251
+ }>;
1252
+ parentCommentId: z.ZodNullable<z.ZodBranded<z.ZodNumber, "CommentId">>;
1253
+ content: z.ZodString;
1254
+ createdAt: z.ZodString;
1255
+ updatedAt: z.ZodString;
1256
+ }, "strip", z.ZodTypeAny, {
1257
+ createdAt: string;
1258
+ content: string;
1259
+ parentCommentId: (number & z.BRAND<"CommentId">) | null;
1260
+ commentId: number & z.BRAND<"CommentId">;
1261
+ author: {
1262
+ memberId: number & z.BRAND<"MemberId">;
1263
+ username: string;
1264
+ profileImageUrl?: string | null | undefined;
1265
+ };
1266
+ updatedAt: string;
1267
+ }, {
1268
+ createdAt: string;
1269
+ content: string;
1270
+ parentCommentId: number | null;
1271
+ commentId: number;
1272
+ author: {
1273
+ memberId: number;
1274
+ username: string;
1275
+ profileImageUrl?: string | null | undefined;
1276
+ };
1277
+ updatedAt: string;
1278
+ }>, "many">>;
1279
+ }, "strip", z.ZodTypeAny, {
1280
+ createdAt: string;
1281
+ likeCount: number;
1282
+ commentCount: number;
1283
+ imageUrl: string;
1284
+ mealDate: string;
1285
+ restaurant: {
1286
+ restaurantId: string & z.BRAND<"RestaurantId">;
1287
+ placeName: string;
1288
+ categoryName: string;
1289
+ categoryGroupName: string;
1290
+ roadAddressName: string;
1291
+ addressName: string;
1292
+ phone: string | null;
1293
+ placeUrl: string | null;
1294
+ lat: number;
1295
+ lng: number;
1296
+ distance?: string | undefined;
1297
+ };
1298
+ author: {
1299
+ memberId: number & z.BRAND<"MemberId">;
1300
+ username: string;
1301
+ profileImageUrl?: string | null | undefined;
1302
+ };
1303
+ updatedAt: string;
1304
+ articleId: number & z.BRAND<"ArticleId">;
1305
+ expiresAt: string;
1306
+ taggedMembers: {
1307
+ memberId: number & z.BRAND<"MemberId">;
1308
+ username: string;
1309
+ profileImageUrl?: string | null | undefined;
1310
+ }[];
1311
+ likedByMe: boolean;
1312
+ comments?: {
1313
+ createdAt: string;
1314
+ content: string;
1315
+ parentCommentId: (number & z.BRAND<"CommentId">) | null;
1316
+ commentId: number & z.BRAND<"CommentId">;
1317
+ author: {
1318
+ memberId: number & z.BRAND<"MemberId">;
1319
+ username: string;
1320
+ profileImageUrl?: string | null | undefined;
1321
+ };
1322
+ updatedAt: string;
1323
+ }[] | undefined;
1324
+ }, {
1325
+ createdAt: string;
1326
+ likeCount: number;
1327
+ commentCount: number;
1328
+ imageUrl: string;
1329
+ mealDate: string;
1330
+ restaurant: {
1331
+ restaurantId: string;
1332
+ placeName: string;
1333
+ categoryName: string;
1334
+ categoryGroupName: string;
1335
+ roadAddressName: string;
1336
+ addressName: string;
1337
+ phone: string | null;
1338
+ placeUrl: string | null;
1339
+ lat: number;
1340
+ lng: number;
1341
+ distance?: string | undefined;
1342
+ };
1343
+ author: {
1344
+ memberId: number;
1345
+ username: string;
1346
+ profileImageUrl?: string | null | undefined;
1347
+ };
1348
+ updatedAt: string;
1349
+ articleId: number;
1350
+ expiresAt: string;
1351
+ taggedMembers: {
1352
+ memberId: number;
1353
+ username: string;
1354
+ profileImageUrl?: string | null | undefined;
1355
+ }[];
1356
+ likedByMe: boolean;
1357
+ comments?: {
1358
+ createdAt: string;
1359
+ content: string;
1360
+ parentCommentId: number | null;
1361
+ commentId: number;
1362
+ author: {
1363
+ memberId: number;
1364
+ username: string;
1365
+ profileImageUrl?: string | null | undefined;
1366
+ };
1367
+ updatedAt: string;
1368
+ }[] | undefined;
1369
+ }>>;
1370
+ readonly create: EndpointContract<"POST", "/articles", z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
1371
+ imageUrl: z.ZodString;
1372
+ mealDate: z.ZodString;
1373
+ restaurant: z.ZodObject<{
1374
+ restaurantId: z.ZodBranded<z.ZodString, "RestaurantId">;
1375
+ placeName: z.ZodString;
1376
+ categoryName: z.ZodString;
1377
+ categoryGroupName: z.ZodString;
1378
+ distance: z.ZodOptional<z.ZodString>;
1379
+ roadAddressName: z.ZodString;
1380
+ addressName: z.ZodString;
1381
+ phone: z.ZodNullable<z.ZodString>;
1382
+ placeUrl: z.ZodNullable<z.ZodString>;
1383
+ lat: z.ZodNumber;
1384
+ lng: z.ZodNumber;
1385
+ }, "strip", z.ZodTypeAny, {
1386
+ restaurantId: string & z.BRAND<"RestaurantId">;
1387
+ placeName: string;
1388
+ categoryName: string;
1389
+ categoryGroupName: string;
1390
+ roadAddressName: string;
1391
+ addressName: string;
1392
+ phone: string | null;
1393
+ placeUrl: string | null;
1394
+ lat: number;
1395
+ lng: number;
1396
+ distance?: string | undefined;
1397
+ }, {
1398
+ restaurantId: string;
1399
+ placeName: string;
1400
+ categoryName: string;
1401
+ categoryGroupName: string;
1402
+ roadAddressName: string;
1403
+ addressName: string;
1404
+ phone: string | null;
1405
+ placeUrl: string | null;
1406
+ lat: number;
1407
+ lng: number;
1408
+ distance?: string | undefined;
1409
+ }>;
1410
+ taggedMemberIds: z.ZodDefault<z.ZodArray<z.ZodBranded<z.ZodNumber, "MemberId">, "many">>;
1411
+ foodAnalysis: z.ZodOptional<z.ZodObject<{
1412
+ code: z.ZodBranded<z.ZodString, "FoodCode">;
1413
+ label: z.ZodBranded<z.ZodString, "FoodLabel">;
1414
+ } & {
1415
+ confidence: z.ZodNumber;
1416
+ tsUtc: z.ZodOptional<z.ZodString>;
1417
+ }, "strip", z.ZodTypeAny, {
1418
+ code: string & z.BRAND<"FoodCode">;
1419
+ label: string & z.BRAND<"FoodLabel">;
1420
+ confidence: number;
1421
+ tsUtc?: string | undefined;
1422
+ }, {
1423
+ code: string;
1424
+ label: string;
1425
+ confidence: number;
1426
+ tsUtc?: string | undefined;
1427
+ }>>;
1428
+ }, "strip", z.ZodTypeAny, {
1429
+ imageUrl: string;
1430
+ mealDate: string;
1431
+ restaurant: {
1432
+ restaurantId: string & z.BRAND<"RestaurantId">;
1433
+ placeName: string;
1434
+ categoryName: string;
1435
+ categoryGroupName: string;
1436
+ roadAddressName: string;
1437
+ addressName: string;
1438
+ phone: string | null;
1439
+ placeUrl: string | null;
1440
+ lat: number;
1441
+ lng: number;
1442
+ distance?: string | undefined;
1443
+ };
1444
+ taggedMemberIds: (number & z.BRAND<"MemberId">)[];
1445
+ foodAnalysis?: {
1446
+ code: string & z.BRAND<"FoodCode">;
1447
+ label: string & z.BRAND<"FoodLabel">;
1448
+ confidence: number;
1449
+ tsUtc?: string | undefined;
1450
+ } | undefined;
1451
+ }, {
1452
+ imageUrl: string;
1453
+ mealDate: string;
1454
+ restaurant: {
1455
+ restaurantId: string;
1456
+ placeName: string;
1457
+ categoryName: string;
1458
+ categoryGroupName: string;
1459
+ roadAddressName: string;
1460
+ addressName: string;
1461
+ phone: string | null;
1462
+ placeUrl: string | null;
1463
+ lat: number;
1464
+ lng: number;
1465
+ distance?: string | undefined;
1466
+ };
1467
+ taggedMemberIds?: number[] | undefined;
1468
+ foodAnalysis?: {
1469
+ code: string;
1470
+ label: string;
1471
+ confidence: number;
1472
+ tsUtc?: string | undefined;
1473
+ } | undefined;
1474
+ }>, z.ZodNull>;
1475
+ readonly createComment: EndpointContract<"POST", "/articles/:articleId/comments", z.ZodObject<{
1476
+ articleId: z.ZodBranded<z.ZodNumber, "ArticleId">;
1477
+ }, "strip", z.ZodTypeAny, {
1478
+ articleId: number & z.BRAND<"ArticleId">;
1479
+ }, {
1480
+ articleId: number;
1481
+ }>, z.ZodUndefined, z.ZodObject<{
1482
+ content: z.ZodString;
1483
+ parentCommentId: z.ZodOptional<z.ZodNullable<z.ZodBranded<z.ZodNumber, "CommentId">>>;
1484
+ }, "strip", z.ZodTypeAny, {
1485
+ content: string;
1486
+ parentCommentId?: (number & z.BRAND<"CommentId">) | null | undefined;
1487
+ }, {
1488
+ content: string;
1489
+ parentCommentId?: number | null | undefined;
1490
+ }>, z.ZodNull>;
1491
+ readonly presignArticleImage: EndpointContract<"POST", "/uploads/presign-article", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
1492
+ key: z.ZodString;
1493
+ putUrl: z.ZodString;
1494
+ cdnUrl: z.ZodString;
1495
+ }, "strip", z.ZodTypeAny, {
1496
+ key: string;
1497
+ putUrl: string;
1498
+ cdnUrl: string;
1499
+ }, {
1500
+ key: string;
1501
+ putUrl: string;
1502
+ cdnUrl: string;
1503
+ }>>;
1504
+ readonly delete: EndpointContract<"DELETE", "/articles/:articleId", z.ZodObject<{
1505
+ articleId: z.ZodBranded<z.ZodNumber, "ArticleId">;
1506
+ }, "strip", z.ZodTypeAny, {
1507
+ articleId: number & z.BRAND<"ArticleId">;
1508
+ }, {
1509
+ articleId: number;
1510
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
1511
+ readonly deleteComment: EndpointContract<"DELETE", "/articles/:articleId/comments/:commentId", z.ZodObject<{
1512
+ articleId: z.ZodBranded<z.ZodNumber, "ArticleId">;
1513
+ } & {
1514
+ commentId: z.ZodBranded<z.ZodNumber, "CommentId">;
1515
+ }, "strip", z.ZodTypeAny, {
1516
+ commentId: number & z.BRAND<"CommentId">;
1517
+ articleId: number & z.BRAND<"ArticleId">;
1518
+ }, {
1519
+ commentId: number;
1520
+ articleId: number;
1521
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
1522
+ };
1523
+ readonly recruits: {
1524
+ readonly list: EndpointContract<"GET", "/recruits", z.ZodUndefined, z.ZodObject<{
1525
+ page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1526
+ size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1527
+ } & {
1528
+ sortBy: z.ZodDefault<z.ZodEnum<["createdAt", "deadline", "participantCount"]>>;
1529
+ direction: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
1530
+ }, "strip", z.ZodTypeAny, {
1531
+ page: number;
1532
+ size: number;
1533
+ sortBy: "createdAt" | "participantCount" | "deadline";
1534
+ direction: "asc" | "desc";
1535
+ }, {
1536
+ page?: number | undefined;
1537
+ size?: number | undefined;
1538
+ sortBy?: "createdAt" | "participantCount" | "deadline" | undefined;
1539
+ direction?: "asc" | "desc" | undefined;
1540
+ }>, z.ZodUndefined, z.ZodArray<z.ZodObject<{
1541
+ targetCount: z.ZodNumber;
1542
+ meetingAt: z.ZodString;
1543
+ location: z.ZodString;
1544
+ message: z.ZodString;
1545
+ recruitId: z.ZodBranded<z.ZodNumber, "RecruitId">;
1546
+ status: z.ZodEnum<["OPEN", "CLOSED", "EXPIRED"]>;
1547
+ createdAt: z.ZodString;
1548
+ expiredAt: z.ZodString;
1549
+ updatedAt: z.ZodString;
1550
+ author: z.ZodObject<{
1551
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
1552
+ username: z.ZodString;
1553
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1554
+ }, "strip", z.ZodTypeAny, {
1555
+ memberId: number & z.BRAND<"MemberId">;
1556
+ username: string;
1557
+ profileImageUrl?: string | null | undefined;
1558
+ }, {
1559
+ memberId: number;
1560
+ username: string;
1561
+ profileImageUrl?: string | null | undefined;
1562
+ }>;
1563
+ participants: z.ZodArray<z.ZodObject<{
1564
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
1565
+ username: z.ZodString;
1566
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1567
+ }, "strip", z.ZodTypeAny, {
1568
+ memberId: number & z.BRAND<"MemberId">;
1569
+ username: string;
1570
+ profileImageUrl?: string | null | undefined;
1571
+ }, {
1572
+ memberId: number;
1573
+ username: string;
1574
+ profileImageUrl?: string | null | undefined;
1575
+ }>, "many">;
1576
+ }, "strip", z.ZodTypeAny, {
1577
+ message: string;
1578
+ status: "OPEN" | "CLOSED" | "EXPIRED";
1579
+ createdAt: string;
1580
+ author: {
1581
+ memberId: number & z.BRAND<"MemberId">;
1582
+ username: string;
1583
+ profileImageUrl?: string | null | undefined;
1584
+ };
1585
+ updatedAt: string;
1586
+ location: string;
1587
+ participants: {
1588
+ memberId: number & z.BRAND<"MemberId">;
1589
+ username: string;
1590
+ profileImageUrl?: string | null | undefined;
1591
+ }[];
1592
+ meetingAt: string;
1593
+ targetCount: number;
1594
+ recruitId: number & z.BRAND<"RecruitId">;
1595
+ expiredAt: string;
1596
+ }, {
1597
+ message: string;
1598
+ status: "OPEN" | "CLOSED" | "EXPIRED";
1599
+ createdAt: string;
1600
+ author: {
1601
+ memberId: number;
1602
+ username: string;
1603
+ profileImageUrl?: string | null | undefined;
1604
+ };
1605
+ updatedAt: string;
1606
+ location: string;
1607
+ participants: {
1608
+ memberId: number;
1609
+ username: string;
1610
+ profileImageUrl?: string | null | undefined;
1611
+ }[];
1612
+ meetingAt: string;
1613
+ targetCount: number;
1614
+ recruitId: number;
1615
+ expiredAt: string;
1616
+ }>, "many">>;
1617
+ readonly create: EndpointContract<"POST", "/recruits", z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
1618
+ targetCount: z.ZodNumber;
1619
+ meetingAt: z.ZodString;
1620
+ location: z.ZodString;
1621
+ message: z.ZodString;
1622
+ }, "strip", z.ZodTypeAny, {
1623
+ message: string;
1624
+ location: string;
1625
+ meetingAt: string;
1626
+ targetCount: number;
1627
+ }, {
1628
+ message: string;
1629
+ location: string;
1630
+ meetingAt: string;
1631
+ targetCount: number;
1632
+ }>, z.ZodObject<{
1633
+ recruitId: z.ZodBranded<z.ZodNumber, "RecruitId">;
1634
+ }, "strip", z.ZodTypeAny, {
1635
+ recruitId: number & z.BRAND<"RecruitId">;
1636
+ }, {
1637
+ recruitId: number;
1638
+ }>>;
1639
+ readonly join: EndpointContract<"POST", "/recruits/:recruitId/join", z.ZodObject<{
1640
+ recruitId: z.ZodBranded<z.ZodNumber, "RecruitId">;
1641
+ }, "strip", z.ZodTypeAny, {
1642
+ recruitId: number & z.BRAND<"RecruitId">;
1643
+ }, {
1644
+ recruitId: number;
1645
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
1646
+ readonly close: EndpointContract<"PATCH", "/recruits/:recruitId/close", z.ZodObject<{
1647
+ recruitId: z.ZodBranded<z.ZodNumber, "RecruitId">;
1648
+ }, "strip", z.ZodTypeAny, {
1649
+ recruitId: number & z.BRAND<"RecruitId">;
1650
+ }, {
1651
+ recruitId: number;
1652
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
1653
+ };
1654
+ readonly invitations: {
1655
+ readonly list: EndpointContract<"GET", "/invitations", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodArray<z.ZodObject<{
1656
+ invitationId: z.ZodBranded<z.ZodNumber, "InvitationId">;
1657
+ inviterName: z.ZodString;
1658
+ inviterProfileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1659
+ }, "strip", z.ZodTypeAny, {
1660
+ invitationId: number & z.BRAND<"InvitationId">;
1661
+ inviterName: string;
1662
+ inviterProfileImageUrl?: string | null | undefined;
1663
+ }, {
1664
+ invitationId: number;
1665
+ inviterName: string;
1666
+ inviterProfileImageUrl?: string | null | undefined;
1667
+ }>, "many">>;
1668
+ readonly send: EndpointContract<"POST", "/invitations", z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
1669
+ inviteeId: z.ZodBranded<z.ZodNumber, "MemberId">;
1670
+ message: z.ZodString;
1671
+ }, "strip", z.ZodTypeAny, {
1672
+ message: string;
1673
+ inviteeId: number & z.BRAND<"MemberId">;
1674
+ }, {
1675
+ message: string;
1676
+ inviteeId: number;
1677
+ }>, z.ZodObject<{
1678
+ invitationId: z.ZodBranded<z.ZodNumber, "InvitationId">;
1679
+ }, "strip", z.ZodTypeAny, {
1680
+ invitationId: number & z.BRAND<"InvitationId">;
1681
+ }, {
1682
+ invitationId: number;
1683
+ }>>;
1684
+ readonly accept: EndpointContract<"POST", "/invitations/:invitationId/accept", z.ZodObject<{
1685
+ invitationId: z.ZodBranded<z.ZodNumber, "InvitationId">;
1686
+ }, "strip", z.ZodTypeAny, {
1687
+ invitationId: number & z.BRAND<"InvitationId">;
1688
+ }, {
1689
+ invitationId: number;
1690
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
1691
+ invitationId: z.ZodBranded<z.ZodNumber, "InvitationId">;
1692
+ room: z.ZodObject<{
1693
+ type: z.ZodLiteral<"invitation">;
1694
+ roomId: z.ZodBranded<z.ZodString, "RoomId">;
1695
+ }, "strip", z.ZodTypeAny, {
1696
+ type: "invitation";
1697
+ roomId: string & z.BRAND<"RoomId">;
1698
+ }, {
1699
+ type: "invitation";
1700
+ roomId: string;
1701
+ }>;
1702
+ }, "strip", z.ZodTypeAny, {
1703
+ invitationId: number & z.BRAND<"InvitationId">;
1704
+ room: {
1705
+ type: "invitation";
1706
+ roomId: string & z.BRAND<"RoomId">;
1707
+ };
1708
+ }, {
1709
+ invitationId: number;
1710
+ room: {
1711
+ type: "invitation";
1712
+ roomId: string;
1713
+ };
1714
+ }>>;
1715
+ readonly reject: EndpointContract<"POST", "/invitations/:invitationId/reject", z.ZodObject<{
1716
+ invitationId: z.ZodBranded<z.ZodNumber, "InvitationId">;
1717
+ }, "strip", z.ZodTypeAny, {
1718
+ invitationId: number & z.BRAND<"InvitationId">;
1719
+ }, {
1720
+ invitationId: number;
1721
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
1722
+ };
1723
+ readonly plans: {
1724
+ readonly list: EndpointContract<"GET", "/plans", z.ZodUndefined, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>, z.ZodUndefined, z.ZodArray<z.ZodObject<{
1725
+ planId: z.ZodBranded<z.ZodNumber, "PlanId">;
1726
+ meetingAt: z.ZodString;
1727
+ location: z.ZodNullable<z.ZodObject<{
1728
+ locationId: z.ZodBranded<z.ZodString, "LocationId">;
1729
+ placeName: z.ZodString;
1730
+ lat: z.ZodNumber;
1731
+ lng: z.ZodNumber;
1732
+ address: z.ZodString;
1733
+ }, "strip", z.ZodTypeAny, {
1734
+ placeName: string;
1735
+ lat: number;
1736
+ lng: number;
1737
+ locationId: string & z.BRAND<"LocationId">;
1738
+ address: string;
1739
+ }, {
1740
+ placeName: string;
1741
+ lat: number;
1742
+ lng: number;
1743
+ locationId: string;
1744
+ address: string;
1745
+ }>>;
1746
+ restaurant: z.ZodNullable<z.ZodObject<{
1747
+ restaurantId: z.ZodBranded<z.ZodString, "RestaurantId">;
1748
+ placeName: z.ZodString;
1749
+ categoryName: z.ZodString;
1750
+ categoryGroupName: z.ZodString;
1751
+ distance: z.ZodOptional<z.ZodString>;
1752
+ roadAddressName: z.ZodString;
1753
+ addressName: z.ZodString;
1754
+ phone: z.ZodNullable<z.ZodString>;
1755
+ placeUrl: z.ZodNullable<z.ZodString>;
1756
+ lat: z.ZodNumber;
1757
+ lng: z.ZodNumber;
1758
+ }, "strip", z.ZodTypeAny, {
1759
+ restaurantId: string & z.BRAND<"RestaurantId">;
1760
+ placeName: string;
1761
+ categoryName: string;
1762
+ categoryGroupName: string;
1763
+ roadAddressName: string;
1764
+ addressName: string;
1765
+ phone: string | null;
1766
+ placeUrl: string | null;
1767
+ lat: number;
1768
+ lng: number;
1769
+ distance?: string | undefined;
1770
+ }, {
1771
+ restaurantId: string;
1772
+ placeName: string;
1773
+ categoryName: string;
1774
+ categoryGroupName: string;
1775
+ roadAddressName: string;
1776
+ addressName: string;
1777
+ phone: string | null;
1778
+ placeUrl: string | null;
1779
+ lat: number;
1780
+ lng: number;
1781
+ distance?: string | undefined;
1782
+ }>>;
1783
+ author: z.ZodObject<{
1784
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
1785
+ username: z.ZodString;
1786
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1787
+ }, "strip", z.ZodTypeAny, {
1788
+ memberId: number & z.BRAND<"MemberId">;
1789
+ username: string;
1790
+ profileImageUrl?: string | null | undefined;
1791
+ }, {
1792
+ memberId: number;
1793
+ username: string;
1794
+ profileImageUrl?: string | null | undefined;
1795
+ }>;
1796
+ participants: z.ZodArray<z.ZodObject<{
1797
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
1798
+ username: z.ZodString;
1799
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1800
+ }, "strip", z.ZodTypeAny, {
1801
+ memberId: number & z.BRAND<"MemberId">;
1802
+ username: string;
1803
+ profileImageUrl?: string | null | undefined;
1804
+ }, {
1805
+ memberId: number;
1806
+ username: string;
1807
+ profileImageUrl?: string | null | undefined;
1808
+ }>, "many">;
1809
+ status: z.ZodEnum<["PLANNING", "COMPLETED"]>;
1810
+ type: z.ZodEnum<["RECRUIT", "INVITATION"]>;
1811
+ createdAt: z.ZodString;
1812
+ updatedAt: z.ZodString;
1813
+ }, "strip", z.ZodTypeAny, {
1814
+ type: "RECRUIT" | "INVITATION";
1815
+ status: "PLANNING" | "COMPLETED";
1816
+ createdAt: string;
1817
+ restaurant: {
1818
+ restaurantId: string & z.BRAND<"RestaurantId">;
1819
+ placeName: string;
1820
+ categoryName: string;
1821
+ categoryGroupName: string;
1822
+ roadAddressName: string;
1823
+ addressName: string;
1824
+ phone: string | null;
1825
+ placeUrl: string | null;
1826
+ lat: number;
1827
+ lng: number;
1828
+ distance?: string | undefined;
1829
+ } | null;
1830
+ author: {
1831
+ memberId: number & z.BRAND<"MemberId">;
1832
+ username: string;
1833
+ profileImageUrl?: string | null | undefined;
1834
+ };
1835
+ updatedAt: string;
1836
+ location: {
1837
+ placeName: string;
1838
+ lat: number;
1839
+ lng: number;
1840
+ locationId: string & z.BRAND<"LocationId">;
1841
+ address: string;
1842
+ } | null;
1843
+ participants: {
1844
+ memberId: number & z.BRAND<"MemberId">;
1845
+ username: string;
1846
+ profileImageUrl?: string | null | undefined;
1847
+ }[];
1848
+ planId: number & z.BRAND<"PlanId">;
1849
+ meetingAt: string;
1850
+ }, {
1851
+ type: "RECRUIT" | "INVITATION";
1852
+ status: "PLANNING" | "COMPLETED";
1853
+ createdAt: string;
1854
+ restaurant: {
1855
+ restaurantId: string;
1856
+ placeName: string;
1857
+ categoryName: string;
1858
+ categoryGroupName: string;
1859
+ roadAddressName: string;
1860
+ addressName: string;
1861
+ phone: string | null;
1862
+ placeUrl: string | null;
1863
+ lat: number;
1864
+ lng: number;
1865
+ distance?: string | undefined;
1866
+ } | null;
1867
+ author: {
1868
+ memberId: number;
1869
+ username: string;
1870
+ profileImageUrl?: string | null | undefined;
1871
+ };
1872
+ updatedAt: string;
1873
+ location: {
1874
+ placeName: string;
1875
+ lat: number;
1876
+ lng: number;
1877
+ locationId: string;
1878
+ address: string;
1879
+ } | null;
1880
+ participants: {
1881
+ memberId: number;
1882
+ username: string;
1883
+ profileImageUrl?: string | null | undefined;
1884
+ }[];
1885
+ planId: number;
1886
+ meetingAt: string;
1887
+ }>, "many">>;
1888
+ readonly detail: EndpointContract<"GET", "/plans/:planId", z.ZodObject<{
1889
+ planId: z.ZodBranded<z.ZodNumber, "PlanId">;
1890
+ }, "strip", z.ZodTypeAny, {
1891
+ planId: number & z.BRAND<"PlanId">;
1892
+ }, {
1893
+ planId: number;
1894
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
1895
+ planId: z.ZodBranded<z.ZodNumber, "PlanId">;
1896
+ meetingAt: z.ZodString;
1897
+ location: z.ZodNullable<z.ZodObject<{
1898
+ locationId: z.ZodBranded<z.ZodString, "LocationId">;
1899
+ placeName: z.ZodString;
1900
+ lat: z.ZodNumber;
1901
+ lng: z.ZodNumber;
1902
+ address: z.ZodString;
1903
+ }, "strip", z.ZodTypeAny, {
1904
+ placeName: string;
1905
+ lat: number;
1906
+ lng: number;
1907
+ locationId: string & z.BRAND<"LocationId">;
1908
+ address: string;
1909
+ }, {
1910
+ placeName: string;
1911
+ lat: number;
1912
+ lng: number;
1913
+ locationId: string;
1914
+ address: string;
1915
+ }>>;
1916
+ restaurant: z.ZodNullable<z.ZodObject<{
1917
+ restaurantId: z.ZodBranded<z.ZodString, "RestaurantId">;
1918
+ placeName: z.ZodString;
1919
+ categoryName: z.ZodString;
1920
+ categoryGroupName: z.ZodString;
1921
+ distance: z.ZodOptional<z.ZodString>;
1922
+ roadAddressName: z.ZodString;
1923
+ addressName: z.ZodString;
1924
+ phone: z.ZodNullable<z.ZodString>;
1925
+ placeUrl: z.ZodNullable<z.ZodString>;
1926
+ lat: z.ZodNumber;
1927
+ lng: z.ZodNumber;
1928
+ }, "strip", z.ZodTypeAny, {
1929
+ restaurantId: string & z.BRAND<"RestaurantId">;
1930
+ placeName: string;
1931
+ categoryName: string;
1932
+ categoryGroupName: string;
1933
+ roadAddressName: string;
1934
+ addressName: string;
1935
+ phone: string | null;
1936
+ placeUrl: string | null;
1937
+ lat: number;
1938
+ lng: number;
1939
+ distance?: string | undefined;
1940
+ }, {
1941
+ restaurantId: string;
1942
+ placeName: string;
1943
+ categoryName: string;
1944
+ categoryGroupName: string;
1945
+ roadAddressName: string;
1946
+ addressName: string;
1947
+ phone: string | null;
1948
+ placeUrl: string | null;
1949
+ lat: number;
1950
+ lng: number;
1951
+ distance?: string | undefined;
1952
+ }>>;
1953
+ author: z.ZodObject<{
1954
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
1955
+ username: z.ZodString;
1956
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1957
+ }, "strip", z.ZodTypeAny, {
1958
+ memberId: number & z.BRAND<"MemberId">;
1959
+ username: string;
1960
+ profileImageUrl?: string | null | undefined;
1961
+ }, {
1962
+ memberId: number;
1963
+ username: string;
1964
+ profileImageUrl?: string | null | undefined;
1965
+ }>;
1966
+ participants: z.ZodArray<z.ZodObject<{
1967
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
1968
+ username: z.ZodString;
1969
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1970
+ }, "strip", z.ZodTypeAny, {
1971
+ memberId: number & z.BRAND<"MemberId">;
1972
+ username: string;
1973
+ profileImageUrl?: string | null | undefined;
1974
+ }, {
1975
+ memberId: number;
1976
+ username: string;
1977
+ profileImageUrl?: string | null | undefined;
1978
+ }>, "many">;
1979
+ status: z.ZodEnum<["PLANNING", "COMPLETED"]>;
1980
+ type: z.ZodEnum<["RECRUIT", "INVITATION"]>;
1981
+ createdAt: z.ZodString;
1982
+ updatedAt: z.ZodString;
1983
+ }, "strip", z.ZodTypeAny, {
1984
+ type: "RECRUIT" | "INVITATION";
1985
+ status: "PLANNING" | "COMPLETED";
1986
+ createdAt: string;
1987
+ restaurant: {
1988
+ restaurantId: string & z.BRAND<"RestaurantId">;
1989
+ placeName: string;
1990
+ categoryName: string;
1991
+ categoryGroupName: string;
1992
+ roadAddressName: string;
1993
+ addressName: string;
1994
+ phone: string | null;
1995
+ placeUrl: string | null;
1996
+ lat: number;
1997
+ lng: number;
1998
+ distance?: string | undefined;
1999
+ } | null;
2000
+ author: {
2001
+ memberId: number & z.BRAND<"MemberId">;
2002
+ username: string;
2003
+ profileImageUrl?: string | null | undefined;
2004
+ };
2005
+ updatedAt: string;
2006
+ location: {
2007
+ placeName: string;
2008
+ lat: number;
2009
+ lng: number;
2010
+ locationId: string & z.BRAND<"LocationId">;
2011
+ address: string;
2012
+ } | null;
2013
+ participants: {
2014
+ memberId: number & z.BRAND<"MemberId">;
2015
+ username: string;
2016
+ profileImageUrl?: string | null | undefined;
2017
+ }[];
2018
+ planId: number & z.BRAND<"PlanId">;
2019
+ meetingAt: string;
2020
+ }, {
2021
+ type: "RECRUIT" | "INVITATION";
2022
+ status: "PLANNING" | "COMPLETED";
2023
+ createdAt: string;
2024
+ restaurant: {
2025
+ restaurantId: string;
2026
+ placeName: string;
2027
+ categoryName: string;
2028
+ categoryGroupName: string;
2029
+ roadAddressName: string;
2030
+ addressName: string;
2031
+ phone: string | null;
2032
+ placeUrl: string | null;
2033
+ lat: number;
2034
+ lng: number;
2035
+ distance?: string | undefined;
2036
+ } | null;
2037
+ author: {
2038
+ memberId: number;
2039
+ username: string;
2040
+ profileImageUrl?: string | null | undefined;
2041
+ };
2042
+ updatedAt: string;
2043
+ location: {
2044
+ placeName: string;
2045
+ lat: number;
2046
+ lng: number;
2047
+ locationId: string;
2048
+ address: string;
2049
+ } | null;
2050
+ participants: {
2051
+ memberId: number;
2052
+ username: string;
2053
+ profileImageUrl?: string | null | undefined;
2054
+ }[];
2055
+ planId: number;
2056
+ meetingAt: string;
2057
+ }>>;
2058
+ readonly cancel: EndpointContract<"PATCH", "/plans/:planId/cancel", z.ZodObject<{
2059
+ planId: z.ZodBranded<z.ZodNumber, "PlanId">;
2060
+ }, "strip", z.ZodTypeAny, {
2061
+ planId: number & z.BRAND<"PlanId">;
2062
+ }, {
2063
+ planId: number;
2064
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
2065
+ };
2066
+ readonly friends: {
2067
+ readonly list: EndpointContract<"GET", "/friends", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodArray<z.ZodObject<{
2068
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
2069
+ username: z.ZodString;
2070
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2071
+ } & {
2072
+ friendSince: z.ZodString;
2073
+ }, "strip", z.ZodTypeAny, {
2074
+ memberId: number & z.BRAND<"MemberId">;
2075
+ username: string;
2076
+ friendSince: string;
2077
+ profileImageUrl?: string | null | undefined;
2078
+ }, {
2079
+ memberId: number;
2080
+ username: string;
2081
+ friendSince: string;
2082
+ profileImageUrl?: string | null | undefined;
2083
+ }>, "many">>;
2084
+ readonly blockList: EndpointContract<"GET", "/friends/blocks", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodArray<z.ZodObject<{
2085
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
2086
+ username: z.ZodString;
2087
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2088
+ } & {
2089
+ blockedAt: z.ZodString;
2090
+ }, "strip", z.ZodTypeAny, {
2091
+ memberId: number & z.BRAND<"MemberId">;
2092
+ username: string;
2093
+ blockedAt: string;
2094
+ profileImageUrl?: string | null | undefined;
2095
+ }, {
2096
+ memberId: number;
2097
+ username: string;
2098
+ blockedAt: string;
2099
+ profileImageUrl?: string | null | undefined;
2100
+ }>, "many">>;
2101
+ readonly incomingRequest: EndpointContract<"GET", "/friends/requests/incoming", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodArray<z.ZodObject<{
2102
+ requestId: z.ZodBranded<z.ZodNumber, "FriendRequestId">;
2103
+ requester: z.ZodObject<{
2104
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
2105
+ username: z.ZodString;
2106
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2107
+ }, "strip", z.ZodTypeAny, {
2108
+ memberId: number & z.BRAND<"MemberId">;
2109
+ username: string;
2110
+ profileImageUrl?: string | null | undefined;
2111
+ }, {
2112
+ memberId: number;
2113
+ username: string;
2114
+ profileImageUrl?: string | null | undefined;
2115
+ }>;
2116
+ recipient: z.ZodObject<{
2117
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
2118
+ username: z.ZodString;
2119
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2120
+ }, "strip", z.ZodTypeAny, {
2121
+ memberId: number & z.BRAND<"MemberId">;
2122
+ username: string;
2123
+ profileImageUrl?: string | null | undefined;
2124
+ }, {
2125
+ memberId: number;
2126
+ username: string;
2127
+ profileImageUrl?: string | null | undefined;
2128
+ }>;
2129
+ status: z.ZodEnum<["PENDING", "ACCEPTED", "REJECTED", "CANCELED"]>;
2130
+ requestedAt: z.ZodString;
2131
+ }, "strip", z.ZodTypeAny, {
2132
+ status: "PENDING" | "ACCEPTED" | "REJECTED" | "CANCELED";
2133
+ requestId: number & z.BRAND<"FriendRequestId">;
2134
+ requester: {
2135
+ memberId: number & z.BRAND<"MemberId">;
2136
+ username: string;
2137
+ profileImageUrl?: string | null | undefined;
2138
+ };
2139
+ recipient: {
2140
+ memberId: number & z.BRAND<"MemberId">;
2141
+ username: string;
2142
+ profileImageUrl?: string | null | undefined;
2143
+ };
2144
+ requestedAt: string;
2145
+ }, {
2146
+ status: "PENDING" | "ACCEPTED" | "REJECTED" | "CANCELED";
2147
+ requestId: number;
2148
+ requester: {
2149
+ memberId: number;
2150
+ username: string;
2151
+ profileImageUrl?: string | null | undefined;
2152
+ };
2153
+ recipient: {
2154
+ memberId: number;
2155
+ username: string;
2156
+ profileImageUrl?: string | null | undefined;
2157
+ };
2158
+ requestedAt: string;
2159
+ }>, "many">>;
2160
+ readonly outgoingRequest: EndpointContract<"GET", "/friends/requests/outgoint", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodArray<z.ZodObject<{
2161
+ requestId: z.ZodBranded<z.ZodNumber, "FriendRequestId">;
2162
+ requester: z.ZodObject<{
2163
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
2164
+ username: z.ZodString;
2165
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2166
+ }, "strip", z.ZodTypeAny, {
2167
+ memberId: number & z.BRAND<"MemberId">;
2168
+ username: string;
2169
+ profileImageUrl?: string | null | undefined;
2170
+ }, {
2171
+ memberId: number;
2172
+ username: string;
2173
+ profileImageUrl?: string | null | undefined;
2174
+ }>;
2175
+ recipient: z.ZodObject<{
2176
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
2177
+ username: z.ZodString;
2178
+ profileImageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2179
+ }, "strip", z.ZodTypeAny, {
2180
+ memberId: number & z.BRAND<"MemberId">;
2181
+ username: string;
2182
+ profileImageUrl?: string | null | undefined;
2183
+ }, {
2184
+ memberId: number;
2185
+ username: string;
2186
+ profileImageUrl?: string | null | undefined;
2187
+ }>;
2188
+ status: z.ZodEnum<["PENDING", "ACCEPTED", "REJECTED", "CANCELED"]>;
2189
+ requestedAt: z.ZodString;
2190
+ }, "strip", z.ZodTypeAny, {
2191
+ status: "PENDING" | "ACCEPTED" | "REJECTED" | "CANCELED";
2192
+ requestId: number & z.BRAND<"FriendRequestId">;
2193
+ requester: {
2194
+ memberId: number & z.BRAND<"MemberId">;
2195
+ username: string;
2196
+ profileImageUrl?: string | null | undefined;
2197
+ };
2198
+ recipient: {
2199
+ memberId: number & z.BRAND<"MemberId">;
2200
+ username: string;
2201
+ profileImageUrl?: string | null | undefined;
2202
+ };
2203
+ requestedAt: string;
2204
+ }, {
2205
+ status: "PENDING" | "ACCEPTED" | "REJECTED" | "CANCELED";
2206
+ requestId: number;
2207
+ requester: {
2208
+ memberId: number;
2209
+ username: string;
2210
+ profileImageUrl?: string | null | undefined;
2211
+ };
2212
+ recipient: {
2213
+ memberId: number;
2214
+ username: string;
2215
+ profileImageUrl?: string | null | undefined;
2216
+ };
2217
+ requestedAt: string;
2218
+ }>, "many">>;
2219
+ readonly sendRequest: EndpointContract<"POST", "/friends/requests/:memberId", z.ZodObject<{
2220
+ requestId: z.ZodBranded<z.ZodNumber, "FriendRequestId">;
2221
+ }, "strip", z.ZodTypeAny, {
2222
+ requestId: number & z.BRAND<"FriendRequestId">;
2223
+ }, {
2224
+ requestId: number;
2225
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
2226
+ readonly acceptRequest: EndpointContract<"POST", "/friends/requests/:requestId/accept", z.ZodObject<{
2227
+ requestId: z.ZodBranded<z.ZodNumber, "FriendRequestId">;
2228
+ }, "strip", z.ZodTypeAny, {
2229
+ requestId: number & z.BRAND<"FriendRequestId">;
2230
+ }, {
2231
+ requestId: number;
2232
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
2233
+ readonly rejectRequest: EndpointContract<"POST", "/friends/requests/:requestId/reject", z.ZodObject<{
2234
+ requestId: z.ZodBranded<z.ZodNumber, "FriendRequestId">;
2235
+ }, "strip", z.ZodTypeAny, {
2236
+ requestId: number & z.BRAND<"FriendRequestId">;
2237
+ }, {
2238
+ requestId: number;
2239
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
2240
+ readonly block: EndpointContract<"POST", "/friends/blocks/:memberId", z.ZodObject<{
2241
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
2242
+ }, "strip", z.ZodTypeAny, {
2243
+ memberId: number & z.BRAND<"MemberId">;
2244
+ }, {
2245
+ memberId: number;
2246
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
2247
+ readonly cancelRequest: EndpointContract<"DELETE", "/friends/requests/:requestId", z.ZodObject<{
2248
+ requestId: z.ZodBranded<z.ZodNumber, "FriendRequestId">;
2249
+ }, "strip", z.ZodTypeAny, {
2250
+ requestId: number & z.BRAND<"FriendRequestId">;
2251
+ }, {
2252
+ requestId: number;
2253
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
2254
+ readonly unblock: EndpointContract<"DELETE", "/friends/blocks/:memberId", z.ZodObject<{
2255
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
2256
+ }, "strip", z.ZodTypeAny, {
2257
+ memberId: number & z.BRAND<"MemberId">;
2258
+ }, {
2259
+ memberId: number;
2260
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
2261
+ readonly unfriend: EndpointContract<"DELETE", "/friends/:memberId", z.ZodObject<{
2262
+ memberId: z.ZodBranded<z.ZodNumber, "MemberId">;
2263
+ }, "strip", z.ZodTypeAny, {
2264
+ memberId: number & z.BRAND<"MemberId">;
2265
+ }, {
2266
+ memberId: number;
2267
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
2268
+ };
2269
+ readonly coupons: {
2270
+ readonly list: EndpointContract<"GET", "/coupons", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodArray<z.ZodObject<{
2271
+ couponId: z.ZodBranded<z.ZodNumber, "CouponId">;
2272
+ title: z.ZodString;
2273
+ shopName: z.ZodString;
2274
+ type: z.ZodEnum<["DISCOUNT", "SERVICE"]>;
2275
+ condition: z.ZodString;
2276
+ expiresAt: z.ZodString;
2277
+ used: z.ZodBoolean;
2278
+ thumbnailUrl: z.ZodString;
2279
+ }, "strip", z.ZodTypeAny, {
2280
+ type: "DISCOUNT" | "SERVICE";
2281
+ expiresAt: string;
2282
+ used: boolean;
2283
+ couponId: number & z.BRAND<"CouponId">;
2284
+ title: string;
2285
+ shopName: string;
2286
+ condition: string;
2287
+ thumbnailUrl: string;
2288
+ }, {
2289
+ type: "DISCOUNT" | "SERVICE";
2290
+ expiresAt: string;
2291
+ used: boolean;
2292
+ couponId: number;
2293
+ title: string;
2294
+ shopName: string;
2295
+ condition: string;
2296
+ thumbnailUrl: string;
2297
+ }>, "many">>;
2298
+ readonly use: EndpointContract<"PATCH", "/coupons/:couponId/use", z.ZodObject<{
2299
+ couponId: z.ZodBranded<z.ZodNumber, "CouponId">;
2300
+ }, "strip", z.ZodTypeAny, {
2301
+ couponId: number & z.BRAND<"CouponId">;
2302
+ }, {
2303
+ couponId: number;
2304
+ }>, z.ZodUndefined, z.ZodUndefined, z.ZodNull>;
2305
+ };
2306
+ readonly challenges: {
2307
+ readonly status: EndpointContract<"GET", "/challenges/status", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
2308
+ count: z.ZodNumber;
2309
+ }, "strip", z.ZodTypeAny, {
2310
+ count: number;
2311
+ }, {
2312
+ count: number;
2313
+ }>>;
2314
+ readonly claimReward: EndpointContract<"POST", "/challenges/rewards", z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
2315
+ type: z.ZodEnum<["WEEK", "MONTH"]>;
2316
+ }, "strip", z.ZodTypeAny, {
2317
+ type: "WEEK" | "MONTH";
2318
+ }, {
2319
+ type: "WEEK" | "MONTH";
2320
+ }>, z.ZodNull>;
2321
+ };
2322
+ readonly referrals: {
2323
+ readonly list: EndpointContract<"GET", "/referrals", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodArray<z.ZodObject<{
2324
+ code: z.ZodBranded<z.ZodString, "ReferralCode">;
2325
+ createdAt: z.ZodString;
2326
+ expiresAt: z.ZodString;
2327
+ used: z.ZodBoolean;
2328
+ usedByMemberId: z.ZodNullable<z.ZodBranded<z.ZodNumber, "MemberId">>;
2329
+ usedByUsername: z.ZodNullable<z.ZodString>;
2330
+ }, "strip", z.ZodTypeAny, {
2331
+ code: string & z.BRAND<"ReferralCode">;
2332
+ createdAt: string;
2333
+ expiresAt: string;
2334
+ used: boolean;
2335
+ usedByMemberId: (number & z.BRAND<"MemberId">) | null;
2336
+ usedByUsername: string | null;
2337
+ }, {
2338
+ code: string;
2339
+ createdAt: string;
2340
+ expiresAt: string;
2341
+ used: boolean;
2342
+ usedByMemberId: number | null;
2343
+ usedByUsername: string | null;
2344
+ }>, "many">>;
2345
+ readonly create: EndpointContract<"POST", "/referrals", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
2346
+ code: z.ZodBranded<z.ZodString, "ReferralCode">;
2347
+ link: z.ZodString;
2348
+ expiresAt: z.ZodString;
2349
+ }, "strip", z.ZodTypeAny, {
2350
+ code: string & z.BRAND<"ReferralCode">;
2351
+ expiresAt: string;
2352
+ link: string;
2353
+ }, {
2354
+ code: string;
2355
+ expiresAt: string;
2356
+ link: string;
2357
+ }>>;
2358
+ readonly redeem: EndpointContract<"POST", "/referrals/redeem", z.ZodUndefined, z.ZodUndefined, z.ZodObject<{
2359
+ code: z.ZodBranded<z.ZodString, "ReferralCode">;
2360
+ }, "strip", z.ZodTypeAny, {
2361
+ code: string & z.BRAND<"ReferralCode">;
2362
+ }, {
2363
+ code: string;
2364
+ }>, z.ZodNull>;
2365
+ };
2366
+ readonly room: {};
2367
+ readonly health: {
2368
+ readonly healthCheck: EndpointContract<"GET", "/", z.ZodUndefined, z.ZodUndefined, z.ZodUndefined, z.ZodString>;
2369
+ };
2370
+ };
2371
+ type ApiContract = typeof apiContract;
2372
+ type ApiDomain = keyof ApiContract;
2373
+
2374
+ declare const ISODateStringSchema: z.ZodString;
2375
+ declare const ISODateTimeStringSchema: z.ZodString;
2376
+ declare const TimeHHmmStringSchema: z.ZodString;
2377
+
2378
+ type ISODateString = z.infer<typeof ISODateStringSchema>;
2379
+ type ISODateTimeString = z.infer<typeof ISODateTimeStringSchema>;
2380
+ type TimeHHmmString = z.infer<typeof TimeHHmmStringSchema>;
2381
+
2382
+ type HttpMethod = "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
2383
+ declare const NoBodySchema: z.ZodUndefined;
2384
+ declare const NoQuerySchema: z.ZodUndefined;
2385
+ declare const NoParamsSchema: z.ZodUndefined;
2386
+ interface EndpointContract<TMethod extends HttpMethod, TPath extends string, TPathParams extends z.ZodTypeAny, TQuery extends z.ZodTypeAny, TBody extends z.ZodTypeAny, TResponse extends z.ZodTypeAny> {
2387
+ readonly method: TMethod;
2388
+ readonly path: TPath;
2389
+ readonly pathParams: TPathParams;
2390
+ readonly query: TQuery;
2391
+ readonly body: TBody;
2392
+ readonly response: TResponse;
2393
+ }
2394
+ declare const endpoint: <TMethod extends HttpMethod, TPath extends string, TPathParams extends z.ZodTypeAny = typeof NoParamsSchema, TQuery extends z.ZodTypeAny = typeof NoQuerySchema, TBody extends z.ZodTypeAny = typeof NoBodySchema, TResponse extends z.ZodTypeAny = z.ZodNever>(contract: {
2395
+ method: TMethod;
2396
+ path: TPath;
2397
+ pathParams?: TPathParams;
2398
+ query?: TQuery;
2399
+ body?: TBody;
2400
+ response: TResponse;
2401
+ }) => EndpointContract<TMethod, TPath, TPathParams, TQuery, TBody, TResponse>;
2402
+ type BodyOf<E> = E extends EndpointContract<any, any, any, any, infer TBody, any> ? z.infer<TBody> : never;
2403
+ type QueryOf<E> = E extends EndpointContract<any, any, any, infer TQuery, any, any> ? z.infer<TQuery> : never;
2404
+ type PathParamsOf<E> = E extends EndpointContract<any, any, infer TPathParams, any, any, any> ? z.infer<TPathParams> : never;
2405
+ type ResponseOf<E> = E extends EndpointContract<any, any, any, any, any, infer TResponse> ? z.infer<TResponse> : never;
2406
+
2407
+ type EntityContract<TEntityName extends string, TId, TShape extends object> = TShape & {
2408
+ readonly __entityName?: TEntityName;
2409
+ readonly id?: TId;
2410
+ };
2411
+
2412
+ declare const NoContentSchema: z.ZodNull;
2413
+ declare const ApiSuccessSchema: <TData extends z.ZodTypeAny>(data: TData) => z.ZodObject<{
2414
+ success: z.ZodLiteral<true>;
2415
+ code: z.ZodNumber;
2416
+ message: z.ZodString;
2417
+ data: TData;
2418
+ }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
2419
+ success: z.ZodLiteral<true>;
2420
+ code: z.ZodNumber;
2421
+ message: z.ZodString;
2422
+ data: TData;
2423
+ }>, any> extends infer T ? { [k in keyof T]: T[k]; } : never, z.baseObjectInputType<{
2424
+ success: z.ZodLiteral<true>;
2425
+ code: z.ZodNumber;
2426
+ message: z.ZodString;
2427
+ data: TData;
2428
+ }> extends infer T_1 ? { [k_1 in keyof T_1]: T_1[k_1]; } : never>;
2429
+ declare const ApiFailureSchema: z.ZodObject<{
2430
+ success: z.ZodLiteral<false>;
2431
+ status: z.ZodNumber;
2432
+ code: z.ZodString;
2433
+ message: z.ZodString;
2434
+ }, "strip", z.ZodTypeAny, {
2435
+ message: string;
2436
+ code: string;
2437
+ status: number;
2438
+ success: false;
2439
+ }, {
2440
+ message: string;
2441
+ code: string;
2442
+ status: number;
2443
+ success: false;
2444
+ }>;
2445
+ declare const ApiResponseSchema: <TData extends z.ZodTypeAny>(data: TData) => z.ZodUnion<[z.ZodObject<{
2446
+ success: z.ZodLiteral<true>;
2447
+ code: z.ZodNumber;
2448
+ message: z.ZodString;
2449
+ data: TData;
2450
+ }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
2451
+ success: z.ZodLiteral<true>;
2452
+ code: z.ZodNumber;
2453
+ message: z.ZodString;
2454
+ data: TData;
2455
+ }>, any> extends infer T ? { [k in keyof T]: T[k]; } : never, z.baseObjectInputType<{
2456
+ success: z.ZodLiteral<true>;
2457
+ code: z.ZodNumber;
2458
+ message: z.ZodString;
2459
+ data: TData;
2460
+ }> extends infer T_1 ? { [k_1 in keyof T_1]: T_1[k_1]; } : never>, z.ZodObject<{
2461
+ success: z.ZodLiteral<false>;
2462
+ status: z.ZodNumber;
2463
+ code: z.ZodString;
2464
+ message: z.ZodString;
2465
+ }, "strip", z.ZodTypeAny, {
2466
+ message: string;
2467
+ code: string;
2468
+ status: number;
2469
+ success: false;
2470
+ }, {
2471
+ message: string;
2472
+ code: string;
2473
+ status: number;
2474
+ success: false;
2475
+ }>]>;
2476
+ declare const CreatedEntityIdResponseSchema: z.ZodDiscriminatedUnion<"entity", [z.ZodObject<{
2477
+ entity: z.ZodLiteral<"article">;
2478
+ id: z.ZodBranded<z.ZodNumber, "ArticleId">;
2479
+ }, "strip", z.ZodTypeAny, {
2480
+ id: number & z.BRAND<"ArticleId">;
2481
+ entity: "article";
2482
+ }, {
2483
+ id: number;
2484
+ entity: "article";
2485
+ }>, z.ZodObject<{
2486
+ entity: z.ZodLiteral<"comment">;
2487
+ id: z.ZodBranded<z.ZodNumber, "CommentId">;
2488
+ }, "strip", z.ZodTypeAny, {
2489
+ id: number & z.BRAND<"CommentId">;
2490
+ entity: "comment";
2491
+ }, {
2492
+ id: number;
2493
+ entity: "comment";
2494
+ }>, z.ZodObject<{
2495
+ entity: z.ZodLiteral<"recruit">;
2496
+ id: z.ZodBranded<z.ZodNumber, "RecruitId">;
2497
+ }, "strip", z.ZodTypeAny, {
2498
+ id: number & z.BRAND<"RecruitId">;
2499
+ entity: "recruit";
2500
+ }, {
2501
+ id: number;
2502
+ entity: "recruit";
2503
+ }>, z.ZodObject<{
2504
+ entity: z.ZodLiteral<"invitation">;
2505
+ id: z.ZodBranded<z.ZodNumber, "InvitationId">;
2506
+ }, "strip", z.ZodTypeAny, {
2507
+ id: number & z.BRAND<"InvitationId">;
2508
+ entity: "invitation";
2509
+ }, {
2510
+ id: number;
2511
+ entity: "invitation";
2512
+ }>, z.ZodObject<{
2513
+ entity: z.ZodLiteral<"subscription">;
2514
+ id: z.ZodBranded<z.ZodNumber, "SubscriptionId">;
2515
+ }, "strip", z.ZodTypeAny, {
2516
+ id: number & z.BRAND<"SubscriptionId">;
2517
+ entity: "subscription";
2518
+ }, {
2519
+ id: number;
2520
+ entity: "subscription";
2521
+ }>, z.ZodObject<{
2522
+ entity: z.ZodLiteral<"coupon">;
2523
+ id: z.ZodBranded<z.ZodNumber, "CouponId">;
2524
+ }, "strip", z.ZodTypeAny, {
2525
+ id: number & z.BRAND<"CouponId">;
2526
+ entity: "coupon";
2527
+ }, {
2528
+ id: number;
2529
+ entity: "coupon";
2530
+ }>, z.ZodObject<{
2531
+ entity: z.ZodLiteral<"plan">;
2532
+ id: z.ZodBranded<z.ZodNumber, "PlanId">;
2533
+ }, "strip", z.ZodTypeAny, {
2534
+ id: number & z.BRAND<"PlanId">;
2535
+ entity: "plan";
2536
+ }, {
2537
+ id: number;
2538
+ entity: "plan";
2539
+ }>]>;
2540
+
2541
+ type NoContent = z.infer<typeof NoContentSchema>;
2542
+ type ApiSuccess<T> = z.infer<ReturnType<typeof ApiSuccessSchema<z.ZodType<T>>>>;
2543
+ type ApiFailure = z.infer<typeof ApiFailureSchema>;
2544
+ type ApiResponse<T> = ApiSuccess<T> | ApiFailure;
2545
+ type CreatedEntityIdResponse = z.infer<typeof CreatedEntityIdResponseSchema>;
2546
+ /** @deprecated Use ApiSuccess<T>. */
2547
+ interface BaseResponse<T> {
2548
+ code: number;
2549
+ message: string;
2550
+ data: T;
2551
+ }
2552
+ declare const makeApiResponseSchema: <TData extends z.ZodTypeAny>(data: TData) => z.ZodUnion<[z.ZodObject<{
2553
+ success: z.ZodLiteral<true>;
2554
+ code: z.ZodNumber;
2555
+ message: z.ZodString;
2556
+ data: TData;
2557
+ }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
2558
+ success: z.ZodLiteral<true>;
2559
+ code: z.ZodNumber;
2560
+ message: z.ZodString;
2561
+ data: TData;
2562
+ }>, any> extends infer T ? { [k in keyof T]: T[k]; } : never, z.baseObjectInputType<{
2563
+ success: z.ZodLiteral<true>;
2564
+ code: z.ZodNumber;
2565
+ message: z.ZodString;
2566
+ data: TData;
2567
+ }> extends infer T_1 ? { [k_1 in keyof T_1]: T_1[k_1]; } : never>, z.ZodObject<{
2568
+ success: z.ZodLiteral<false>;
2569
+ status: z.ZodNumber;
2570
+ code: z.ZodString;
2571
+ message: z.ZodString;
2572
+ }, "strip", z.ZodTypeAny, {
2573
+ message: string;
2574
+ code: string;
2575
+ status: number;
2576
+ success: false;
2577
+ }, {
2578
+ message: string;
2579
+ code: string;
2580
+ status: number;
2581
+ success: false;
2582
+ }>]>;
2583
+ declare const makeApiSuccessSchema: <TData extends z.ZodTypeAny>(data: TData) => z.ZodObject<{
2584
+ success: z.ZodLiteral<true>;
2585
+ code: z.ZodNumber;
2586
+ message: z.ZodString;
2587
+ data: TData;
2588
+ }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
2589
+ success: z.ZodLiteral<true>;
2590
+ code: z.ZodNumber;
2591
+ message: z.ZodString;
2592
+ data: TData;
2593
+ }>, any> extends infer T ? { [k in keyof T]: T[k]; } : never, z.baseObjectInputType<{
2594
+ success: z.ZodLiteral<true>;
2595
+ code: z.ZodNumber;
2596
+ message: z.ZodString;
2597
+ data: TData;
2598
+ }> extends infer T_1 ? { [k_1 in keyof T_1]: T_1[k_1]; } : never>;
2599
+
2600
+ type MapperContract<TSource, TTarget> = (source: TSource) => TTarget;
2601
+ type AsyncMapperContract<TSource, TTarget> = (source: TSource) => Promise<TTarget>;
2602
+ type MapperInput<TMapper> = TMapper extends (source: infer TSource) => unknown ? TSource : never;
2603
+ type MapperOutput<TMapper> = TMapper extends (...args: never[]) => infer TTarget ? TTarget : never;
2604
+
2605
+ declare const PageQuerySchema: z.ZodObject<{
2606
+ page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2607
+ size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2608
+ }, "strip", z.ZodTypeAny, {
2609
+ page: number;
2610
+ size: number;
2611
+ }, {
2612
+ page?: number | undefined;
2613
+ size?: number | undefined;
2614
+ }>;
2615
+ declare const PageMetaSchema: z.ZodObject<{
2616
+ page: z.ZodNumber;
2617
+ size: z.ZodNumber;
2618
+ totalItems: z.ZodNumber;
2619
+ totalPages: z.ZodNumber;
2620
+ hasNext: z.ZodBoolean;
2621
+ hasPrevious: z.ZodBoolean;
2622
+ }, "strip", z.ZodTypeAny, {
2623
+ page: number;
2624
+ size: number;
2625
+ totalItems: number;
2626
+ totalPages: number;
2627
+ hasNext: boolean;
2628
+ hasPrevious: boolean;
2629
+ }, {
2630
+ page: number;
2631
+ size: number;
2632
+ totalItems: number;
2633
+ totalPages: number;
2634
+ hasNext: boolean;
2635
+ hasPrevious: boolean;
2636
+ }>;
2637
+ declare const PageResponseSchema: <TItem extends z.ZodTypeAny>(item: TItem) => z.ZodObject<{
2638
+ items: z.ZodArray<TItem, "many">;
2639
+ meta: z.ZodObject<{
2640
+ page: z.ZodNumber;
2641
+ size: z.ZodNumber;
2642
+ totalItems: z.ZodNumber;
2643
+ totalPages: z.ZodNumber;
2644
+ hasNext: z.ZodBoolean;
2645
+ hasPrevious: z.ZodBoolean;
2646
+ }, "strip", z.ZodTypeAny, {
2647
+ page: number;
2648
+ size: number;
2649
+ totalItems: number;
2650
+ totalPages: number;
2651
+ hasNext: boolean;
2652
+ hasPrevious: boolean;
2653
+ }, {
2654
+ page: number;
2655
+ size: number;
2656
+ totalItems: number;
2657
+ totalPages: number;
2658
+ hasNext: boolean;
2659
+ hasPrevious: boolean;
2660
+ }>;
2661
+ }, "strip", z.ZodTypeAny, {
2662
+ items: TItem["_output"][];
2663
+ meta: {
2664
+ page: number;
2665
+ size: number;
2666
+ totalItems: number;
2667
+ totalPages: number;
2668
+ hasNext: boolean;
2669
+ hasPrevious: boolean;
2670
+ };
2671
+ }, {
2672
+ items: TItem["_input"][];
2673
+ meta: {
2674
+ page: number;
2675
+ size: number;
2676
+ totalItems: number;
2677
+ totalPages: number;
2678
+ hasNext: boolean;
2679
+ hasPrevious: boolean;
2680
+ };
2681
+ }>;
2682
+ declare const SortDirectionSchema: z.ZodEnum<["asc", "desc"]>;
2683
+
2684
+ type PageRequest = z.infer<typeof PageQuerySchema>;
2685
+ type PageResponse<TItem> = z.infer<ReturnType<typeof PageResponseSchema<z.ZodType<TItem>>>>;
2686
+ type PageMeta = z.infer<typeof PageMetaSchema>;
2687
+ type SortDirection = z.infer<typeof SortDirectionSchema>;
2688
+
2689
+ export { type ApiContract, type ApiDomain, type ApiFailure, ApiFailureSchema, type ApiResponse, ApiResponseSchema, type ApiSuccess, ApiSuccessSchema, type AsyncMapperContract, type BaseResponse, type BodyOf, type CreatedEntityIdResponse, CreatedEntityIdResponseSchema, type EndpointContract, type EntityContract, type HttpMethod, type ISODateString, ISODateStringSchema, type ISODateTimeString, ISODateTimeStringSchema, type MapperContract, type MapperInput, type MapperOutput, NoBodySchema, type NoContent, NoContentSchema, NoParamsSchema, NoQuerySchema, type PageMeta, PageMetaSchema, PageQuerySchema, type PageRequest, type PageResponse, PageResponseSchema, type PathParamsOf, type QueryOf, type ResponseOf, type SortDirection, SortDirectionSchema, type TimeHHmmString, TimeHHmmStringSchema, apiContract, endpoint, makeApiResponseSchema, makeApiSuccessSchema };