@lyxa.ai/core 1.0.19 → 1.0.21

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 (156) hide show
  1. package/dist/index.js +4 -0
  2. package/dist/index.js.map +1 -1
  3. package/dist/libraries/mongo/models/admin-access-control.model.js +13 -2
  4. package/dist/libraries/mongo/models/admin-access-control.model.js.map +1 -1
  5. package/dist/libraries/mongo/models/attribute.model.d.ts +1 -1
  6. package/dist/libraries/mongo/models/attribute.model.js +3 -2
  7. package/dist/libraries/mongo/models/attribute.model.js.map +1 -1
  8. package/dist/libraries/mongo/models/card.model.d.ts +24 -0
  9. package/dist/libraries/mongo/models/card.model.js +109 -0
  10. package/dist/libraries/mongo/models/card.model.js.map +1 -0
  11. package/dist/libraries/mongo/models/cart-participant.model.d.ts +17 -0
  12. package/dist/libraries/mongo/models/cart-participant.model.js +81 -0
  13. package/dist/libraries/mongo/models/cart-participant.model.js.map +1 -0
  14. package/dist/libraries/mongo/models/cart.model.d.ts +6 -9
  15. package/dist/libraries/mongo/models/cart.model.js +16 -33
  16. package/dist/libraries/mongo/models/cart.model.js.map +1 -1
  17. package/dist/libraries/mongo/models/category.model.d.ts +1 -2
  18. package/dist/libraries/mongo/models/category.model.js +2 -7
  19. package/dist/libraries/mongo/models/category.model.js.map +1 -1
  20. package/dist/libraries/mongo/models/core-auth-identity.model.d.ts +1 -2
  21. package/dist/libraries/mongo/models/core-auth-identity.model.js +1 -3
  22. package/dist/libraries/mongo/models/core-auth-identity.model.js.map +1 -1
  23. package/dist/libraries/mongo/models/core-user.model.d.ts +0 -2
  24. package/dist/libraries/mongo/models/core-user.model.js +2 -4
  25. package/dist/libraries/mongo/models/core-user.model.js.map +1 -1
  26. package/dist/libraries/mongo/models/embedded/addon.model.d.ts +8 -0
  27. package/dist/libraries/mongo/models/embedded/addon.model.js +34 -0
  28. package/dist/libraries/mongo/models/embedded/addon.model.js.map +1 -0
  29. package/dist/libraries/mongo/models/embedded/line-item-attribute.model.d.ts +7 -0
  30. package/dist/libraries/mongo/models/embedded/line-item-attribute.model.js +29 -0
  31. package/dist/libraries/mongo/models/embedded/line-item-attribute.model.js.map +1 -0
  32. package/dist/libraries/mongo/models/embedded/order-cancel.model.d.ts +7 -0
  33. package/dist/libraries/mongo/models/embedded/order-cancel.model.js +34 -0
  34. package/dist/libraries/mongo/models/embedded/order-cancel.model.js.map +1 -0
  35. package/dist/libraries/mongo/models/embedded/order-pricing.model.d.ts +18 -0
  36. package/dist/libraries/mongo/models/embedded/order-pricing.model.js +97 -0
  37. package/dist/libraries/mongo/models/embedded/order-pricing.model.js.map +1 -0
  38. package/dist/libraries/mongo/models/embedded/payment-attempt.model.d.ts +10 -0
  39. package/dist/libraries/mongo/models/embedded/payment-attempt.model.js +60 -0
  40. package/dist/libraries/mongo/models/embedded/payment-attempt.model.js.map +1 -0
  41. package/dist/libraries/mongo/models/embedded/payment-details.model.d.ts +9 -0
  42. package/dist/libraries/mongo/models/embedded/payment-details.model.js +52 -0
  43. package/dist/libraries/mongo/models/embedded/payment-details.model.js.map +1 -0
  44. package/dist/libraries/mongo/models/embedded/payment-infromation.model.d.ts +7 -0
  45. package/dist/libraries/mongo/models/embedded/payment-infromation.model.js +43 -0
  46. package/dist/libraries/mongo/models/embedded/payment-infromation.model.js.map +1 -0
  47. package/dist/libraries/mongo/models/embedded/portion.model.d.ts +5 -0
  48. package/dist/libraries/mongo/models/embedded/portion.model.js +32 -0
  49. package/dist/libraries/mongo/models/embedded/portion.model.js.map +1 -0
  50. package/dist/libraries/mongo/models/embedded/rider-equipment.model.d.ts +4 -0
  51. package/dist/libraries/mongo/models/embedded/rider-equipment.model.js +27 -0
  52. package/dist/libraries/mongo/models/embedded/rider-equipment.model.js.map +1 -0
  53. package/dist/libraries/mongo/models/embedded/status-timeline.model.d.ts +14 -0
  54. package/dist/libraries/mongo/models/embedded/status-timeline.model.js +59 -0
  55. package/dist/libraries/mongo/models/embedded/status-timeline.model.js.map +1 -0
  56. package/dist/libraries/mongo/models/embedded/zone-geometry.mode.d.ts +2 -1
  57. package/dist/libraries/mongo/models/embedded/zone-geometry.mode.js +2 -1
  58. package/dist/libraries/mongo/models/embedded/zone-geometry.mode.js.map +1 -1
  59. package/dist/libraries/mongo/models/faq.model.d.ts +0 -1
  60. package/dist/libraries/mongo/models/faq.model.js +0 -5
  61. package/dist/libraries/mongo/models/faq.model.js.map +1 -1
  62. package/dist/libraries/mongo/models/index.d.ts +46 -29
  63. package/dist/libraries/mongo/models/index.js +48 -31
  64. package/dist/libraries/mongo/models/index.js.map +1 -1
  65. package/dist/libraries/mongo/models/line-item.model.d.ts +19 -0
  66. package/dist/libraries/mongo/models/line-item.model.js +84 -0
  67. package/dist/libraries/mongo/models/line-item.model.js.map +1 -0
  68. package/dist/libraries/mongo/models/order-delivery.model.d.ts +24 -0
  69. package/dist/libraries/mongo/models/order-delivery.model.js +119 -0
  70. package/dist/libraries/mongo/models/order-delivery.model.js.map +1 -0
  71. package/dist/libraries/mongo/models/order-payment.model.d.ts +21 -0
  72. package/dist/libraries/mongo/models/order-payment.model.js +96 -0
  73. package/dist/libraries/mongo/models/order-payment.model.js.map +1 -0
  74. package/dist/libraries/mongo/models/order-pricing.model.d.ts +18 -0
  75. package/dist/libraries/mongo/models/order-pricing.model.js +88 -0
  76. package/dist/libraries/mongo/models/order-pricing.model.js.map +1 -0
  77. package/dist/libraries/mongo/models/order.model.d.ts +17 -1
  78. package/dist/libraries/mongo/models/order.model.js +83 -2
  79. package/dist/libraries/mongo/models/order.model.js.map +1 -1
  80. package/dist/libraries/mongo/models/product.model.js +1 -3
  81. package/dist/libraries/mongo/models/product.model.js.map +1 -1
  82. package/dist/libraries/mongo/models/providers/areeba-card.model.d.ts +14 -0
  83. package/dist/libraries/mongo/models/providers/areeba-card.model.js +69 -0
  84. package/dist/libraries/mongo/models/providers/areeba-card.model.js.map +1 -0
  85. package/dist/libraries/mongo/models/providers/core-apple-auth-identity.model.d.ts +0 -2
  86. package/dist/libraries/mongo/models/providers/core-apple-auth-identity.model.js +1 -4
  87. package/dist/libraries/mongo/models/providers/core-apple-auth-identity.model.js.map +1 -1
  88. package/dist/libraries/mongo/models/providers/core-email-auth-identity.model.d.ts +0 -2
  89. package/dist/libraries/mongo/models/providers/core-email-auth-identity.model.js +1 -4
  90. package/dist/libraries/mongo/models/providers/core-email-auth-identity.model.js.map +1 -1
  91. package/dist/libraries/mongo/models/providers/core-google-auth-identity.model.d.ts +0 -2
  92. package/dist/libraries/mongo/models/providers/core-google-auth-identity.model.js +1 -4
  93. package/dist/libraries/mongo/models/providers/core-google-auth-identity.model.js.map +1 -1
  94. package/dist/libraries/mongo/models/providers/core-phone-auth-identity.model.d.ts +0 -2
  95. package/dist/libraries/mongo/models/providers/core-phone-auth-identity.model.js +1 -4
  96. package/dist/libraries/mongo/models/providers/core-phone-auth-identity.model.js.map +1 -1
  97. package/dist/libraries/mongo/models/providers/courier-order.model.d.ts +23 -0
  98. package/dist/libraries/mongo/models/providers/courier-order.model.js +89 -0
  99. package/dist/libraries/mongo/models/providers/courier-order.model.js.map +1 -0
  100. package/dist/libraries/mongo/models/providers/regular-order.model.d.ts +23 -0
  101. package/dist/libraries/mongo/models/providers/regular-order.model.js +85 -0
  102. package/dist/libraries/mongo/models/providers/regular-order.model.js.map +1 -0
  103. package/dist/libraries/mongo/models/rating-setting.model.d.ts +1 -0
  104. package/dist/libraries/mongo/models/rating-setting.model.js +11 -2
  105. package/dist/libraries/mongo/models/rating-setting.model.js.map +1 -1
  106. package/dist/libraries/mongo/models/request-area.model.d.ts +2 -2
  107. package/dist/libraries/mongo/models/request-area.model.js +2 -2
  108. package/dist/libraries/mongo/models/request-area.model.js.map +1 -1
  109. package/dist/libraries/mongo/models/rider-timeout.model.d.ts +10 -0
  110. package/dist/libraries/mongo/models/rider-timeout.model.js +47 -0
  111. package/dist/libraries/mongo/models/rider-timeout.model.js.map +1 -0
  112. package/dist/libraries/mongo/models/rider-tracking.model.d.ts +10 -0
  113. package/dist/libraries/mongo/models/rider-tracking.model.js +47 -0
  114. package/dist/libraries/mongo/models/rider-tracking.model.js.map +1 -0
  115. package/dist/libraries/mongo/models/rider.model.d.ts +50 -1
  116. package/dist/libraries/mongo/models/rider.model.js +238 -2
  117. package/dist/libraries/mongo/models/rider.model.js.map +1 -1
  118. package/dist/libraries/mongo/models/shared/address.model.d.ts +6 -3
  119. package/dist/libraries/mongo/models/shared/address.model.js +24 -13
  120. package/dist/libraries/mongo/models/shared/address.model.js.map +1 -1
  121. package/dist/libraries/mongo/models/shared/geo-location.model.d.ts +4 -0
  122. package/dist/libraries/mongo/models/shared/geo-location.model.js +27 -0
  123. package/dist/libraries/mongo/models/shared/geo-location.model.js.map +1 -0
  124. package/dist/libraries/mongo/models/shop-category.model.d.ts +1 -0
  125. package/dist/libraries/mongo/models/shop-category.model.js +7 -1
  126. package/dist/libraries/mongo/models/shop-category.model.js.map +1 -1
  127. package/dist/libraries/mongo/models/shop.model.d.ts +1 -1
  128. package/dist/libraries/mongo/models/shop.model.js +2 -2
  129. package/dist/libraries/mongo/models/shop.model.js.map +1 -1
  130. package/dist/libraries/mongo/models/user.model.d.ts +30 -0
  131. package/dist/libraries/mongo/models/user.model.js +129 -0
  132. package/dist/libraries/mongo/models/user.model.js.map +1 -0
  133. package/dist/libraries/mongo/models/zone.model.d.ts +5 -5
  134. package/dist/libraries/mongo/models/zone.model.js +11 -11
  135. package/dist/libraries/mongo/models/zone.model.js.map +1 -1
  136. package/dist/libraries/mongo/plugins/soft-delete-plugin.d.ts +8 -5
  137. package/dist/libraries/mongo/plugins/soft-delete-plugin.js +28 -0
  138. package/dist/libraries/mongo/plugins/soft-delete-plugin.js.map +1 -1
  139. package/dist/utilities/enum.d.ts +87 -9
  140. package/dist/utilities/enum.js +103 -9
  141. package/dist/utilities/enum.js.map +1 -1
  142. package/dist/utilities/pagination.d.ts +4 -1
  143. package/dist/utilities/pagination.js +44 -4
  144. package/dist/utilities/pagination.js.map +1 -1
  145. package/dist/utilities/response.js +1 -1
  146. package/dist/utilities/response.js.map +1 -1
  147. package/dist/utilities/transformers.d.ts +14 -3
  148. package/dist/utilities/transformers.js +37 -6
  149. package/dist/utilities/transformers.js.map +1 -1
  150. package/dist/utilities/validation/common-validation.d.ts +354 -29
  151. package/dist/utilities/validation/common-validation.js +39 -10
  152. package/dist/utilities/validation/common-validation.js.map +1 -1
  153. package/dist/utilities/validation/global-validation.d.ts +49 -20
  154. package/dist/utilities/validation/global-validation.js +6 -4
  155. package/dist/utilities/validation/global-validation.js.map +1 -1
  156. package/package.json +2 -2
