@lyxa.ai/core 1.0.280 → 1.0.282-alpha.0

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 (34) hide show
  1. package/dist/index.js +4 -2
  2. package/dist/index.js.map +1 -1
  3. package/dist/libraries/configuration/index.d.ts +1 -0
  4. package/dist/libraries/configuration/index.js.map +1 -1
  5. package/dist/libraries/mongo/models/cart.model.d.ts +16 -4
  6. package/dist/libraries/mongo/models/cart.model.js +65 -20
  7. package/dist/libraries/mongo/models/cart.model.js.map +1 -1
  8. package/dist/libraries/mongo/models/product.model.d.ts +1 -0
  9. package/dist/libraries/mongo/models/product.model.js +7 -0
  10. package/dist/libraries/mongo/models/product.model.js.map +1 -1
  11. package/dist/libraries/mongo/models/shop.model.js +1 -1
  12. package/dist/libraries/mongo/models/shop.model.js.map +1 -1
  13. package/dist/libraries/mongo/models/user.model.d.ts +1 -1
  14. package/dist/libraries/mongo/utilities/uniqueIdHooks.d.ts +6 -0
  15. package/dist/libraries/mongo/utilities/uniqueIdHooks.js +17 -0
  16. package/dist/libraries/mongo/utilities/uniqueIdHooks.js.map +1 -0
  17. package/dist/types/README.md +1 -1
  18. package/dist/types/package.json +1 -1
  19. package/dist/types/utilities/validation/common-validation.d.ts +145 -2
  20. package/dist/types/utilities/validation/common-validation.js +4 -1
  21. package/dist/types/utilities/validation/common-validation.js.map +1 -1
  22. package/dist/types/utilities/validation/global-validation.d.ts +39 -14
  23. package/dist/types/utilities/validation/global-validation.js +29 -0
  24. package/dist/types/utilities/validation/global-validation.js.map +1 -1
  25. package/dist/utilities/map.d.ts +2 -2
  26. package/dist/utilities/map.js +10 -10
  27. package/dist/utilities/map.js.map +1 -1
  28. package/dist/utilities/validation/common-validation.d.ts +145 -2
  29. package/dist/utilities/validation/common-validation.js +4 -1
  30. package/dist/utilities/validation/common-validation.js.map +1 -1
  31. package/dist/utilities/validation/global-validation.d.ts +39 -14
  32. package/dist/utilities/validation/global-validation.js +29 -0
  33. package/dist/utilities/validation/global-validation.js.map +1 -1
  34. package/package.json +4 -4
@@ -26,43 +26,43 @@ exports.COURIER_ORDER_STATUS_MAP = {
26
26
  exports.REGULAR_ORDER_STATUS_RULE = {
27
27
  [enum_1.RegularOrderStatus.SCHEDULED]: {
28
28
  order: 1,
29
- accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.USER]
29
+ accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.USER],
30
30
  },
31
31
  [enum_1.RegularOrderStatus.PLACED]: {
32
32
  order: 2,
33
- accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.USER, auth_1.AuthEntityType.SELLER]
33
+ accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.USER, auth_1.AuthEntityType.SELLER],
34
34
  },
35
35
  [enum_1.RegularOrderStatus.ACCEPTED_BY_RIDER]: {
36
36
  order: 3,
37
- accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.DELIVERY_BOY]
37
+ accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.DELIVERY_BOY],
38
38
  },
39
39
  [enum_1.RegularOrderStatus.PREPARING]: {
40
40
  order: 3,
41
- accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.SELLER]
41
+ accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.SELLER],
42
42
  },
43
43
  [enum_1.RegularOrderStatus.READY_FOR_PICKUP]: {
44
44
  order: 4,
45
- accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.SELLER]
45
+ accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.SELLER],
46
46
  },
47
47
  [enum_1.RegularOrderStatus.RIDER_ARRIVED_AT_STORE]: {
48
48
  order: 4,
49
- accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.DELIVERY_BOY]
49
+ accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.DELIVERY_BOY, auth_1.AuthEntityType.SELLER],
50
50
  },
51
51
  [enum_1.RegularOrderStatus.ON_THE_WAY]: {
52
52
  order: 5,
53
- accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.DELIVERY_BOY]
53
+ accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.DELIVERY_BOY],
54
54
  },
55
55
  [enum_1.RegularOrderStatus.REPLACEMENT_DROP_AND_PICKUP]: {
56
56
  order: 6,
57
- accessBy: [auth_1.AuthEntityType.CRM]
57
+ accessBy: [auth_1.AuthEntityType.CRM],
58
58
  },
59
59
  [enum_1.RegularOrderStatus.DELIVERED]: {
60
60
  order: 6,
61
- accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.DELIVERY_BOY]
61
+ accessBy: [auth_1.AuthEntityType.CRM, auth_1.AuthEntityType.DELIVERY_BOY],
62
62
  },
63
63
  [enum_1.RegularOrderStatus.CANCELLED]: {
64
64
  order: 99,
65
- accessBy: [auth_1.AuthEntityType.CRM]
65
+ accessBy: [auth_1.AuthEntityType.CRM],
66
66
  },
67
67
  };