@@ -1,26 +1,133 @@
1
- import { z, ZodSchema } from 'zod';
1
+ import { z } from 'zod';
2
+ import { DTO } from './global-validation';
2
3
  import { GeoLocationType, HolidayWorkStatus, WeekDay, WorkStatus } from '../enum';
3
4
  export declare const FilterSchema: z.ZodOptional<z.ZodObject<{
4
- limit: z.ZodDefault<z.ZodNumber>;
5
- skip: z.ZodDefault<z.ZodNumber>;
6
- sort: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<-1>, z.ZodLiteral<"asc">, z.ZodLiteral<"desc">]>>>;
5
+ size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6
+ page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
7
+ sort: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<-1>]>>>;
7
8
  query: z.ZodOptional<z.ZodType<Record<string, any>, z.ZodTypeDef, Record<string, any>>>;
8
- select: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
- populate: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
+ select: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>>>;
10
+ populate: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
11
+ path: z.ZodString;
12
+ select: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>>>;
13
+ match: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
14
+ options: z.ZodOptional<z.ZodObject<{
15
+ sort: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<-1>]>>>;
16
+ limit: z.ZodOptional<z.ZodNumber>;
17
+ skip: z.ZodOptional<z.ZodNumber>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ sort?: Record<string, 1 | -1> | undefined;
20
+ skip?: number | undefined;
21
+ limit?: number | undefined;
22
+ }, {
23
+ sort?: Record<string, 1 | -1> | undefined;
24
+ skip?: number | undefined;
25
+ limit?: number | undefined;
26
+ }>>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ path: string;
29
+ match?: Record<string, any> | undefined;
30
+ select?: Record<string, 0 | 1> | undefined;
31
+ options?: {
32
+ sort?: Record<string, 1 | -1> | undefined;
33
+ skip?: number | undefined;
34
+ limit?: number | undefined;
35
+ } | undefined;
36
+ }, {
37
+ path: string;
38
+ match?: Record<string, any> | undefined;
39
+ select?: Record<string, 0 | 1> | undefined;
40
+ options?: {
41
+ sort?: Record<string, 1 | -1> | undefined;
42
+ skip?: number | undefined;
43
+ limit?: number | undefined;
44
+ } | undefined;
45
+ }>, z.ZodArray<z.ZodObject<{
46
+ path: z.ZodString;
47
+ select: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>>>;
48
+ match: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
49
+ options: z.ZodOptional<z.ZodObject<{
50
+ sort: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<-1>]>>>;
51
+ limit: z.ZodOptional<z.ZodNumber>;
52
+ skip: z.ZodOptional<z.ZodNumber>;
53
+ }, "strip", z.ZodTypeAny, {
54
+ sort?: Record<string, 1 | -1> | undefined;
55
+ skip?: number | undefined;
56
+ limit?: number | undefined;
57
+ }, {
58
+ sort?: Record<string, 1 | -1> | undefined;
59
+ skip?: number | undefined;
60
+ limit?: number | undefined;
61
+ }>>;
62
+ }, "strip", z.ZodTypeAny, {
63
+ path: string;
64
+ match?: Record<string, any> | undefined;
65
+ select?: Record<string, 0 | 1> | undefined;
66
+ options?: {
67
+ sort?: Record<string, 1 | -1> | undefined;
68
+ skip?: number | undefined;
69
+ limit?: number | undefined;
70
+ } | undefined;
71
+ }, {
72
+ path: string;
73
+ match?: Record<string, any> | undefined;
74
+ select?: Record<string, 0 | 1> | undefined;
75
+ options?: {
76
+ sort?: Record<string, 1 | -1> | undefined;
77
+ skip?: number | undefined;
78
+ limit?: number | undefined;
79
+ } | undefined;
80
+ }>, "many">]>>;
10
81
  }, "strip", z.ZodTypeAny, {
11
- skip: number;
12
- limit: number;
13
- sort?: Record<string, 1 | "desc" | -1 | "asc"> | undefined;
14
- select?: string[] | undefined;
82
+ page: number;
83
+ size: number;
84
+ sort?: Record<string, 1 | -1> | undefined;
85
+ select?: Record<string, 0 | 1> | undefined;
15
86
  query?: Record<string, any> | undefined;
16
- populate?: string[] | undefined;
87
+ populate?: {
88
+ path: string;
89
+ match?: Record<string, any> | undefined;
90
+ select?: Record<string, 0 | 1> | undefined;
91
+ options?: {
92
+ sort?: Record<string, 1 | -1> | undefined;
93
+ skip?: number | undefined;
94
+ limit?: number | undefined;
95
+ } | undefined;
96
+ } | {
97
+ path: string;
98
+ match?: Record<string, any> | undefined;
99
+ select?: Record<string, 0 | 1> | undefined;
100
+ options?: {
101
+ sort?: Record<string, 1 | -1> | undefined;
102
+ skip?: number | undefined;
103
+ limit?: number | undefined;
104
+ } | undefined;
105
+ }[] | undefined;
17
106
  }, {
18
- sort?: Record<string, 1 | "desc" | -1 | "asc"> | undefined;
19
- select?: string[] | undefined;
107
+ sort?: Record<string, 1 | -1> | undefined;
108
+ page?: number | undefined;
109
+ select?: Record<string, 0 | 1> | undefined;
110
+ size?: number | undefined;
20
111
  query?: Record<string, any> | undefined;
21
- skip?: number | undefined;
22
- limit?: number | undefined;
23
- populate?: string[] | undefined;
112
+ populate?: {
113
+ path: string;
114
+ match?: Record<string, any> | undefined;
115
+ select?: Record<string, 0 | 1> | undefined;
116
+ options?: {
117
+ sort?: Record<string, 1 | -1> | undefined;
118
+ skip?: number | undefined;
119
+ limit?: number | undefined;
120
+ } | undefined;
121
+ } | {
122
+ path: string;
123
+ match?: Record<string, any> | undefined;
124
+ select?: Record<string, 0 | 1> | undefined;
125
+ options?: {
126
+ sort?: Record<string, 1 | -1> | undefined;
127
+ skip?: number | undefined;
128
+ limit?: number | undefined;
129
+ } | undefined;
130
+ }[] | undefined;
24
131
  }>>;
25
132
  export type FilterDTO = z.infer<typeof FilterSchema>;
26
133
  export declare const StringSchema: z.ZodString;
@@ -38,18 +145,18 @@ export declare const AddressSchema: z.ZodObject<{
38
145
  state: string;
39
146
  address: string;
40
147
  country: string;
41
- city: string;
42
- geoLocationType: GeoLocationType;
43
148
  coordinates: number[];
149
+ city: string;
44
150
  latitude: number;
45
151
  longitude: number;
152
+ geoLocationType: GeoLocationType;
46
153
  description?: string | undefined;
47
154
  }, {
48
155
  state: string;
49
156
  address: string;
50
157
  country: string;
51
- city: string;
52
158
  coordinates: number[];
159
+ city: string;
53
160
  latitude: number;
54
161
  longitude: number;
55
162
  description?: string | undefined;
@@ -75,14 +182,14 @@ export declare const UserAddressSchema: z.ZodObject<z.objectUtil.extendShape<{
75
182
  state: string;
76
183
  address: string;
77
184
  country: string;
78
- city: string;
79
- geoLocationType: GeoLocationType;
80
185
  coordinates: number[];
186
+ city: string;
81
187
  latitude: number;
82
188
  longitude: number;
83
189
  addressLabel: string;
84
190
  apartment: string;
85
191
  buildingName: string;
192
+ geoLocationType: GeoLocationType;
86
193
  description?: string | undefined;
87
194
  deliveryOption?: string | undefined;
88
195
  instructions?: string | undefined;
@@ -90,17 +197,17 @@ export declare const UserAddressSchema: z.ZodObject<z.objectUtil.extendShape<{
90
197
  state: string;
91
198
  address: string;
92
199
  country: string;
93
- city: string;
94
200
  coordinates: number[];
201
+ city: string;
95
202
  latitude: number;
96
203
  longitude: number;
97
204
  addressLabel: string;
98
205
  apartment: string;
99
206
  buildingName: string;
100
207
  description?: string | undefined;
101
- geoLocationType?: GeoLocationType | undefined;
102
208
  deliveryOption?: string | undefined;
103
209
  instructions?: string | undefined;
210
+ geoLocationType?: GeoLocationType | undefined;
104
211
  }>;
105
212
  export declare const DurationSchema: z.ZodObject<{
106
213
  start: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Date, string>, z.ZodDate]>, Date, string | Date>, Date, string | Date>;
@@ -270,26 +377,231 @@ export declare const LoginSchema: z.ZodObject<{
270
377
  email: string;
271
378
  password: string;
272
379
  }>;
273
- export declare const createResponseSchema: <T>(schema: ZodSchema<T>) => z.ZodObject<{
380
+ export declare const createPaginatedSchema: <T>(documentSchema: z.ZodSchema<T>) => z.ZodObject<{
381
+ metadata: z.ZodOptional<z.ZodObject<{
382
+ page: z.ZodNumber;
383
+ size: z.ZodNumber;
384
+ totalElements: z.ZodNumber;
385
+ totalPages: z.ZodNumber;
386
+ }, "strip", z.ZodTypeAny, {
387
+ page: number;
388
+ size: number;
389
+ totalElements: number;
390
+ totalPages: number;
391
+ }, {
392
+ page: number;
393
+ size: number;
394
+ totalElements: number;
395
+ totalPages: number;
396
+ }>>;
397
+ documents: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
398
+ }, "strip", z.ZodTypeAny, {
399
+ documents: T[];
400
+ metadata?: {
401
+ page: number;
402
+ size: number;
403
+ totalElements: number;
404
+ totalPages: number;
405
+ } | undefined;
406
+ }, {
407
+ documents: T[];
408
+ metadata?: {
409
+ page: number;
410
+ size: number;
411
+ totalElements: number;
412
+ totalPages: number;
413
+ } | undefined;
414
+ }>;
415
+ export declare const createResponseSchema: <T>(schema: z.ZodSchema<T>) => z.ZodObject<{
274
416
  success: z.ZodBoolean;
275
417
  message: z.ZodString;
276
- data: z.ZodOptional<z.ZodUnion<[z.ZodType<T, z.ZodTypeDef, T>, z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">]>>;
418
+ data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
419
+ metadata: z.ZodOptional<z.ZodObject<{
420
+ page: z.ZodNumber;
421
+ size: z.ZodNumber;
422
+ totalElements: z.ZodNumber;
423
+ totalPages: z.ZodNumber;
424
+ }, "strip", z.ZodTypeAny, {
425
+ page: number;
426
+ size: number;
427
+ totalElements: number;
428
+ totalPages: number;
429
+ }, {
430
+ page: number;
431
+ size: number;
432
+ totalElements: number;
433
+ totalPages: number;
434
+ }>>;
435
+ documents: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
436
+ }, "strip", z.ZodTypeAny, {
437
+ documents: T[];
438
+ metadata?: {
439
+ page: number;
440
+ size: number;
441
+ totalElements: number;
442
+ totalPages: number;
443
+ } | undefined;
444
+ }, {
445
+ documents: T[];
446
+ metadata?: {
447
+ page: number;
448
+ size: number;
449
+ totalElements: number;
450
+ totalPages: number;
451
+ } | undefined;
452
+ }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
277
453
  }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
278
454
  success: z.ZodBoolean;
279
455
  message: z.ZodString;
280
- data: z.ZodOptional<z.ZodUnion<[z.ZodType<T, z.ZodTypeDef, T>, z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">]>>;
456
+ data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
457
+ metadata: z.ZodOptional<z.ZodObject<{
458
+ page: z.ZodNumber;
459
+ size: z.ZodNumber;
460
+ totalElements: z.ZodNumber;
461
+ totalPages: z.ZodNumber;
462
+ }, "strip", z.ZodTypeAny, {
463
+ page: number;
464
+ size: number;
465
+ totalElements: number;
466
+ totalPages: number;
467
+ }, {
468
+ page: number;
469
+ size: number;
470
+ totalElements: number;
471
+ totalPages: number;
472
+ }>>;
473
+ documents: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
474
+ }, "strip", z.ZodTypeAny, {
475
+ documents: T[];
476
+ metadata?: {
477
+ page: number;
478
+ size: number;
479
+ totalElements: number;
480
+ totalPages: number;
481
+ } | undefined;
482
+ }, {
483
+ documents: T[];
484
+ metadata?: {
485
+ page: number;
486
+ size: number;
487
+ totalElements: number;
488
+ totalPages: number;
489
+ } | undefined;
490
+ }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
281
491
  }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
282
492
  success: z.ZodBoolean;
283
493
  message: z.ZodString;
284
- data: z.ZodOptional<z.ZodUnion<[z.ZodType<T, z.ZodTypeDef, T>, z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">]>>;
494
+ data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
495
+ metadata: z.ZodOptional<z.ZodObject<{
496
+ page: z.ZodNumber;
497
+ size: z.ZodNumber;
498
+ totalElements: z.ZodNumber;
499
+ totalPages: z.ZodNumber;
500
+ }, "strip", z.ZodTypeAny, {
501
+ page: number;
502
+ size: number;
503
+ totalElements: number;
504
+ totalPages: number;
505
+ }, {
506
+ page: number;
507
+ size: number;
508
+ totalElements: number;
509
+ totalPages: number;
510
+ }>>;
511
+ documents: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
512
+ }, "strip", z.ZodTypeAny, {
513
+ documents: T[];
514
+ metadata?: {
515
+ page: number;
516
+ size: number;
517
+ totalElements: number;
518
+ totalPages: number;
519
+ } | undefined;
520
+ }, {
521
+ documents: T[];
522
+ metadata?: {
523
+ page: number;
524
+ size: number;
525
+ totalElements: number;
526
+ totalPages: number;
527
+ } | undefined;
528
+ }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
285
529
  }>, any>[k]; } : never, z.baseObjectInputType<{
286
530
  success: z.ZodBoolean;
287
531
  message: z.ZodString;
288
- data: z.ZodOptional<z.ZodUnion<[z.ZodType<T, z.ZodTypeDef, T>, z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">]>>;
532
+ data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
533
+ metadata: z.ZodOptional<z.ZodObject<{
534
+ page: z.ZodNumber;
535
+ size: z.ZodNumber;
536
+ totalElements: z.ZodNumber;
537
+ totalPages: z.ZodNumber;
538
+ }, "strip", z.ZodTypeAny, {
539
+ page: number;
540
+ size: number;
541
+ totalElements: number;
542
+ totalPages: number;
543
+ }, {
544
+ page: number;
545
+ size: number;
546
+ totalElements: number;
547
+ totalPages: number;
548
+ }>>;
549
+ documents: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
550
+ }, "strip", z.ZodTypeAny, {
551
+ documents: T[];
552
+ metadata?: {
553
+ page: number;
554
+ size: number;
555
+ totalElements: number;
556
+ totalPages: number;
557
+ } | undefined;
558
+ }, {
559
+ documents: T[];
560
+ metadata?: {
561
+ page: number;
562
+ size: number;
563
+ totalElements: number;
564
+ totalPages: number;
565
+ } | undefined;
566
+ }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
289
567
  }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