68
68
  //# sourceMappingURL=map.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"/","sources":["utilities/map.ts"],"names":[],"mappings":"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","sourcesContent":["import { AuthEntityType } from \"../libraries/auth\";\nimport { CourierOrderStatus, RegularOrderStatus } from \"./enum\";\n\n// Order mapping with numeric values for easy comparison\nexport const REGULAR_ORDER_STATUS_MAP: Record<RegularOrderStatus, number> = {\n\t[RegularOrderStatus.SCHEDULED]: 1,\n\t[RegularOrderStatus.PLACED]: 2,\n\t[RegularOrderStatus.ACCEPTED_BY_RIDER]: 3,\n\t[RegularOrderStatus.PREPARING]: 4,\n\t[RegularOrderStatus.READY_FOR_PICKUP]: 5,\n\t[RegularOrderStatus.RIDER_ARRIVED_AT_STORE]: 6,\n\t[RegularOrderStatus.ON_THE_WAY]: 7,\n\t[RegularOrderStatus.REPLACEMENT_DROP_AND_PICKUP]: 8,\n\t[RegularOrderStatus.DELIVERED]: 9,\n\t[RegularOrderStatus.CANCELLED]: 99, \n};\nexport const COURIER_ORDER_STATUS_MAP: Record<CourierOrderStatus, number> = {\n\t[CourierOrderStatus.SCHEDULED]: 1,\n\t[CourierOrderStatus.PLACED]: 2,\n\t[CourierOrderStatus.ACCEPTED_BY_RIDER]: 3,\n\t[CourierOrderStatus.ON_THE_WAY]: 4,\n\t[CourierOrderStatus.DELIVERED]: 5,\n\t[CourierOrderStatus.CANCELLED]: 99, \n};\n\nexport const REGULAR_ORDER_STATUS_RULE: Record<RegularOrderStatus, { order: number, accessBy: AuthEntityType[]}> = {\n\t[RegularOrderStatus.SCHEDULED]: {\n\t\torder: 1,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.USER]\n\t},\n\t[RegularOrderStatus.PLACED]: {\n\t\torder: 2,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.USER, AuthEntityType.SELLER]\n\t},\n\t[RegularOrderStatus.ACCEPTED_BY_RIDER]: {\n\t\torder: 3,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.DELIVERY_BOY]\n\t},\n\t[RegularOrderStatus.PREPARING]: {\n\t\torder: 3,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.SELLER]\n\t},\n\t[RegularOrderStatus.READY_FOR_PICKUP]: {\n\t\torder: 4,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.SELLER]\n\t},\n\t[RegularOrderStatus.RIDER_ARRIVED_AT_STORE]: {\n\t\torder: 4,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.DELIVERY_BOY]\n\t},\n\t[RegularOrderStatus.ON_THE_WAY]: {\n\t\torder: 5,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.DELIVERY_BOY]\n\t},\n\t[RegularOrderStatus.REPLACEMENT_DROP_AND_PICKUP]: {\n\t\torder: 6,\n\t\taccessBy: [AuthEntityType.CRM]\n\t},\n\t[RegularOrderStatus.DELIVERED]: {\n\t\torder: 6,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.DELIVERY_BOY]\n\t},\n\t[RegularOrderStatus.CANCELLED]: {\n\t\torder: 99,\n\t\taccessBy: [AuthEntityType.CRM]\n\t}, \n};"]}
1
+ {"version":3,"file":"map.js","sourceRoot":"/","sources":["utilities/map.ts"],"names":[],"mappings":"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","sourcesContent":["import { AuthEntityType } from '../libraries/auth';\nimport { CourierOrderStatus, RegularOrderStatus } from './enum';\n\n// Order mapping with numeric values for easy comparison\nexport const REGULAR_ORDER_STATUS_MAP: Record<RegularOrderStatus, number> = {\n\t[RegularOrderStatus.SCHEDULED]: 1,\n\t[RegularOrderStatus.PLACED]: 2,\n\t[RegularOrderStatus.ACCEPTED_BY_RIDER]: 3,\n\t[RegularOrderStatus.PREPARING]: 4,\n\t[RegularOrderStatus.READY_FOR_PICKUP]: 5,\n\t[RegularOrderStatus.RIDER_ARRIVED_AT_STORE]: 6,\n\t[RegularOrderStatus.ON_THE_WAY]: 7,\n\t[RegularOrderStatus.REPLACEMENT_DROP_AND_PICKUP]: 8,\n\t[RegularOrderStatus.DELIVERED]: 9,\n\t[RegularOrderStatus.CANCELLED]: 99,\n};\nexport const COURIER_ORDER_STATUS_MAP: Record<CourierOrderStatus, number> = {\n\t[CourierOrderStatus.SCHEDULED]: 1,\n\t[CourierOrderStatus.PLACED]: 2,\n\t[CourierOrderStatus.ACCEPTED_BY_RIDER]: 3,\n\t[CourierOrderStatus.ON_THE_WAY]: 4,\n\t[CourierOrderStatus.DELIVERED]: 5,\n\t[CourierOrderStatus.CANCELLED]: 99,\n};\n\nexport const REGULAR_ORDER_STATUS_RULE: Record<\n\tRegularOrderStatus,\n\t{ order: number; accessBy: AuthEntityType[] }\n> = {\n\t[RegularOrderStatus.SCHEDULED]: {\n\t\torder: 1,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.USER],\n\t},\n\t[RegularOrderStatus.PLACED]: {\n\t\torder: 2,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.USER, AuthEntityType.SELLER],\n\t},\n\t[RegularOrderStatus.ACCEPTED_BY_RIDER]: {\n\t\torder: 3,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.DELIVERY_BOY],\n\t},\n\t[RegularOrderStatus.PREPARING]: {\n\t\torder: 3,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.SELLER],\n\t},\n\t[RegularOrderStatus.READY_FOR_PICKUP]: {\n\t\torder: 4,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.SELLER],\n\t},\n\t[RegularOrderStatus.RIDER_ARRIVED_AT_STORE]: {\n\t\torder: 4,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.DELIVERY_BOY, AuthEntityType.SELLER],\n\t},\n\t[RegularOrderStatus.ON_THE_WAY]: {\n\t\torder: 5,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.DELIVERY_BOY],\n\t},\n\t[RegularOrderStatus.REPLACEMENT_DROP_AND_PICKUP]: {\n\t\torder: 6,\n\t\taccessBy: [AuthEntityType.CRM],\n\t},\n\t[RegularOrderStatus.DELIVERED]: {\n\t\torder: 6,\n\t\taccessBy: [AuthEntityType.CRM, AuthEntityType.DELIVERY_BOY],\n\t},\n\t[RegularOrderStatus.CANCELLED]: {\n\t\torder: 99,\n\t\taccessBy: [AuthEntityType.CRM],\n\t},\n};\n"]}
@@ -154,6 +154,73 @@ export declare const UserAddressSchema: z.ZodObject<{
154
154
  instructions?: string | undefined;
155
155
  }>;
156
156
  export type UserAddressDTO = DTO<typeof UserAddressSchema>;