290
568
  success: z.ZodBoolean;
291
569
  message: z.ZodString;
292
- data: z.ZodOptional<z.ZodUnion<[z.ZodType<T, z.ZodTypeDef, T>, z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">]>>;
570
+ data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
571
+ metadata: z.ZodOptional<z.ZodObject<{
572
+ page: z.ZodNumber;
573
+ size: z.ZodNumber;
574
+ totalElements: z.ZodNumber;
575
+ totalPages: z.ZodNumber;
576
+ }, "strip", z.ZodTypeAny, {
577
+ page: number;
578
+ size: number;
579
+ totalElements: number;
580
+ totalPages: number;
581
+ }, {
582
+ page: number;
583
+ size: number;
584
+ totalElements: number;
585
+ totalPages: number;
586
+ }>>;
587
+ documents: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
588
+ }, "strip", z.ZodTypeAny, {
589
+ documents: T[];
590
+ metadata?: {
591
+ page: number;
592
+ size: number;
593
+ totalElements: number;
594
+ totalPages: number;
595
+ } | undefined;
596
+ }, {
597
+ documents: T[];
598
+ metadata?: {
599
+ page: number;
600
+ size: number;
601
+ totalElements: number;
602
+ totalPages: number;
603
+ } | undefined;
604
+ }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
293
605
  }>[k_1]; } : never>;
294
606
  export declare const TokenSchema: z.ZodObject<{
295
607
  accessToken: z.ZodString;
@@ -311,3 +623,16 @@ export declare const UpdateSortingOrderSchema: z.ZodObject<{
311
623
  list: (string | import("mongoose").Types.ObjectId)[];
312
624
  startIndex?: number | undefined;
313
625
  }>;
626
+ export type UpdateSortingOrderDTO = DTO<typeof UpdateSortingOrderSchema>;
627
+ export declare const DeleteSchema: z.ZodObject<{
628
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, import("mongoose").Types.ObjectId, string>, z.ZodType<import("mongoose").Types.ObjectId, z.ZodTypeDef, import("mongoose").Types.ObjectId>]>;
629
+ softDelete: z.ZodDefault<z.ZodBoolean>;
630
+ }, "strip", z.ZodTypeAny, {
631
+ _id: import("mongoose").Types.ObjectId;
632
+ softDelete: boolean;
633
+ }, {
634
+ _id: string | import("mongoose").Types.ObjectId;
635
+ softDelete?: boolean | undefined;
636
+ }>;
637
+ export type DeleteDTO = DTO<typeof DeleteSchema>;
638
+ export declare const IdSchema: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, import("mongoose").Types.ObjectId, string>, z.ZodType<import("mongoose").Types.ObjectId, z.ZodTypeDef, import("mongoose").Types.ObjectId>]>;
@@ -1,10 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UpdateSortingOrderSchema = exports.TokenSchema = exports.createResponseSchema = exports.LoginSchema = exports.WorkHourSettingSchema = exports.HolidayHourSchema = exports.NormalHourSchema = exports.DurationSchema = exports.UserAddressSchema = exports.AddressSchema = exports.StringSchema = exports.FilterSchema = void 0;
3
+ exports.IdSchema = exports.DeleteSchema = exports.UpdateSortingOrderSchema = exports.TokenSchema = exports.createResponseSchema = exports.createPaginatedSchema = exports.LoginSchema = exports.WorkHourSettingSchema = exports.HolidayHourSchema = exports.NormalHourSchema = exports.DurationSchema = exports.UserAddressSchema = exports.AddressSchema = exports.StringSchema = exports.FilterSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const global_validation_1 = require("./global-validation");
6
6
  const enum_1 = require("../enum");
7
- const SortOrderSchema = zod_1.z.union([zod_1.z.literal(1), zod_1.z.literal(-1), zod_1.z.literal('asc'), zod_1.z.literal('desc')]);
8
7
  const MongoQuerySchema = zod_1.z.lazy(() => zod_1.z.record(zod_1.z.union([zod_1.z.any(), MongoOperatorsSchema])));