157
+ export declare const RegularOrderAddressSchema: z.ZodObject<{
158
+ address: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
159
+ description: z.ZodOptional<z.ZodString> | z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
160
+ city: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
161
+ state: z.ZodOptional<z.ZodString> | z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
162
+ country: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
163
+ location: z.ZodObject<{
164
+ type: z.ZodDefault<z.ZodNativeEnum<typeof GeoLocationType>>;
165
+ coordinates: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
166
+ }, "strip", z.ZodTypeAny, {
167
+ type: GeoLocationType;
168
+ coordinates: [number, number];
169
+ }, {
170
+ coordinates: [number, number];
171
+ type?: GeoLocationType | undefined;
172
+ }>;
173
+ latitude: z.ZodNumber;
174
+ longitude: z.ZodNumber;
175
+ zone: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>>;
176
+ } & {
177
+ addressLabel: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
178
+ apartment: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
179
+ buildingName: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
180
+ deliveryOption: z.ZodOptional<z.ZodString> | z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
181
+ instructions: z.ZodOptional<z.ZodString> | z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
182
+ } & {
183
+ addressId: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
184
+ }, "strip", z.ZodTypeAny, {
185
+ location: {
186
+ type: GeoLocationType;
187
+ coordinates: [number, number];
188
+ };
189
+ address: string;
190
+ country: string;
191
+ city: string;
192
+ latitude: number;
193
+ longitude: number;
194
+ addressLabel: string;
195
+ apartment: string;
196
+ buildingName: string;
197
+ addressId: mongoose.Types.ObjectId;
198
+ state?: string | undefined;
199
+ description?: string | undefined;
200
+ zone?: mongoose.Types.ObjectId | undefined;
201
+ deliveryOption?: string | undefined;
202
+ instructions?: string | undefined;
203
+ }, {
204
+ location: {
205
+ coordinates: [number, number];
206
+ type?: GeoLocationType | undefined;
207
+ };
208
+ address: string;
209
+ country: string;
210
+ city: string;
211
+ latitude: number;
212
+ longitude: number;
213
+ addressLabel: string;
214
+ apartment: string;
215
+ buildingName: string;
216
+ addressId: string | mongoose.Types.ObjectId;
217
+ state?: string | undefined;
218
+ description?: string | undefined;
219
+ zone?: string | mongoose.Types.ObjectId | undefined;
220
+ deliveryOption?: string | undefined;
221
+ instructions?: string | undefined;
222
+ }>;
223
+ export type RegularOrderAddressDTO = DTO<typeof RegularOrderAddressSchema>;
157
224
  export declare const CourierAddressSchema: z.ZodObject<{
158
225
  address: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
159
226
  description: z.ZodOptional<z.ZodString> | z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
@@ -504,7 +571,83 @@ export declare const createResponseSchema: <T>(schema: z.ZodSchema<T>) => z.ZodO
504
571
  totalPages: number;
505
572
  } | undefined;
506
573
  }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
507
- }>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<{
574
+ }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
575
+ success: z.ZodBoolean;
576
+ message: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
577
+ data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
578
+ metadata: z.ZodOptional<z.ZodObject<{
579
+ page: z.ZodNumber;
580
+ size: z.ZodNumber;
581
+ totalElements: z.ZodNumber;
582
+ totalPages: z.ZodNumber;
583
+ }, "strip", z.ZodTypeAny, {
584
+ page: number;
585
+ size: number;
586
+ totalElements: number;
587
+ totalPages: number;
588
+ }, {
589
+ page: number;
590
+ size: number;
591
+ totalElements: number;
592
+ totalPages: number;
593
+ }>>;
594
+ documents: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
595
+ }, "strip", z.ZodTypeAny, {
596
+ documents: T[];
597
+ metadata?: {
598
+ page: number;
599
+ size: number;
600
+ totalElements: number;
601
+ totalPages: number;
602
+ } | undefined;
603
+ }, {
604
+ documents: T[];
605
+ metadata?: {
606
+ page: number;
607
+ size: number;
608
+ totalElements: number;
609
+ totalPages: number;
610
+ } | undefined;
611
+ }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
612
+ }>, any>[k]; } : never, z.baseObjectInputType<{
613
+ success: z.ZodBoolean;
614
+ message: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
615
+ data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
616
+ metadata: z.ZodOptional<z.ZodObject<{
617
+ page: z.ZodNumber;
618
+ size: z.ZodNumber;
619
+ totalElements: z.ZodNumber;
620
+ totalPages: z.ZodNumber;
621
+ }, "strip", z.ZodTypeAny, {
622
+ page: number;
623
+ size: number;
624
+ totalElements: number;
625
+ totalPages: number;
626
+ }, {
627
+ page: number;
628
+ size: number;
629
+ totalElements: number;
630
+ totalPages: number;
631
+ }>>;
632
+ documents: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
633
+ }, "strip", z.ZodTypeAny, {
634
+ documents: T[];
635
+ metadata?: {
636
+ page: number;
637
+ size: number;
638
+ totalElements: number;
639
+ totalPages: number;
640
+ } | undefined;
641
+ }, {
642
+ documents: T[];
643
+ metadata?: {
644
+ page: number;
645
+ size: number;
646
+ totalElements: number;
647
+ totalPages: number;
648
+ } | undefined;
649
+ }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
650
+ }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
508
651
  success: z.ZodBoolean;
509
652
  message: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
510
653
  data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
@@ -542,7 +685,7 @@ export declare const createResponseSchema: <T>(schema: z.ZodSchema<T>) => z.ZodO
542
685
  totalPages: number;
543
686
  } | undefined;
544
687
  }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