9
8
  const MongoOperatorsSchema = zod_1.z.object({
10
9
  $eq: zod_1.z.any().optional(),
@@ -22,18 +21,32 @@ const MongoOperatorsSchema = zod_1.z.object({
22
21
  $not: MongoQuerySchema.optional(),
23
22
  $nor: zod_1.z.array(MongoQuerySchema).optional(),
24
23
  });
24
+ const sortSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.union([zod_1.z.literal(1), zod_1.z.literal(-1)]));
25
+ const populateSchema = zod_1.z.object({
26
+ path: zod_1.z.string(),
27
+ select: zod_1.z.record(zod_1.z.string(), zod_1.z.union([zod_1.z.literal(0), zod_1.z.literal(1)])).optional(),
28
+ match: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
29
+ options: zod_1.z
30
+ .object({
31
+ sort: sortSchema.optional(),
32
+ limit: zod_1.z.number().optional(),
33
+ skip: zod_1.z.number().optional(),
34
+ })
35
+ .optional(),
36
+ });
25
37
  exports.FilterSchema = zod_1.z
26
38
  .object({
27
- limit: zod_1.z
39
+ size: zod_1.z
28
40
  .number()
29
- .min(1, { message: 'Limit must be greater than 0.' })
30
- .max(100, { message: 'Limit cannot exceed 100.' })
41
+ .min(1, { message: 'Size must be greater than 0.' })
42
+ .max(100, { message: 'Size cannot exceed 100.' })
43
+ .optional()
31
44
  .default(10),
32
- skip: zod_1.z.number().min(0, { message: 'Skip cannot be negative.' }).default(0),
33
- sort: zod_1.z.record(zod_1.z.string(), SortOrderSchema).optional(),
45
+ page: zod_1.z.number().min(1, { message: 'Page number must be at least 1.' }).optional().default(1),
46
+ sort: sortSchema.optional(),
34
47
  query: MongoQuerySchema.optional(),
35
- select: zod_1.z.array(zod_1.z.string()).optional(),
36
- populate: zod_1.z.array(zod_1.z.string()).optional(),
48
+ select: zod_1.z.record(zod_1.z.string(), zod_1.z.union([zod_1.z.literal(0), zod_1.z.literal(1)])).optional(),
49
+ populate: zod_1.z.union([populateSchema, zod_1.z.array(populateSchema)]).optional(),
37
50
  })
38
51
  .optional();
39
52
  exports.StringSchema = zod_1.z.string().min(1, 'String cannot be empty').max(255, 'String is too long');
@@ -81,10 +94,21 @@ exports.LoginSchema = zod_1.z.object({
81
94
  email: global_validation_1.ZodValidation.email('Email'),
82
95
  password: global_validation_1.ZodValidation.string('Password'),
83
96
  });
97
+ const metadataSchema = zod_1.z.object({
98
+ page: global_validation_1.ZodValidation.number(),
99
+ size: global_validation_1.ZodValidation.number(),
100
+ totalElements: global_validation_1.ZodValidation.number(),
101
+ totalPages: global_validation_1.ZodValidation.number(),
102
+ });
103
+ const createPaginatedSchema = (documentSchema) => zod_1.z.object({
104
+ metadata: metadataSchema.optional(),
105
+ documents: global_validation_1.ZodValidation.array(documentSchema),
106
+ });
107
+ exports.createPaginatedSchema = createPaginatedSchema;
84
108
  const createResponseSchema = (schema) => zod_1.z.object({
85
109
  success: global_validation_1.ZodValidation.boolean(),
86
110
  message: global_validation_1.ZodValidation.string(),
87
- data: zod_1.z.union([schema, zod_1.z.array(schema)]).optional(),
111
+ data: zod_1.z.union([(0, exports.createPaginatedSchema)(schema), schema]).optional(),
88
112
  });
89
113
  exports.createResponseSchema = createResponseSchema;
90
114
  exports.TokenSchema = zod_1.z.object({
@@ -95,4 +119,9 @@ exports.UpdateSortingOrderSchema = zod_1.z.object({
95
119
  startIndex: global_validation_1.ZodValidation.number('StartIndex').default(1),
96
120
  list: global_validation_1.ZodValidation.array(global_validation_1.ZodValidation.objectId('_id'), 'List', 1),
97
121
  });
122
+ exports.DeleteSchema = zod_1.z.object({
123
+ _id: global_validation_1.ZodValidation.objectId('_id'),
124
+ softDelete: global_validation_1.ZodValidation.boolean('Soft Delete').default(true),
125
+ });
126
+ exports.IdSchema = global_validation_1.ZodValidation.objectId();
98
127
  //# sourceMappingURL=common-validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common-validation.js","sourceRoot":"/","sources":["utilities/validation/common-validation.ts"],"names":[],"mappings":"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","sourcesContent":["import { z, ZodSchema } from 'zod';\r\nimport { ZodValidation } from './global-validation';\r\nimport { GeoLocationType, HolidayWorkStatus, WeekDay, WorkStatus } from '../enum';\r\n\r\n/**\r\n * Define allowed MongoDB sort orders\r\n */\r\nconst SortOrderSchema = z.union([z.literal(1), z.literal(-1), z.literal('asc'), z.literal('desc')]);\r\n\r\n/**\r\n * Define MongoDB query schema (fields + operators) using lazy evaluation to avoid circular dependency\r\n */\r\nconst MongoQuerySchema: z.ZodType<Record<string, any>> = z.lazy(() =>\r\n\tz.record(z.union([z.any(), MongoOperatorsSchema]))\r\n);\r\n\r\n/**\r\n * Define allowed MongoDB query operators\r\n */\r\nconst MongoOperatorsSchema = z.object({\r\n\t$eq: z.any().optional(),\r\n\t$ne: z.any().optional(),\r\n\t$gt: z.any().optional(),\r\n\t$gte: z.any().optional(),\r\n\t$lt: z.any().optional(),\r\n\t$lte: z.any().optional(),\r\n\t$in: z.array(z.any()).optional(),\r\n\t$nin: z.array(z.any()).optional(),\r\n\t$exists: z.boolean().optional(),\r\n\t$regex: z.string().optional(),\r\n\t$and: z.array(MongoQuerySchema).optional(),\r\n\t$or: z.array(MongoQuerySchema).optional(),\r\n\t$not: MongoQuerySchema.optional(),\r\n\t$nor: z.array(MongoQuerySchema).optional(),\r\n});\r\n\r\n/**\r\n * Define the filter schema using MongoQuerySchema\r\n */\r\nexport const FilterSchema = z\r\n\t.object({\r\n\t\tlimit: z\r\n\t\t\t.number()\r\n\t\t\t.min(1, { message: 'Limit must be greater than 0.' })\r\n\t\t\t.max(100, { message: 'Limit cannot exceed 100.' })\r\n\t\t\t.default(10),\r\n\t\tskip: z.number().min(0, { message: 'Skip cannot be negative.' }).default(0),\r\n\t\tsort: z.record(z.string(), SortOrderSchema).optional(),\r\n\t\tquery: MongoQuerySchema.optional(),\r\n\t\tselect: z.array(z.string()).optional(),\r\n\t\tpopulate: z.array(z.string()).optional(),\r\n\t})\r\n\t.optional();\r\n\r\n/**\r\n * Infer TypeScript type from Zod schema\r\n */\r\nexport type FilterDTO = z.infer<typeof FilterSchema>;\r\n\r\n/**\r\n * Define String schema\r\n */\r\nexport const StringSchema = z.string().min(1, 'String cannot be empty').max(255, 'String is too long');\r\n\r\n/**\r\n * Common address validation schema that can be reused across models.\r\n * Provides validation for address-related fields.\r\n *\r\n * @example\r\n * ```typescript\r\n * const userSchema = z.object({\r\n * name: z.string(),\r\n * address: AddressSchema\r\n * });\r\n * ```\r\n */\r\nexport const AddressSchema = z.object({\r\n\taddress: ZodValidation.string('Address'),\r\n\tdescription: ZodValidation.string('Description').optional(),\r\n\tcity: ZodValidation.string('City'),\r\n\tstate: ZodValidation.string('State'),\r\n\tcountry: ZodValidation.string('Country'),\r\n\tgeoLocationType: ZodValidation.enumType(GeoLocationType, 'GeoLocationType').default(GeoLocationType.POINT),\r\n\tcoordinates: ZodValidation.array(ZodValidation.number('Coordinate'), 'Coordinates', 2, 2),\r\n\tlatitude: ZodValidation.number('Latitude'),\r\n\tlongitude: ZodValidation.number('Longitude'),\r\n});\r\n\r\n/**\r\n * Common user address validation schema that can be reused across models.\r\n * Provides validation for address-related fields.\r\n *\r\n * @example\r\n * ```typescript\r\n * const userSchema = z.object({\r\n * name: z.string(),\r\n * address: UserAddressSchema\r\n * });\r\n * ```\r\n */\r\nexport const UserAddressSchema = AddressSchema.extend({\r\n\taddressLabel: ZodValidation.string('Address Label'),\r\n\tapartment: ZodValidation.string('Apartment'),\r\n\tbuildingName: ZodValidation.string('Building Name'),\r\n\tdeliveryOption: ZodValidation.string('Delivery Option').optional(),\r\n\tinstructions: ZodValidation.string('Instructions').optional(),\r\n});\r\n\r\n/**\r\n * Common duration validation schema that can be reused across models.\r\n * Provides validation for duration fields.\r\n *\r\n * @example\r\n * ```typescript\r\n * const subscriptionSchema = z.object({\r\n * fee: z.number(),\r\n * duration: DurationSchema\r\n * });\r\n * ```\r\n */\r\nexport const DurationSchema = z.object({\r\n\tstart: ZodValidation.date('Start'),\r\n\tend: ZodValidation.date('End').optional(),\r\n});\r\n\r\n/**\r\n * Common Work Hour validation schema that can be reused across models.\r\n * Provides validation for workHourSetting fields.\r\n *\r\n * @example\r\n * ```typescript\r\n * const settingSchema = z.object({\r\n * vat: z.number(),\r\n * workHourSetting: WorkHourSettingSchema\r\n * });\r\n * ```\r\n */\r\nconst StartEndTimeSchema = z.object({\r\n\tstart: ZodValidation.string('Start'),\r\n\tend: ZodValidation.string('End'),\r\n});\r\n\r\nexport const NormalHourSchema = z.object({\r\n\tday: ZodValidation.enumType(WeekDay, 'Day'),\r\n\tstatus: ZodValidation.enumType(WorkStatus, 'Status'),\r\n\topeningHours: ZodValidation.array(StartEndTimeSchema).default([]),\r\n});\r\n\r\nexport const HolidayHourSchema = z.object({\r\n\tdate: ZodValidation.date('Date'),\r\n\tstatus: ZodValidation.enumType(HolidayWorkStatus, 'Status'),\r\n\tclosingHour: StartEndTimeSchema,\r\n});\r\n\r\nexport const WorkHourSettingSchema = z.object({\r\n\tnormalHours: ZodValidation.array(NormalHourSchema).default([]),\r\n\tholidayHours: ZodValidation.array(HolidayHourSchema).default([]),\r\n});\r\n\r\n/**\r\n * Schema for validating user login credentials.\r\n * This schema ensures that the provided email and password meet the required validation rules.\r\n *\r\n * @example\r\n * ```typescript\r\n * const credentials = {\r\n * email: 'user@example.com',\r\n * password: 'securePassword123',\r\n * };\r\n * ```\r\n */\r\nexport const LoginSchema = z.object({\r\n\temail: ZodValidation.email('Email'),\r\n\tpassword: ZodValidation.string('Password'),\r\n});\r\n\r\nexport const createResponseSchema = <T>(schema: ZodSchema<T>) =>\r\n\tz.object({\r\n\t\tsuccess: ZodValidation.boolean(),\r\n\t\tmessage: ZodValidation.string(),\r\n\t\tdata: z.union([schema, z.array(schema)]).optional(),\r\n\t});\r\n\r\n/**\r\n * Schema for validating token data, typically used for authentication.\r\n * This schema ensures that the provided access token and refresh token are valid strings.\r\n *\r\n * @example\r\n * ```typescript\r\n * const tokens = {\r\n * accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',\r\n * refreshToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',\r\n * };\r\n * ```\r\n */\r\nexport const TokenSchema = z.object({\r\n\taccessToken: ZodValidation.string('AccessToken'),\r\n\trefreshToken: ZodValidation.string('RefreshToken'),\r\n});\r\n\r\n\r\n/**\r\n * Schema validation for sorting order\r\n */\r\nexport const UpdateSortingOrderSchema = z.object({\r\n\tstartIndex: ZodValidation.number('StartIndex').default(1),\r\n\tlist: ZodValidation.array(ZodValidation.objectId('_id'), 'List', 1),\r\n});"]}
1
+ {"version":3,"file":"common-validation.js","sourceRoot":"/","sources":["utilities/validation/common-validation.ts"],"names":[],"mappings":"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","sourcesContent":["import { z, ZodSchema } from 'zod';\r\nimport { DTO, ZodValidation } from './global-validation';\r\nimport { GeoLocationType, HolidayWorkStatus, WeekDay, WorkStatus } from '../enum';\r\n\r\n/**\r\n * Define MongoDB query schema (fields + operators) using lazy evaluation to avoid circular dependency\r\n */\r\nconst MongoQuerySchema: z.ZodType<Record<string, any>> = z.lazy(() =>\r\n\tz.record(z.union([z.any(), MongoOperatorsSchema]))\r\n);\r\n\r\n/**\r\n * Define allowed MongoDB query operators\r\n */\r\nconst MongoOperatorsSchema = z.object({\r\n\t$eq: z.any().optional(),\r\n\t$ne: z.any().optional(),\r\n\t$gt: z.any().optional(),\r\n\t$gte: z.any().optional(),\r\n\t$lt: z.any().optional(),\r\n\t$lte: z.any().optional(),\r\n\t$in: z.array(z.any()).optional(),\r\n\t$nin: z.array(z.any()).optional(),\r\n\t$exists: z.boolean().optional(),\r\n\t$regex: z.string().optional(),\r\n\t$and: z.array(MongoQuerySchema).optional(),\r\n\t$or: z.array(MongoQuerySchema).optional(),\r\n\t$not: MongoQuerySchema.optional(),\r\n\t$nor: z.array(MongoQuerySchema).optional(),\r\n});\r\n\r\nconst sortSchema = z.record(z.string(), z.union([z.literal(1), z.literal(-1)]));\r\n\r\nconst populateSchema = z.object({\r\n\tpath: z.string(), // required\r\n\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\r\n\tmatch: z.record(z.string(), z.any()).optional(),\r\n\toptions: z\r\n\t\t.object({\r\n\t\t\tsort: sortSchema.optional(),\r\n\t\t\tlimit: z.number().optional(),\r\n\t\t\tskip: z.number().optional(),\r\n\t\t})\r\n\t\t.optional(),\r\n});\r\n\r\n/**\r\n * Define the filter schema using MongoQuerySchema\r\n */\r\nexport const FilterSchema = z\r\n\t.object({\r\n\t\tsize: z\r\n\t\t\t.number()\r\n\t\t\t.min(1, { message: 'Size must be greater than 0.' })\r\n\t\t\t.max(100, { message: 'Size cannot exceed 100.' })\r\n\t\t\t.optional()\r\n\t\t\t.default(10),\r\n\t\tpage: z.number().min(1, { message: 'Page number must be at least 1.' }).optional().default(1),\r\n\t\tsort: sortSchema.optional(),\r\n\t\tquery: MongoQuerySchema.optional(),\r\n\t\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\r\n\t\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\r\n\t})\r\n\t.optional();\r\n\r\n/**\r\n * Infer TypeScript type from Zod schema\r\n */\r\nexport type FilterDTO = z.infer<typeof FilterSchema>;\r\n\r\n/**\r\n * Define String schema\r\n */\r\nexport const StringSchema = z.string().min(1, 'String cannot be empty').max(255, 'String is too long');\r\n\r\n/**\r\n * Common address validation schema that can be reused across models.\r\n * Provides validation for address-related fields.\r\n *\r\n * @example\r\n * ```typescript\r\n * const userSchema = z.object({\r\n * name: z.string(),\r\n * address: AddressSchema\r\n * });\r\n * ```\r\n */\r\nexport const AddressSchema = z.object({\r\n\taddress: ZodValidation.string('Address'),\r\n\tdescription: ZodValidation.string('Description').optional(),\r\n\tcity: ZodValidation.string('City'),\r\n\tstate: ZodValidation.string('State'),\r\n\tcountry: ZodValidation.string('Country'),\r\n\tgeoLocationType: ZodValidation.enumType(GeoLocationType, 'GeoLocationType').default(GeoLocationType.POINT),\r\n\tcoordinates: ZodValidation.array(ZodValidation.number('Coordinate'), 'Coordinates', 2, 2),\r\n\tlatitude: ZodValidation.number('Latitude'),\r\n\tlongitude: ZodValidation.number('Longitude'),\r\n});\r\n\r\n/**\r\n * Common user address validation schema that can be reused across models.\r\n * Provides validation for address-related fields.\r\n *\r\n * @example\r\n * ```typescript\r\n * const userSchema = z.object({\r\n * name: z.string(),\r\n * address: UserAddressSchema\r\n * });\r\n * ```\r\n */\r\nexport const UserAddressSchema = AddressSchema.extend({\r\n\taddressLabel: ZodValidation.string('Address Label'),\r\n\tapartment: ZodValidation.string('Apartment'),\r\n\tbuildingName: ZodValidation.string('Building Name'),\r\n\tdeliveryOption: ZodValidation.string('Delivery Option').optional(),\r\n\tinstructions: ZodValidation.string('Instructions').optional(),\r\n});\r\n\r\n/**\r\n * Common duration validation schema that can be reused across models.\r\n * Provides validation for duration fields.\r\n *\r\n * @example\r\n * ```typescript\r\n * const subscriptionSchema = z.object({\r\n * fee: z.number(),\r\n * duration: DurationSchema\r\n * });\r\n * ```\r\n */\r\nexport const DurationSchema = z.object({\r\n\tstart: ZodValidation.date('Start'),\r\n\tend: ZodValidation.date('End').optional(),\r\n});\r\n\r\n/**\r\n * Common Work Hour validation schema that can be reused across models.\r\n * Provides validation for workHourSetting fields.\r\n *\r\n * @example\r\n * ```typescript\r\n * const settingSchema = z.object({\r\n * vat: z.number(),\r\n * workHourSetting: WorkHourSettingSchema\r\n * });\r\n * ```\r\n */\r\nconst StartEndTimeSchema = z.object({\r\n\tstart: ZodValidation.string('Start'),\r\n\tend: ZodValidation.string('End'),\r\n});\r\n\r\nexport const NormalHourSchema = z.object({\r\n\tday: ZodValidation.enumType(WeekDay, 'Day'),\r\n\tstatus: ZodValidation.enumType(WorkStatus, 'Status'),\r\n\topeningHours: ZodValidation.array(StartEndTimeSchema).default([]),\r\n});\r\n\r\nexport const HolidayHourSchema = z.object({\r\n\tdate: ZodValidation.date('Date'),\r\n\tstatus: ZodValidation.enumType(HolidayWorkStatus, 'Status'),\r\n\tclosingHour: StartEndTimeSchema,\r\n});\r\n\r\nexport const WorkHourSettingSchema = z.object({\r\n\tnormalHours: ZodValidation.array(NormalHourSchema).default([]),\r\n\tholidayHours: ZodValidation.array(HolidayHourSchema).default([]),\r\n});\r\n\r\n/**\r\n * Schema for validating user login credentials.\r\n * This schema ensures that the provided email and password meet the required validation rules.\r\n *\r\n * @example\r\n * ```typescript\r\n * const credentials = {\r\n * email: 'user@example.com',\r\n * password: 'securePassword123',\r\n * };\r\n * ```\r\n */\r\nexport const LoginSchema = z.object({\r\n\temail: ZodValidation.email('Email'),\r\n\tpassword: ZodValidation.string('Password'),\r\n});\r\n\r\nconst metadataSchema = z.object({\r\n\tpage: ZodValidation.number(),\r\n\tsize: ZodValidation.number(),\r\n\ttotalElements: ZodValidation.number(),\r\n\ttotalPages: ZodValidation.number(),\r\n});\r\n\r\nexport const createPaginatedSchema = <T>(documentSchema: z.ZodSchema<T>) =>\r\n\tz.object({\r\n\t\tmetadata: metadataSchema.optional(),\r\n\t\tdocuments: ZodValidation.array(documentSchema),\r\n\t});\r\n\r\nexport const createResponseSchema = <T>(schema: z.ZodSchema<T>) =>\r\n\tz.object({\r\n\t\tsuccess: ZodValidation.boolean(),\r\n\t\tmessage: ZodValidation.string(),\r\n\t\tdata: z.union([createPaginatedSchema(schema), schema]).optional(),\r\n\t});\r\n\r\n/**\r\n * Schema for validating token data, typically used for authentication.\r\n * This schema ensures that the provided access token and refresh token are valid strings.\r\n *\r\n * @example\r\n * ```typescript\r\n * const tokens = {\r\n * accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',\r\n * refreshToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',\r\n * };\r\n * ```\r\n */\r\nexport const TokenSchema = z.object({\r\n\taccessToken: ZodValidation.string('AccessToken'),\r\n\trefreshToken: ZodValidation.string('RefreshToken'),\r\n});\r\n\r\n/**\r\n * Schema validation for sorting order\r\n */\r\nexport const UpdateSortingOrderSchema = z.object({\r\n\tstartIndex: ZodValidation.number('StartIndex').default(1),\r\n\tlist: ZodValidation.array(ZodValidation.objectId('_id'), 'List', 1),\r\n});\r\nexport type UpdateSortingOrderDTO = DTO<typeof UpdateSortingOrderSchema>;\r\n\r\n/**\r\n * Schema validation for delete\r\n */\r\nexport const DeleteSchema = z.object({\r\n\t_id: ZodValidation.objectId('_id'),\r\n\tsoftDelete: ZodValidation.boolean('Soft Delete').default(true),\r\n});\r\nexport type DeleteDTO = DTO<typeof DeleteSchema>;\r\n\r\n/**\r\n * Schema validation for Id\r\n */\r\nexport const IdSchema = ZodValidation.objectId();\r\n"]}