545
- }> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
688
+ }>[k_1]; } : never>;
546
689
  export declare const TokenSchema: z.ZodObject<{
547
690
  accessToken: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
548
691
  refreshToken: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ShareableLinkResponseSchema = exports.GetOneQuerySchema = exports.GetByIdInputSchema = exports.IdSchema = exports.DeleteSchema = exports.UpdateSortingOrderSchema = exports.TokenSchema = exports.createResponseSchema = exports.createPaginatedSchema = exports.LoginSchema = exports.WorkHourSettingSchema = exports.HolidayHourSchema = exports.NormalHourSchema = exports.DurationSchema = exports.CourierAddressSchema = exports.UserAddressSchema = exports.AddressSchema = exports.StringSchema = exports.FilterSchema = void 0;
3
+ exports.ShareableLinkResponseSchema = exports.GetOneQuerySchema = exports.GetByIdInputSchema = exports.IdSchema = exports.DeleteSchema = exports.UpdateSortingOrderSchema = exports.TokenSchema = exports.createResponseSchema = exports.createPaginatedSchema = exports.LoginSchema = exports.WorkHourSettingSchema = exports.HolidayHourSchema = exports.NormalHourSchema = exports.DurationSchema = exports.CourierAddressSchema = exports.RegularOrderAddressSchema = 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");
@@ -76,6 +76,9 @@ exports.UserAddressSchema = exports.AddressSchema.extend({
76
76
  deliveryOption: global_validation_1.ZodValidation.string('Delivery Option').optional(),
77
77
  instructions: global_validation_1.ZodValidation.string('Instructions').optional(),
78
78
  });
79
+ exports.RegularOrderAddressSchema = exports.UserAddressSchema.extend({
80
+ addressId: global_validation_1.ZodValidation.objectId('ID of the user address'),
81
+ });
79
82
  exports.CourierAddressSchema = exports.UserAddressSchema.extend({
80
83
  name: global_validation_1.ZodValidation.string('Name'),
81
84
  phoneNumber: global_validation_1.ZodValidation.string('Phone Number'),
@@ -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 } from 'zod';\nimport { DTO, ZodValidation } from './global-validation';\nimport { GeoLocationType, HolidayWorkStatus, WeekDay, WorkStatus } from '../enum';\nimport { mongoose } from '@typegoose/typegoose';\n\n/**\n * Define MongoDB query schema (fields + operators) using lazy evaluation to avoid circular dependency\n */\nconst MongoQuerySchema: z.ZodType<Record<string, any>> = z.lazy(() =>\n\tz.record(z.union([z.any(), MongoOperatorsSchema]))\n);\n\n/**\n * Define allowed MongoDB query operators\n */\nconst MongoOperatorsSchema = z.object({\n\t$eq: z.any().optional(),\n\t$ne: z.any().optional(),\n\t$gt: z.any().optional(),\n\t$gte: z.any().optional(),\n\t$lt: z.any().optional(),\n\t$lte: z.any().optional(),\n\t$in: z.array(z.any()).optional(),\n\t$nin: z.array(z.any()).optional(),\n\t$exists: z.boolean().optional(),\n\t$regex: z.string().optional(),\n\t$and: z.array(MongoQuerySchema).optional(),\n\t$or: z.array(MongoQuerySchema).optional(),\n\t$not: MongoQuerySchema.optional(),\n\t$nor: z.array(MongoQuerySchema).optional(),\n});\n\nconst sortSchema = z.record(z.string(), z.union([z.literal(1), z.literal(-1)]));\n\nconst populateSchema: z.ZodType<any> = z.lazy(() =>\n\tz.object({\n\t\tpath: z.string(), // required\n\t\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\t\tmatch: z.record(z.string(), z.any()).optional(),\n\t\toptions: z\n\t\t\t.object({\n\t\t\t\tsort: sortSchema.optional(),\n\t\t\t\tlimit: z.number().optional(),\n\t\t\t\tskip: z.number().optional(),\n\t\t\t})\n\t\t\t.optional(),\n\t\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n\t})\n);\n\n/**\n * Define the filter schema using MongoQuerySchema\n */\nexport const FilterSchema = z\n\t.object({\n\t\tsize: z\n\t\t\t.number()\n\t\t\t.min(1, { message: 'Size must be greater than 0.' })\n\t\t\t.max(100, { message: 'Size cannot exceed 100.' })\n\t\t\t.optional()\n\t\t\t.default(10),\n\t\tpage: z.number().min(1, { message: 'Page number must be at least 1.' }).optional().default(1),\n\t\tsort: sortSchema.optional(),\n\t\tquery: MongoQuerySchema.optional(),\n\t\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\t\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n\t\tsearch: z.object({ searchKey: z.string(), searchFields: z.array(z.string()).optional() }).optional(),\n\t})\n\t.optional();\n\n/**\n * Infer TypeScript type from Zod schema\n */\nexport type FilterDTO = z.infer<typeof FilterSchema>;\n\n/**\n * Define String schema\n */\nexport const StringSchema = z.string().min(1, 'String cannot be empty').max(255, 'String is too long');\n\n/**\n * Common address validation schema that can be reused across models.\n * Provides validation for address-related fields.\n *\n * @example\n * ```typescript\n * const userSchema = z.object({\n * name: z.string(),\n * address: AddressSchema\n * });\n * ```\n */\nexport const AddressSchema = z.object({\n\taddress: ZodValidation.string('Address'),\n\tdescription: ZodValidation.string('Description').optional(),\n\tcity: ZodValidation.string('City'),\n\tstate: ZodValidation.string('State').optional(),\n\tcountry: ZodValidation.string('Country'),\n\tlocation: z.object({\n\t\ttype: ZodValidation.enumType(GeoLocationType, 'GeoLocationType').default(GeoLocationType.POINT),\n\t\tcoordinates: z.tuple([\n\t\t\tZodValidation.number('Longitude', { min: -180, max: 180 }),\n\t\t\tZodValidation.number('Latitude', { min: -90, max: 90 }),\n\t\t]),\n\t}),\n\tlatitude: ZodValidation.number('Latitude', { min: -90, max: 90 }),\n\tlongitude: ZodValidation.number('Longitude', { min: -180, max: 180 }),\n\tzone: ZodValidation.objectId('Zone').optional(),\n});\nexport type AddressDTO = DTO<typeof AddressSchema>;\n\n/**\n * Common user address validation schema that can be reused across models.\n * Provides validation for address-related fields.\n *\n * @example\n * ```typescript\n * const userSchema = z.object({\n * name: z.string(),\n * address: UserAddressSchema\n * });\n * ```\n */\nexport const UserAddressSchema = AddressSchema.extend({\n\taddressLabel: ZodValidation.string('Address Label'),\n\tapartment: ZodValidation.string('Apartment'),\n\tbuildingName: ZodValidation.string('Building Name'),\n\tdeliveryOption: ZodValidation.string('Delivery Option').optional(),\n\tinstructions: ZodValidation.string('Instructions').optional(),\n});\nexport type UserAddressDTO = DTO<typeof UserAddressSchema>;\n\n/**\n * Common courier address validation schema that can be reused across models.\n * Provides validation for address-related fields.\n *\n * @example\n * ```typescript\n * const courierAddressSchema = z.object({\n * name: z.string(),\n * address: courierAddressSchema\n * });\n * ```\n */\nexport const CourierAddressSchema = UserAddressSchema.extend({\n\tname: ZodValidation.string('Name'),\n\tphoneNumber: ZodValidation.string('Phone Number'),\n});\nexport type CourierAddressDTO = DTO<typeof CourierAddressSchema>;\n\n/**\n * Common duration validation schema that can be reused across models.\n * Provides validation for duration fields.\n *\n * @example\n * ```typescript\n * const subscriptionSchema = z.object({\n * fee: z.number(),\n * duration: DurationSchema\n * });\n * ```\n */\nexport const DurationSchema = z.object({\n\tstart: ZodValidation.date('Start'),\n\tend: ZodValidation.date('End').optional(),\n});\n\n/**\n * Common Work Hour validation schema that can be reused across models.\n * Provides validation for workHourSetting fields.\n *\n * @example\n * ```typescript\n * const settingSchema = z.object({\n * vat: z.number(),\n * workHourSetting: WorkHourSettingSchema\n * });\n * ```\n */\nconst StartEndTimeSchema = z.object({\n\tstart: ZodValidation.string('Start'),\n\tend: ZodValidation.string('End'),\n});\n\nexport const NormalHourSchema = z.object({\n\tday: ZodValidation.enumType(WeekDay, 'Day'),\n\tstatus: ZodValidation.enumType(WorkStatus, 'Status'),\n\topeningHours: ZodValidation.array(StartEndTimeSchema).default([]),\n});\n\nexport const HolidayHourSchema = z.object({\n\tdate: ZodValidation.date('Date'),\n\tstatus: ZodValidation.enumType(HolidayWorkStatus, 'Status'),\n\tclosingHour: StartEndTimeSchema,\n});\n\nexport const WorkHourSettingSchema = z.object({\n\tnormalHours: ZodValidation.array(NormalHourSchema).default([]),\n\tholidayHours: ZodValidation.array(HolidayHourSchema).default([]),\n});\n\n/**\n * Schema for validating user login credentials.\n * This schema ensures that the provided email and password meet the required validation rules.\n *\n * @example\n * ```typescript\n * const credentials = {\n * email: 'user@example.com',\n * password: 'securePassword123',\n * };\n * ```\n */\nexport const LoginSchema = z.object({\n\temail: ZodValidation.email('Email', {\n\t\trequiredMessage: 'Please enter a valid email address.',\n\t\tinvalidMessage: 'Please enter a valid email address.',\n\t}),\n\tpassword: ZodValidation.string('Password', { requiredMessage: 'Please enter password' }),\n});\nexport type LoginDTO = DTO<typeof LoginSchema>;\n\nconst metadataSchema = z.object({\n\tpage: ZodValidation.number(),\n\tsize: ZodValidation.number(),\n\ttotalElements: ZodValidation.number(),\n\ttotalPages: ZodValidation.number(),\n});\nexport const createPaginatedSchema = <T>(documentSchema: z.ZodSchema<T>) =>\n\tz.object({\n\t\tmetadata: metadataSchema.optional(),\n\t\tdocuments: ZodValidation.array(documentSchema),\n\t});\n\nexport const createResponseSchema = <T>(schema: z.ZodSchema<T>) =>\n\tz.object({\n\t\tsuccess: ZodValidation.boolean(),\n\t\tmessage: ZodValidation.string(),\n\t\tdata: z.union([createPaginatedSchema(schema), schema]).optional(),\n\t});\n\n/**\n * Schema for validating token data, typically used for authentication.\n * This schema ensures that the provided access token and refresh token are valid strings.\n *\n * @example\n * ```typescript\n * const tokens = {\n * accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',\n * refreshToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',\n * };\n * ```\n */\nexport const TokenSchema = z.object({\n\taccessToken: ZodValidation.string('AccessToken'),\n\trefreshToken: ZodValidation.string('RefreshToken'),\n});\n\n/**\n * Schema validation for sorting order\n */\nexport const UpdateSortingOrderSchema = z.object({\n\t_id: ZodValidation.objectId('_id'),\n\tnewPosition: ZodValidation.number('New position'),\n});\nexport type UpdateSortingOrderDTO = DTO<typeof UpdateSortingOrderSchema>;\n\n/**\n * Schema validation for delete\n */\nexport const DeleteSchema = z.object({\n\t_id: ZodValidation.objectId('_id'),\n\tsoftDelete: ZodValidation.boolean('Soft Delete').default(true),\n});\nexport type DeleteDTO = DTO<typeof DeleteSchema>;\n\n/**\n * Schema validation for Id\n */\nexport const IdSchema = ZodValidation.objectId();\n\n/**\n * Schema validation get by id\n */\nexport const GetByIdInputSchema = z.object({\n\t_id: ZodValidation.objectId('_id'),\n\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n});\nexport type GetByIdInputDTO = DTO<typeof GetByIdInputSchema>;\n\nexport const GetOneQuerySchema = z.object({\n\tquery: MongoQuerySchema.optional(),\n\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n})\n\nexport type GetOneQueryDTO = DTO<typeof GetOneQuerySchema>;\n\nconst ShareableLinkSchema = z.object({\n\tlink: ZodValidation.url(),\n});\n\nexport const ShareableLinkResponseSchema = createResponseSchema(ShareableLinkSchema);\nexport type ShareableLinkDTO = DTO<typeof ShareableLinkSchema>;\n"]}
1
+ {"version":3,"file":"common-validation.js","sourceRoot":"/","sources":["utilities/validation/common-validation.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { DTO, ZodValidation } from './global-validation';\nimport { GeoLocationType, HolidayWorkStatus, WeekDay, WorkStatus } from '../enum';\nimport { mongoose } from '@typegoose/typegoose';\n\n/**\n * Define MongoDB query schema (fields + operators) using lazy evaluation to avoid circular dependency\n */\nconst MongoQuerySchema: z.ZodType<Record<string, any>> = z.lazy(() =>\n\tz.record(z.union([z.any(), MongoOperatorsSchema]))\n);\n\n/**\n * Define allowed MongoDB query operators\n */\nconst MongoOperatorsSchema = z.object({\n\t$eq: z.any().optional(),\n\t$ne: z.any().optional(),\n\t$gt: z.any().optional(),\n\t$gte: z.any().optional(),\n\t$lt: z.any().optional(),\n\t$lte: z.any().optional(),\n\t$in: z.array(z.any()).optional(),\n\t$nin: z.array(z.any()).optional(),\n\t$exists: z.boolean().optional(),\n\t$regex: z.string().optional(),\n\t$and: z.array(MongoQuerySchema).optional(),\n\t$or: z.array(MongoQuerySchema).optional(),\n\t$not: MongoQuerySchema.optional(),\n\t$nor: z.array(MongoQuerySchema).optional(),\n});\n\nconst sortSchema = z.record(z.string(), z.union([z.literal(1), z.literal(-1)]));\n\nconst populateSchema: z.ZodType<any> = z.lazy(() =>\n\tz.object({\n\t\tpath: z.string(), // required\n\t\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\t\tmatch: z.record(z.string(), z.any()).optional(),\n\t\toptions: z\n\t\t\t.object({\n\t\t\t\tsort: sortSchema.optional(),\n\t\t\t\tlimit: z.number().optional(),\n\t\t\t\tskip: z.number().optional(),\n\t\t\t})\n\t\t\t.optional(),\n\t\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n\t})\n);\n\n/**\n * Define the filter schema using MongoQuerySchema\n */\nexport const FilterSchema = z\n\t.object({\n\t\tsize: z\n\t\t\t.number()\n\t\t\t.min(1, { message: 'Size must be greater than 0.' })\n\t\t\t.max(100, { message: 'Size cannot exceed 100.' })\n\t\t\t.optional()\n\t\t\t.default(10),\n\t\tpage: z.number().min(1, { message: 'Page number must be at least 1.' }).optional().default(1),\n\t\tsort: sortSchema.optional(),\n\t\tquery: MongoQuerySchema.optional(),\n\t\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\t\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n\t\tsearch: z.object({ searchKey: z.string(), searchFields: z.array(z.string()).optional() }).optional(),\n\t})\n\t.optional();\n\n/**\n * Infer TypeScript type from Zod schema\n */\nexport type FilterDTO = z.infer<typeof FilterSchema>;\n\n/**\n * Define String schema\n */\nexport const StringSchema = z.string().min(1, 'String cannot be empty').max(255, 'String is too long');\n\n/**\n * Common address validation schema that can be reused across models.\n * Provides validation for address-related fields.\n *\n * @example\n * ```typescript\n * const userSchema = z.object({\n * name: z.string(),\n * address: AddressSchema\n * });\n * ```\n */\nexport const AddressSchema = z.object({\n\taddress: ZodValidation.string('Address'),\n\tdescription: ZodValidation.string('Description').optional(),\n\tcity: ZodValidation.string('City'),\n\tstate: ZodValidation.string('State').optional(),\n\tcountry: ZodValidation.string('Country'),\n\tlocation: z.object({\n\t\ttype: ZodValidation.enumType(GeoLocationType, 'GeoLocationType').default(GeoLocationType.POINT),\n\t\tcoordinates: z.tuple([\n\t\t\tZodValidation.number('Longitude', { min: -180, max: 180 }),\n\t\t\tZodValidation.number('Latitude', { min: -90, max: 90 }),\n\t\t]),\n\t}),\n\tlatitude: ZodValidation.number('Latitude', { min: -90, max: 90 }),\n\tlongitude: ZodValidation.number('Longitude', { min: -180, max: 180 }),\n\tzone: ZodValidation.objectId('Zone').optional(),\n});\nexport type AddressDTO = DTO<typeof AddressSchema>;\n\n/**\n * Common user address validation schema that can be reused across models.\n * Provides validation for address-related fields.\n *\n * @example\n * ```typescript\n * const userSchema = z.object({\n * name: z.string(),\n * address: UserAddressSchema\n * });\n * ```\n */\nexport const UserAddressSchema = AddressSchema.extend({\n\taddressLabel: ZodValidation.string('Address Label'),\n\tapartment: ZodValidation.string('Apartment'),\n\tbuildingName: ZodValidation.string('Building Name'),\n\tdeliveryOption: ZodValidation.string('Delivery Option').optional(),\n\tinstructions: ZodValidation.string('Instructions').optional(),\n});\nexport type UserAddressDTO = DTO<typeof UserAddressSchema>;\n\n/**\n * Regular order address validation schema.\n * Provides validation for address-related fields.\n *\n */\nexport const RegularOrderAddressSchema = UserAddressSchema.extend({\n\taddressId: ZodValidation.objectId('ID of the user address'),\n});\nexport type RegularOrderAddressDTO = DTO<typeof RegularOrderAddressSchema>;\n\n/**\n * Common courier address validation schema that can be reused across models.\n * Provides validation for address-related fields.\n *\n * @example\n * ```typescript\n * const courierAddressSchema = z.object({\n * name: z.string(),\n * address: courierAddressSchema\n * });\n * ```\n */\nexport const CourierAddressSchema = UserAddressSchema.extend({\n\tname: ZodValidation.string('Name'),\n\tphoneNumber: ZodValidation.string('Phone Number'),\n});\nexport type CourierAddressDTO = DTO<typeof CourierAddressSchema>;\n\n/**\n * Common duration validation schema that can be reused across models.\n * Provides validation for duration fields.\n *\n * @example\n * ```typescript\n * const subscriptionSchema = z.object({\n * fee: z.number(),\n * duration: DurationSchema\n * });\n * ```\n */\nexport const DurationSchema = z.object({\n\tstart: ZodValidation.date('Start'),\n\tend: ZodValidation.date('End').optional(),\n});\n\n/**\n * Common Work Hour validation schema that can be reused across models.\n * Provides validation for workHourSetting fields.\n *\n * @example\n * ```typescript\n * const settingSchema = z.object({\n * vat: z.number(),\n * workHourSetting: WorkHourSettingSchema\n * });\n * ```\n */\nconst StartEndTimeSchema = z.object({\n\tstart: ZodValidation.string('Start'),\n\tend: ZodValidation.string('End'),\n});\n\nexport const NormalHourSchema = z.object({\n\tday: ZodValidation.enumType(WeekDay, 'Day'),\n\tstatus: ZodValidation.enumType(WorkStatus, 'Status'),\n\topeningHours: ZodValidation.array(StartEndTimeSchema).default([]),\n});\n\nexport const HolidayHourSchema = z.object({\n\tdate: ZodValidation.date('Date'),\n\tstatus: ZodValidation.enumType(HolidayWorkStatus, 'Status'),\n\tclosingHour: StartEndTimeSchema,\n});\n\nexport const WorkHourSettingSchema = z.object({\n\tnormalHours: ZodValidation.array(NormalHourSchema).default([]),\n\tholidayHours: ZodValidation.array(HolidayHourSchema).default([]),\n});\n\n/**\n * Schema for validating user login credentials.\n * This schema ensures that the provided email and password meet the required validation rules.\n *\n * @example\n * ```typescript\n * const credentials = {\n * email: 'user@example.com',\n * password: 'securePassword123',\n * };\n * ```\n */\nexport const LoginSchema = z.object({\n\temail: ZodValidation.email('Email', {\n\t\trequiredMessage: 'Please enter a valid email address.',\n\t\tinvalidMessage: 'Please enter a valid email address.',\n\t}),\n\tpassword: ZodValidation.string('Password', { requiredMessage: 'Please enter password' }),\n});\nexport type LoginDTO = DTO<typeof LoginSchema>;\n\nconst metadataSchema = z.object({\n\tpage: ZodValidation.number(),\n\tsize: ZodValidation.number(),\n\ttotalElements: ZodValidation.number(),\n\ttotalPages: ZodValidation.number(),\n});\nexport const createPaginatedSchema = <T>(documentSchema: z.ZodSchema<T>) =>\n\tz.object({\n\t\tmetadata: metadataSchema.optional(),\n\t\tdocuments: ZodValidation.array(documentSchema),\n\t});\n\nexport const createResponseSchema = <T>(schema: z.ZodSchema<T>) =>\n\tz.object({\n\t\tsuccess: ZodValidation.boolean(),\n\t\tmessage: ZodValidation.string(),\n\t\tdata: z.union([createPaginatedSchema(schema), schema]).optional(),\n\t});\n\n/**\n * Schema for validating token data, typically used for authentication.\n * This schema ensures that the provided access token and refresh token are valid strings.\n *\n * @example\n * ```typescript\n * const tokens = {\n * accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',\n * refreshToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',\n * };\n * ```\n */\nexport const TokenSchema = z.object({\n\taccessToken: ZodValidation.string('AccessToken'),\n\trefreshToken: ZodValidation.string('RefreshToken'),\n});\n\n/**\n * Schema validation for sorting order\n */\nexport const UpdateSortingOrderSchema = z.object({\n\t_id: ZodValidation.objectId('_id'),\n\tnewPosition: ZodValidation.number('New position'),\n});\nexport type UpdateSortingOrderDTO = DTO<typeof UpdateSortingOrderSchema>;\n\n/**\n * Schema validation for delete\n */\nexport const DeleteSchema = z.object({\n\t_id: ZodValidation.objectId('_id'),\n\tsoftDelete: ZodValidation.boolean('Soft Delete').default(true),\n});\nexport type DeleteDTO = DTO<typeof DeleteSchema>;\n\n/**\n * Schema validation for Id\n */\nexport const IdSchema = ZodValidation.objectId();\n\n/**\n * Schema validation get by id\n */\nexport const GetByIdInputSchema = z.object({\n\t_id: ZodValidation.objectId('_id'),\n\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n});\nexport type GetByIdInputDTO = DTO<typeof GetByIdInputSchema>;\n\nexport const GetOneQuerySchema = z.object({\n\tquery: MongoQuerySchema.optional(),\n\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n})\n\nexport type GetOneQueryDTO = DTO<typeof GetOneQuerySchema>;\n\nconst ShareableLinkSchema = z.object({\n\tlink: ZodValidation.url(),\n});\n\nexport const ShareableLinkResponseSchema = createResponseSchema(ShareableLinkSchema);\nexport type ShareableLinkDTO = DTO<typeof ShareableLinkSchema>;\n"]}
@@ -31,6 +31,7 @@ export declare class ZodValidation {
31
31
  }): z.ZodString;
32
32
  static url(field?: string): z.ZodString;
33
33
  static phoneNumber(field?: string): z.ZodEffects<z.ZodString, string, string>;
34
+ static validPhoneNumber(field?: string): z.ZodEffects<z.ZodString, string, string>;
34
35
  static date(field?: string, minDate?: Date, maxDate?: Date): z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Date, string>, z.ZodDate]>, Date, string | Date>, Date, string | Date>;
35
36
  static boolean(field?: string): z.ZodBoolean;
36
37
  static array<T extends z.ZodTypeAny>(schema: T, field?: string, minItems?: number, maxItems?: number): z.ZodArray<T, "many">;
@@ -61,22 +62,34 @@ export declare class SchemaBuilder<T extends z.ZodRawShape> {
61
62
  private baseSchema;
62
63
  constructor(baseFields: T, includeTimestamps?: boolean, includeTracking?: boolean);
63
64
  private createBaseSchema;
64
- getBaseSchema(): z.ZodObject<T, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
65
+ getBaseSchema(): z.ZodObject<T, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any>[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<T>[k_1]; } : never>;
65
66
  getEntitySchema(): z.ZodObject<z.objectUtil.extendShape<T, {
66
67
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
67
- }> extends infer T_1 extends z.ZodRawShape ? { [k in keyof T_1]: z.ZodOptional<T_1[k]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
68
+ }> extends infer T_1 extends z.ZodRawShape ? { [k in keyof T_1]: z.ZodOptional<z.objectUtil.extendShape<T, {
68
69
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
69
- }> extends infer T_2 extends z.ZodRawShape ? { [k in keyof T_2]: z.ZodOptional<T_2[k]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
70
+ }>[k]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
70
71
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
71
- }> extends infer T_3 extends z.ZodRawShape ? { [k in keyof T_3]: z.ZodOptional<T_3[k]>; } : never, z.ZodTypeAny, "passthrough">>;
72
+ }> extends infer T_2 extends z.ZodRawShape ? { [k in keyof T_2]: z.ZodOptional<z.objectUtil.extendShape<T, {
73
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
74
+ }>[k]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
75
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
76
+ }> extends infer T_3 extends z.ZodRawShape ? { [k in keyof T_3]: z.ZodOptional<z.objectUtil.extendShape<T, {
77
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
78
+ }>[k]>; } : never, z.ZodTypeAny, "passthrough">>;
72
79
  getIdSchema(): z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
73
80
  getUpdateSchema(excludeFields?: ExcludeFromUpdate): z.ZodObject<z.objectUtil.extendShape<T, {
74
81
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
75
- }> extends infer T_1 extends z.ZodRawShape ? { [k in keyof T_1]: z.ZodOptional<T_1[k]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
82
+ }> extends infer T_1 extends z.ZodRawShape ? { [k in keyof T_1]: z.ZodOptional<z.objectUtil.extendShape<T, {
83
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
84
+ }>[k]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
85
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
86
+ }> extends infer T_2 extends z.ZodRawShape ? { [k in keyof T_2]: z.ZodOptional<z.objectUtil.extendShape<T, {
87
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
88
+ }>[k]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
76
89
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
77
- }> extends infer T_2 extends z.ZodRawShape ? { [k in keyof T_2]: z.ZodOptional<T_2[k]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
90
+ }> extends infer T_3 extends z.ZodRawShape ? { [k in keyof T_3]: z.ZodOptional<z.objectUtil.extendShape<T, {
78
91
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
79
- }> extends infer T_3 extends z.ZodRawShape ? { [k in keyof T_3]: z.ZodOptional<T_3[k]>; } : never, z.ZodTypeAny, "passthrough">> | z.ZodObject<{
92
+ }>[k]>; } : never, z.ZodTypeAny, "passthrough">> | z.ZodObject<{
80
93
  [x: string]: z.ZodOptional<z.ZodTypeAny>;
81
94
  }, "strict", z.ZodTypeAny, {
82
95
  [x: string]: any;
@@ -99,22 +112,34 @@ export declare class SchemaBuilder<T extends z.ZodRawShape> {
99
112
  [x: string]: any;
100
113
  }>;
101
114
  getAllSchemas(excludeFromUpdate?: ExcludeFromUpdate): {
102
- BaseSchema: z.ZodObject<T, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
115
+ BaseSchema: z.ZodObject<T, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any>[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<T>[k_1]; } : never>;
103
116
  EntitySchema: z.ZodObject<z.objectUtil.extendShape<T, {
104
117
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
105
- }> extends infer T_3 extends z.ZodRawShape ? { [k_2 in keyof T_3]: z.ZodOptional<T_3[k_2]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
118
+ }> extends infer T_3 extends z.ZodRawShape ? { [k_2 in keyof T_3]: z.ZodOptional<z.objectUtil.extendShape<T, {
106
119
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
107
- }> extends infer T_4 extends z.ZodRawShape ? { [k_2 in keyof T_4]: z.ZodOptional<T_4[k_2]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
120
+ }>[k_2]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
108
121
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
109
- }> extends infer T_5 extends z.ZodRawShape ? { [k_2 in keyof T_5]: z.ZodOptional<T_5[k_2]>; } : never, z.ZodTypeAny, "passthrough">>;
122
+ }> extends infer T_4 extends z.ZodRawShape ? { [k_2 in keyof T_4]: z.ZodOptional<z.objectUtil.extendShape<T, {
123
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
124
+ }>[k_2]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
125
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
126
+ }> extends infer T_5 extends z.ZodRawShape ? { [k_2 in keyof T_5]: z.ZodOptional<z.objectUtil.extendShape<T, {
127
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
128
+ }>[k_2]>; } : never, z.ZodTypeAny, "passthrough">>;
110
129
  IdSchema: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
111
130
  UpdateSchema: z.ZodObject<z.objectUtil.extendShape<T, {
112
131
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
113
- }> extends infer T_6 extends z.ZodRawShape ? { [k_2 in keyof T_6]: z.ZodOptional<T_6[k_2]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
132
+ }> extends infer T_6 extends z.ZodRawShape ? { [k_2 in keyof T_6]: z.ZodOptional<z.objectUtil.extendShape<T, {
133
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
134
+ }>[k_2]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
135
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
136
+ }> extends infer T_7 extends z.ZodRawShape ? { [k_2 in keyof T_7]: z.ZodOptional<z.objectUtil.extendShape<T, {
137
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
138
+ }>[k_2]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
114
139
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
115
- }> extends infer T_7 extends z.ZodRawShape ? { [k_2 in keyof T_7]: z.ZodOptional<T_7[k_2]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
140
+ }> extends infer T_8 extends z.ZodRawShape ? { [k_2 in keyof T_8]: z.ZodOptional<z.objectUtil.extendShape<T, {
116
141
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
117
- }> extends infer T_8 extends z.ZodRawShape ? { [k_2 in keyof T_8]: z.ZodOptional<T_8[k_2]>; } : never, z.ZodTypeAny, "passthrough">> | z.ZodObject<{
142
+ }>[k_2]>; } : never, z.ZodTypeAny, "passthrough">> | z.ZodObject<{
118
143
  [x: string]: z.ZodOptional<z.ZodTypeAny>;
119
144
  }, "strict", z.ZodTypeAny, {
120
145
  [x: string]: any;
@@ -109,6 +109,35 @@ class ZodValidation {
109
109
  message: `Please input a valid phone number`,
110
110
  });
111
111
  }
112
+ static validPhoneNumber(field = "Field") {
113
+ return zod_1.z
114
+ .string({ required_error: `${field} is required` })
115
+ .superRefine((value, ctx) => {
116
+ if (value.length < 4) {
117
+ ctx.addIssue({
118
+ code: zod_1.z.ZodIssueCode.custom,
119
+ message: `${field} must have 4 or more digits`,
120
+ });
121
+ }
122
+ if (/^\d{4}$|^\d{5}$|^\d{7}$|^\d{8}$/.test(value)) {
123
+ return;
124
+ }
125
+ const phone = (0, libphonenumber_js_1.parsePhoneNumberFromString)(value);
126
+ if (!phone) {
127
+ ctx.addIssue({
128
+ code: zod_1.z.ZodIssueCode.custom,
129
+ message: `Invalid phone number format in ${field}`,
130
+ });
131
+ return;
132
+ }
133
+ if (!phone.isValid()) {
134
+ ctx.addIssue({
135
+ code: zod_1.z.ZodIssueCode.custom,
136
+ message: `Please input a valid phone number in ${field}`,
137
+ });
138
+ }
139
+ });
140
+ }
112
141
  static date(field = 'Field', minDate, maxDate) {
113
142
  return zod_1.z
114
143
  .union([