@lyxa.ai/core 1.0.8 → 1.0.10

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 (31) hide show
  1. package/dist/index.js.map +1 -1
  2. package/dist/libraries/auth/index.js +1 -1
  3. package/dist/libraries/auth/index.js.map +1 -1
  4. package/dist/libraries/mongo/index.js +2 -0
  5. package/dist/libraries/mongo/index.js.map +1 -1
  6. package/dist/libraries/mongo/models/address.model.d.ts +19 -0
  7. package/dist/libraries/mongo/models/address.model.js +91 -0
  8. package/dist/libraries/mongo/models/address.model.js.map +1 -0
  9. package/dist/libraries/mongo/models/duration.model.d.ts +4 -0
  10. package/dist/libraries/mongo/models/duration.model.js +27 -0
  11. package/dist/libraries/mongo/models/duration.model.js.map +1 -0
  12. package/dist/libraries/mongo/models/work-hour.model.d.ts +5 -6
  13. package/dist/libraries/mongo/models/work-hour.model.js +14 -10
  14. package/dist/libraries/mongo/models/work-hour.model.js.map +1 -1
  15. package/dist/libraries/mongo/plugins/soft-delete-plugin.d.ts +25 -0
  16. package/dist/libraries/mongo/plugins/soft-delete-plugin.js +90 -0
  17. package/dist/libraries/mongo/plugins/soft-delete-plugin.js.map +1 -0
  18. package/dist/libraries/redis/index.js +1 -1
  19. package/dist/libraries/redis/index.js.map +1 -1
  20. package/dist/libraries/secrets/index.js +1 -0
  21. package/dist/libraries/secrets/index.js.map +1 -1
  22. package/dist/utilities/enum.d.ts +8 -0
  23. package/dist/utilities/enum.js +11 -1
  24. package/dist/utilities/enum.js.map +1 -1
  25. package/dist/utilities/validation/common-validation.d.ts +233 -36
  26. package/dist/utilities/validation/common-validation.js +44 -16
  27. package/dist/utilities/validation/common-validation.js.map +1 -1
  28. package/dist/utilities/validation/global-validation.d.ts +51 -43
  29. package/dist/utilities/validation/global-validation.js +102 -50
  30. package/dist/utilities/validation/global-validation.js.map +1 -1
  31. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RatingAccountType = exports.SubscriptionPackage = exports.PaidCurrency = exports.PaymentStatus = exports.PaymentMethod = exports.ValueType = exports.WorkStatus = exports.WeekDay = exports.ItemType = exports.Status = void 0;
3
+ exports.GeoLocationType = exports.RatingAccountType = exports.SubscriptionPackage = exports.PaidCurrency = exports.PaymentStatus = exports.PaymentMethod = exports.ValueType = exports.HolidayWorkStatus = exports.WorkStatus = exports.WeekDay = exports.ItemType = exports.Status = void 0;
4
4
  var Status;
5
5
  (function (Status) {
6
6
  Status["ACTIVE"] = "active";
@@ -32,6 +32,11 @@ var WorkStatus;
32
32
  WorkStatus["CLOSED"] = "closed";
33
33
  WorkStatus["FULL_DAY"] = "full_day";
34
34
  })(WorkStatus || (exports.WorkStatus = WorkStatus = {}));
35
+ var HolidayWorkStatus;
36
+ (function (HolidayWorkStatus) {
37
+ HolidayWorkStatus["CLOSED"] = "closed";
38
+ HolidayWorkStatus["FULL_DAY"] = "full_day";
39
+ })(HolidayWorkStatus || (exports.HolidayWorkStatus = HolidayWorkStatus = {}));
35
40
  var ValueType;
36
41
  (function (ValueType) {
37
42
  ValueType["PERCENTAGE"] = "percentage";
@@ -64,4 +69,9 @@ var RatingAccountType;
64
69
  RatingAccountType["SHOP"] = "shop";
65
70
  RatingAccountType["RIDER"] = "rider";
66
71
  })(RatingAccountType || (exports.RatingAccountType = RatingAccountType = {}));
72
+ var GeoLocationType;
73
+ (function (GeoLocationType) {
74
+ GeoLocationType["POINT"] = "point";
75
+ GeoLocationType["POLYGON"] = "polygon";
76
+ })(GeoLocationType || (exports.GeoLocationType = GeoLocationType = {}));
67
77
  //# sourceMappingURL=enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.js","sourceRoot":"/","sources":["utilities/enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,MAGX;AAHD,WAAY,MAAM;IACjB,2BAAiB,CAAA;IACjB,+BAAqB,CAAA;AACtB,CAAC,EAHW,MAAM,sBAAN,MAAM,QAGjB;AAED,IAAY,QAQX;AARD,WAAY,QAAQ;IACnB,yBAAa,CAAA;IACb,+BAAmB,CAAA;IACnB,iCAAqB,CAAA;IACrB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,uBAAW,CAAA;IACX,6CAAiC,CAAA;AAClC,CAAC,EARW,QAAQ,wBAAR,QAAQ,QAQnB;AAED,IAAY,OAQX;AARD,WAAY,OAAO;IAClB,yCAAU,CAAA;IACV,yCAAU,CAAA;IACV,2CAAW,CAAA;IACX,+CAAa,CAAA;IACb,6CAAY,CAAA;IACZ,yCAAU,CAAA;IACV,6CAAY,CAAA;AACb,CAAC,EARW,OAAO,uBAAP,OAAO,QAQlB;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IACrB,2BAAa,CAAA;IACb,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;AACtB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACpB,sCAAyB,CAAA;IACzB,4BAAe,CAAA;AAChB,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAED,IAAY,aAGX;AAHD,WAAY,aAAa;IACxB,8BAAa,CAAA;IACb,8BAAa,CAAA;AACd,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAED,IAAY,aAIX;AAJD,WAAY,aAAa;IACxB,8BAAa,CAAA;IACb,oCAAmB,CAAA;IACnB,kCAAiB,CAAA;AAClB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED,IAAY,YAIX;AAJD,WAAY,YAAY;IACvB,6BAAa,CAAA;IACb,uCAAuB,CAAA;IACvB,+BAAe,CAAA;AAChB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AAED,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC9B,0CAAmB,CAAA;IACnB,wCAAiB,CAAA;AAClB,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC5B,kCAAa,CAAA;IACb,oCAAe,CAAA;AAChB,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B","sourcesContent":["export enum Status {\r\n\tACTIVE = 'active',\r\n\tINACTIVE = 'inactive',\r\n}\r\n\r\nexport enum ItemType {\r\n\tFOOD = 'food',\r\n\tGROCERY = 'grocery',\r\n\tPHARMACY = 'pharmacy',\r\n\tCOFFEE = 'coffee',\r\n\tFLOWER = 'flower',\r\n\tPET = 'pet',\r\n\tHEALTHY_CORNER = 'healthy_corner',\r\n}\r\n\r\nexport enum WeekDay {\r\n\tSunday = 0,\r\n\tMonday = 1,\r\n\tTuesday = 2,\r\n\tWednesday = 3,\r\n\tThursday = 4,\r\n\tFriday = 5,\r\n\tSaturday = 6,\r\n}\r\n\r\nexport enum WorkStatus {\r\n\tOPEN = 'open',\r\n\tCLOSED = 'closed',\r\n\tFULL_DAY = 'full_day',\r\n}\r\n\r\nexport enum ValueType {\r\n\tPERCENTAGE = 'percentage',\r\n\tFIXED = 'fixed',\r\n}\r\n\r\nexport enum PaymentMethod {\r\n\tCASH = 'cash',\r\n\tCARD = 'card',\r\n}\r\n\r\nexport enum PaymentStatus {\r\n\tPAID = 'paid',\r\n\tPENDING = 'pending',\r\n\tFAILED = 'failed',\r\n}\r\n\r\nexport enum PaidCurrency {\r\n\tBASE = 'base',\r\n\tSECONDARY = 'secondary',\r\n\tMIXED = 'mixed',\r\n}\r\n\r\nexport enum SubscriptionPackage {\r\n\tMONTHLY = 'monthly',\r\n\tYEARLY = 'yearly',\r\n}\r\n\r\nexport enum RatingAccountType {\r\n\tSHOP = 'shop',\r\n\tRIDER = 'rider',\r\n}"]}
1
+ {"version":3,"file":"enum.js","sourceRoot":"/","sources":["utilities/enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,MAGX;AAHD,WAAY,MAAM;IAChB,2BAAiB,CAAA;IACjB,+BAAqB,CAAA;AACvB,CAAC,EAHW,MAAM,sBAAN,MAAM,QAGjB;AAED,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,+BAAmB,CAAA;IACnB,iCAAqB,CAAA;IACrB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,uBAAW,CAAA;IACX,6CAAiC,CAAA;AACnC,CAAC,EARW,QAAQ,wBAAR,QAAQ,QAQnB;AAED,IAAY,OAQX;AARD,WAAY,OAAO;IACjB,yCAAU,CAAA;IACV,yCAAU,CAAA;IACV,2CAAW,CAAA;IACX,+CAAa,CAAA;IACb,6CAAY,CAAA;IACZ,yCAAU,CAAA;IACV,6CAAY,CAAA;AACd,CAAC,EARW,OAAO,uBAAP,OAAO,QAQlB;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,2BAAa,CAAA;IACb,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;AACvB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,sCAA0B,CAAA;IAC1B,0CAA8B,CAAA;AAChC,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,sCAAyB,CAAA;IACzB,4BAAe,CAAA;AACjB,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAED,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,8BAAa,CAAA;AACf,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAED,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,oCAAmB,CAAA;IACnB,kCAAiB,CAAA;AACnB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,uCAAuB,CAAA;IACvB,+BAAe,CAAA;AACjB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AAED,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,wCAAiB,CAAA;AACnB,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,kCAAa,CAAA;IACb,oCAAe,CAAA;AACjB,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAED,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,kCAAe,CAAA;IACf,sCAAmB,CAAA;AACrB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B","sourcesContent":["export enum Status {\r\n ACTIVE = \"active\",\r\n INACTIVE = \"inactive\"\r\n}\r\n\r\nexport enum ItemType {\r\n FOOD = \"food\",\r\n GROCERY = \"grocery\",\r\n PHARMACY = \"pharmacy\",\r\n COFFEE = \"coffee\",\r\n FLOWER = \"flower\",\r\n PET = \"pet\",\r\n HEALTHY_CORNER = \"healthy_corner\"\r\n}\r\n\r\nexport enum WeekDay {\r\n Sunday = 0,\r\n Monday = 1,\r\n Tuesday = 2,\r\n Wednesday = 3,\r\n Thursday = 4,\r\n Friday = 5,\r\n Saturday = 6\r\n}\r\n\r\nexport enum WorkStatus {\r\n OPEN = \"open\",\r\n CLOSED = \"closed\",\r\n FULL_DAY = \"full_day\"\r\n}\r\n\r\nexport enum HolidayWorkStatus {\r\n CLOSED = WorkStatus.CLOSED,\r\n FULL_DAY = WorkStatus.FULL_DAY\r\n}\r\n\r\nexport enum ValueType {\r\n PERCENTAGE = \"percentage\",\r\n FIXED = \"fixed\"\r\n}\r\n\r\nexport enum PaymentMethod {\r\n CASH = \"cash\",\r\n CARD = \"card\"\r\n}\r\n\r\nexport enum PaymentStatus {\r\n PAID = \"paid\",\r\n PENDING = \"pending\",\r\n FAILED = \"failed\"\r\n}\r\n\r\nexport enum PaidCurrency {\r\n BASE = \"base\",\r\n SECONDARY = \"secondary\",\r\n MIXED = \"mixed\"\r\n}\r\n\r\nexport enum SubscriptionPackage {\r\n MONTHLY = \"monthly\",\r\n YEARLY = \"yearly\"\r\n}\r\n\r\nexport enum RatingAccountType {\r\n SHOP = \"shop\",\r\n RIDER = \"rider\"\r\n}\r\n\r\nexport enum GeoLocationType {\r\n POINT = \"point\",\r\n POLYGON = \"polygon\"\r\n}\r\n"]}
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { GeoLocationType, HolidayWorkStatus, WeekDay, WorkStatus } from "../enum";
2
3
  export declare const FilterSchema: z.ZodOptional<z.ZodObject<{
3
4
  limit: z.ZodDefault<z.ZodNumber>;
4
5
  skip: z.ZodDefault<z.ZodNumber>;
@@ -24,42 +25,238 @@ export declare const FilterSchema: z.ZodOptional<z.ZodObject<{
24
25
  export type FilterDTO = z.infer<typeof FilterSchema>;
25
26
  export declare const StringSchema: z.ZodString;
26
27
  export declare const AddressSchema: z.ZodObject<{
27
- address: z.ZodOptional<z.ZodString>;
28
- addressDescription: z.ZodOptional<z.ZodString>;
29
- locationType: z.ZodDefault<z.ZodEnum<["Point", "Polygon"]>>;
30
- coordinates: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
31
- latitude: z.ZodOptional<z.ZodNumber>;
32
- longitude: z.ZodOptional<z.ZodNumber>;
33
- country: z.ZodOptional<z.ZodString>;
34
- state: z.ZodOptional<z.ZodString>;
35
- city: z.ZodOptional<z.ZodString>;
36
- postCode: z.ZodOptional<z.ZodString>;
37
- note: z.ZodOptional<z.ZodString>;
38
- placeId: z.ZodOptional<z.ZodString>;
28
+ address: z.ZodString;
29
+ description: z.ZodOptional<z.ZodString>;
30
+ city: z.ZodString;
31
+ state: z.ZodString;
32
+ country: z.ZodString;
33
+ geoLocationType: z.ZodDefault<z.ZodNativeEnum<typeof GeoLocationType>>;
34
+ coordinates: z.ZodArray<z.ZodNumber, "many">;
35
+ latitude: z.ZodNumber;
36
+ longitude: z.ZodNumber;
39
37
  }, "strip", z.ZodTypeAny, {
40
- locationType: "Point" | "Polygon";
41
- coordinates: [number, number];
42
- state?: string | undefined;
43
- address?: string | undefined;
44
- country?: string | undefined;
45
- addressDescription?: string | undefined;
46
- latitude?: number | undefined;
47
- longitude?: number | undefined;
48
- city?: string | undefined;
49
- postCode?: string | undefined;
50
- note?: string | undefined;
51
- placeId?: string | undefined;
38
+ state: string;
39
+ address: string;
40
+ country: string;
41
+ city: string;
42
+ geoLocationType: GeoLocationType;
43
+ coordinates: number[];
44
+ latitude: number;
45
+ longitude: number;
46
+ description?: string | undefined;
52
47
  }, {
53
- coordinates: [number, number];
54
- state?: string | undefined;
55
- address?: string | undefined;
56
- country?: string | undefined;
57
- locationType?: "Point" | "Polygon" | undefined;
58
- addressDescription?: string | undefined;
59
- latitude?: number | undefined;
60
- longitude?: number | undefined;
61
- city?: string | undefined;
62
- postCode?: string | undefined;
63
- note?: string | undefined;
64
- placeId?: string | undefined;
48
+ state: string;
49
+ address: string;
50
+ country: string;
51
+ city: string;
52
+ coordinates: number[];
53
+ latitude: number;
54
+ longitude: number;
55
+ description?: string | undefined;
56
+ geoLocationType?: GeoLocationType | undefined;
57
+ }>;
58
+ export declare const UserAddressSchema: z.ZodObject<z.objectUtil.extendShape<{
59
+ address: z.ZodString;
60
+ description: z.ZodOptional<z.ZodString>;
61
+ city: z.ZodString;
62
+ state: z.ZodString;
63
+ country: z.ZodString;
64
+ geoLocationType: z.ZodDefault<z.ZodNativeEnum<typeof GeoLocationType>>;
65
+ coordinates: z.ZodArray<z.ZodNumber, "many">;
66
+ latitude: z.ZodNumber;
67
+ longitude: z.ZodNumber;
68
+ }, {
69
+ addressLabel: z.ZodString;
70
+ apartment: z.ZodString;
71
+ buildingName: z.ZodString;
72
+ deliveryOption: z.ZodOptional<z.ZodString>;
73
+ instructions: z.ZodOptional<z.ZodString>;
74
+ }>, "strip", z.ZodTypeAny, {
75
+ state: string;
76
+ address: string;
77
+ country: string;
78
+ city: string;
79
+ geoLocationType: GeoLocationType;
80
+ coordinates: number[];
81
+ latitude: number;
82
+ longitude: number;
83
+ addressLabel: string;
84
+ apartment: string;
85
+ buildingName: string;
86
+ description?: string | undefined;
87
+ deliveryOption?: string | undefined;
88
+ instructions?: string | undefined;
89
+ }, {
90
+ state: string;
91
+ address: string;
92
+ country: string;
93
+ city: string;
94
+ coordinates: number[];
95
+ latitude: number;
96
+ longitude: number;
97
+ addressLabel: string;
98
+ apartment: string;
99
+ buildingName: string;
100
+ description?: string | undefined;
101
+ geoLocationType?: GeoLocationType | undefined;
102
+ deliveryOption?: string | undefined;
103
+ instructions?: string | undefined;
104
+ }>;
105
+ export declare const DurationSchema: z.ZodObject<{
106
+ 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>;
107
+ end: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Date, string>, z.ZodDate]>, Date, string | Date>, Date, string | Date>>;
108
+ }, "strip", z.ZodTypeAny, {
109
+ start: Date;
110
+ end?: Date | undefined;
111
+ }, {
112
+ start: string | Date;
113
+ end?: string | Date | undefined;
114
+ }>;
115
+ export declare const NormalHourSchema: z.ZodObject<{
116
+ day: z.ZodNativeEnum<typeof WeekDay>;
117
+ status: z.ZodNativeEnum<typeof WorkStatus>;
118
+ openingHours: z.ZodDefault<z.ZodArray<z.ZodObject<{
119
+ start: z.ZodString;
120
+ end: z.ZodString;
121
+ }, "strip", z.ZodTypeAny, {
122
+ end: string;
123
+ start: string;
124
+ }, {
125
+ end: string;
126
+ start: string;
127
+ }>, "many">>;
128
+ }, "strip", z.ZodTypeAny, {
129
+ status: WorkStatus;
130
+ day: WeekDay;
131
+ openingHours: {
132
+ end: string;
133
+ start: string;
134
+ }[];
135
+ }, {
136
+ status: WorkStatus;
137
+ day: WeekDay;
138
+ openingHours?: {
139
+ end: string;
140
+ start: string;
141
+ }[] | undefined;
142
+ }>;
143
+ export declare const HolidayHourSchema: z.ZodObject<{
144
+ 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>;
145
+ status: z.ZodNativeEnum<typeof HolidayWorkStatus>;
146
+ closingHour: z.ZodObject<{
147
+ start: z.ZodString;
148
+ end: z.ZodString;
149
+ }, "strip", z.ZodTypeAny, {
150
+ end: string;
151
+ start: string;
152
+ }, {
153
+ end: string;
154
+ start: string;
155
+ }>;
156
+ }, "strip", z.ZodTypeAny, {
157
+ status: HolidayWorkStatus;
158
+ date: Date;
159
+ closingHour: {
160
+ end: string;
161
+ start: string;
162
+ };
163
+ }, {
164
+ status: HolidayWorkStatus;
165
+ date: string | Date;
166
+ closingHour: {
167
+ end: string;
168
+ start: string;
169
+ };
170
+ }>;
171
+ export declare const WrokHourSettingSchema: z.ZodObject<{
172
+ normalHours: z.ZodDefault<z.ZodArray<z.ZodObject<{
173
+ day: z.ZodNativeEnum<typeof WeekDay>;
174
+ status: z.ZodNativeEnum<typeof WorkStatus>;
175
+ openingHours: z.ZodDefault<z.ZodArray<z.ZodObject<{
176
+ start: z.ZodString;
177
+ end: z.ZodString;
178
+ }, "strip", z.ZodTypeAny, {
179
+ end: string;
180
+ start: string;
181
+ }, {
182
+ end: string;
183
+ start: string;
184
+ }>, "many">>;
185
+ }, "strip", z.ZodTypeAny, {
186
+ status: WorkStatus;
187
+ day: WeekDay;
188
+ openingHours: {
189
+ end: string;
190
+ start: string;
191
+ }[];
192
+ }, {
193
+ status: WorkStatus;
194
+ day: WeekDay;
195
+ openingHours?: {
196
+ end: string;
197
+ start: string;
198
+ }[] | undefined;
199
+ }>, "many">>;
200
+ holidayHours: z.ZodDefault<z.ZodArray<z.ZodObject<{
201
+ 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>;
202
+ status: z.ZodNativeEnum<typeof HolidayWorkStatus>;
203
+ closingHour: z.ZodObject<{
204
+ start: z.ZodString;
205
+ end: z.ZodString;
206
+ }, "strip", z.ZodTypeAny, {
207
+ end: string;
208
+ start: string;
209
+ }, {
210
+ end: string;
211
+ start: string;
212
+ }>;
213
+ }, "strip", z.ZodTypeAny, {
214
+ status: HolidayWorkStatus;
215
+ date: Date;
216
+ closingHour: {
217
+ end: string;
218
+ start: string;
219
+ };
220
+ }, {
221
+ status: HolidayWorkStatus;
222
+ date: string | Date;
223
+ closingHour: {
224
+ end: string;
225
+ start: string;
226
+ };
227
+ }>, "many">>;
228
+ }, "strip", z.ZodTypeAny, {
229
+ normalHours: {
230
+ status: WorkStatus;
231
+ day: WeekDay;
232
+ openingHours: {
233
+ end: string;
234
+ start: string;
235
+ }[];
236
+ }[];
237
+ holidayHours: {
238
+ status: HolidayWorkStatus;
239
+ date: Date;
240
+ closingHour: {
241
+ end: string;
242
+ start: string;
243
+ };
244
+ }[];
245
+ }, {
246
+ normalHours?: {
247
+ status: WorkStatus;
248
+ day: WeekDay;
249
+ openingHours?: {
250
+ end: string;
251
+ start: string;
252
+ }[] | undefined;
253
+ }[] | undefined;
254
+ holidayHours?: {
255
+ status: HolidayWorkStatus;
256
+ date: string | Date;
257
+ closingHour: {
258
+ end: string;
259
+ start: string;
260
+ };
261
+ }[] | undefined;
65
262
  }>;
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AddressSchema = exports.StringSchema = exports.FilterSchema = void 0;
3
+ exports.WrokHourSettingSchema = exports.HolidayHourSchema = exports.NormalHourSchema = exports.DurationSchema = exports.UserAddressSchema = exports.AddressSchema = exports.StringSchema = exports.FilterSchema = void 0;
4
4
  const zod_1 = require("zod");
5
+ const global_validation_1 = require("./global-validation");
6
+ const enum_1 = require("../enum");
5
7
  const SortOrderSchema = zod_1.z.union([
6
8
  zod_1.z.literal(1),
7
9
  zod_1.z.literal(-1),
8
10
  zod_1.z.literal("asc"),
9
- zod_1.z.literal("desc"),
11
+ zod_1.z.literal("desc")
10
12
  ]);
11
13
  const MongoQuerySchema = zod_1.z.lazy(() => zod_1.z.record(zod_1.z.union([zod_1.z.any(), MongoOperatorsSchema])));
12
14
  const MongoOperatorsSchema = zod_1.z.object({
@@ -23,7 +25,7 @@ const MongoOperatorsSchema = zod_1.z.object({
23
25
  $and: zod_1.z.array(MongoQuerySchema).optional(),
24
26
  $or: zod_1.z.array(MongoQuerySchema).optional(),
25
27
  $not: MongoQuerySchema.optional(),
26
- $nor: zod_1.z.array(MongoQuerySchema).optional(),
28
+ $nor: zod_1.z.array(MongoQuerySchema).optional()
27
29
  });
28
30
  exports.FilterSchema = zod_1.z
29
31
  .object({
@@ -36,7 +38,7 @@ exports.FilterSchema = zod_1.z
36
38
  sort: zod_1.z.record(zod_1.z.string(), SortOrderSchema).optional(),
37
39
  query: MongoQuerySchema.optional(),
38
40
  select: zod_1.z.array(zod_1.z.string()).optional(),
39
- populate: zod_1.z.array(zod_1.z.string()).optional(),
41
+ populate: zod_1.z.array(zod_1.z.string()).optional()
40
42
  })
41
43
  .optional();
42
44
  exports.StringSchema = zod_1.z
@@ -44,17 +46,43 @@ exports.StringSchema = zod_1.z
44
46
  .min(1, "String cannot be empty")
45
47
  .max(255, "String is too long");
46
48
  exports.AddressSchema = zod_1.z.object({
47
- address: zod_1.z.string().optional(),
48
- addressDescription: zod_1.z.string().optional(),
49
- locationType: zod_1.z.enum(["Point", "Polygon"]).default("Point"),
50
- coordinates: zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]),
51
- latitude: zod_1.z.number().optional(),
52
- longitude: zod_1.z.number().optional(),
53
- country: zod_1.z.string().optional(),
54
- state: zod_1.z.string().optional(),
55
- city: zod_1.z.string().optional(),
56
- postCode: zod_1.z.string().optional(),
57
- note: zod_1.z.string().optional(),
58
- placeId: zod_1.z.string().optional(),
49
+ address: global_validation_1.ZodValidation.string("Address"),
50
+ description: global_validation_1.ZodValidation.string("Description").optional(),
51
+ city: global_validation_1.ZodValidation.string("City"),
52
+ state: global_validation_1.ZodValidation.string("State"),
53
+ country: global_validation_1.ZodValidation.string("Country"),
54
+ geoLocationType: global_validation_1.ZodValidation.enumType(enum_1.GeoLocationType, "GeoLocationType").default(enum_1.GeoLocationType.POINT),
55
+ coordinates: global_validation_1.ZodValidation.array(global_validation_1.ZodValidation.number("Coordinate"), "Coordinates", 2, 2),
56
+ latitude: global_validation_1.ZodValidation.number("Latitude"),
57
+ longitude: global_validation_1.ZodValidation.number("Longitude")
58
+ });
59
+ exports.UserAddressSchema = exports.AddressSchema.extend({
60
+ addressLabel: global_validation_1.ZodValidation.string("Address Label"),
61
+ apartment: global_validation_1.ZodValidation.string("Apartment"),
62
+ buildingName: global_validation_1.ZodValidation.string("Building Name"),
63
+ deliveryOption: global_validation_1.ZodValidation.string("Delivery Option").optional(),
64
+ instructions: global_validation_1.ZodValidation.string("Instructions").optional()
65
+ });
66
+ exports.DurationSchema = zod_1.z.object({
67
+ start: global_validation_1.ZodValidation.date("Start"),
68
+ end: global_validation_1.ZodValidation.date("End").optional()
69
+ });
70
+ const StartEndTimeSchema = zod_1.z.object({
71
+ start: global_validation_1.ZodValidation.string("Start"),
72
+ end: global_validation_1.ZodValidation.string("End")
73
+ });
74
+ exports.NormalHourSchema = zod_1.z.object({
75
+ day: global_validation_1.ZodValidation.enumType(enum_1.WeekDay, "Day"),
76
+ status: global_validation_1.ZodValidation.enumType(enum_1.WorkStatus, "Status"),
77
+ openingHours: global_validation_1.ZodValidation.array(StartEndTimeSchema).default([])
78
+ });
79
+ exports.HolidayHourSchema = zod_1.z.object({
80
+ date: global_validation_1.ZodValidation.date("Date"),
81
+ status: global_validation_1.ZodValidation.enumType(enum_1.HolidayWorkStatus, "Status"),
82
+ closingHour: StartEndTimeSchema
83
+ });
84
+ exports.WrokHourSettingSchema = zod_1.z.object({
85
+ normalHours: global_validation_1.ZodValidation.array(exports.NormalHourSchema).default([]),
86
+ holidayHours: global_validation_1.ZodValidation.array(exports.HolidayHourSchema).default([])
59
87
  });
60
88
  //# 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 } from \"zod\";\r\n\r\n/**\r\n * Define allowed MongoDB sort orders\r\n */\r\nconst SortOrderSchema = z.union([\r\n z.literal(1),\r\n z.literal(-1),\r\n z.literal(\"asc\"),\r\n z.literal(\"desc\"),\r\n]);\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 z.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 $eq: z.any().optional(),\r\n $ne: z.any().optional(),\r\n $gt: z.any().optional(),\r\n $gte: z.any().optional(),\r\n $lt: z.any().optional(),\r\n $lte: z.any().optional(),\r\n $in: z.array(z.any()).optional(),\r\n $nin: z.array(z.any()).optional(),\r\n $exists: z.boolean().optional(),\r\n $regex: z.string().optional(),\r\n $and: z.array(MongoQuerySchema).optional(),\r\n $or: z.array(MongoQuerySchema).optional(),\r\n $not: MongoQuerySchema.optional(),\r\n $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 .object({\r\n limit: z\r\n .number()\r\n .min(1, { message: \"Limit must be greater than 0.\" })\r\n .max(100, { message: \"Limit cannot exceed 100.\" })\r\n .default(10),\r\n skip: z.number().min(0, { message: \"Skip cannot be negative.\" }).default(0),\r\n sort: z.record(z.string(), SortOrderSchema).optional(),\r\n query: MongoQuerySchema.optional(),\r\n select: z.array(z.string()).optional(),\r\n populate: z.array(z.string()).optional(),\r\n })\r\n .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\r\n .string()\r\n .min(1, \"String cannot be empty\")\r\n .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 address: z.string().optional(),\r\n addressDescription: z.string().optional(),\r\n locationType: z.enum([\"Point\", \"Polygon\"]).default(\"Point\"),\r\n coordinates: z.tuple([z.number(), z.number()]),\r\n latitude: z.number().optional(),\r\n longitude: z.number().optional(),\r\n country: z.string().optional(),\r\n state: z.string().optional(),\r\n city: z.string().optional(),\r\n postCode: z.string().optional(),\r\n note: z.string().optional(),\r\n placeId: z.string().optional(),\r\n});\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 } from \"zod\";\r\nimport { ZodValidation } from \"./global-validation\";\r\nimport {\r\n GeoLocationType,\r\n HolidayWorkStatus,\r\n WeekDay,\r\n WorkStatus\r\n} from \"../enum\";\r\n\r\n/**\r\n * Define allowed MongoDB sort orders\r\n */\r\nconst SortOrderSchema = z.union([\r\n z.literal(1),\r\n z.literal(-1),\r\n z.literal(\"asc\"),\r\n z.literal(\"desc\")\r\n]);\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 z.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 $eq: z.any().optional(),\r\n $ne: z.any().optional(),\r\n $gt: z.any().optional(),\r\n $gte: z.any().optional(),\r\n $lt: z.any().optional(),\r\n $lte: z.any().optional(),\r\n $in: z.array(z.any()).optional(),\r\n $nin: z.array(z.any()).optional(),\r\n $exists: z.boolean().optional(),\r\n $regex: z.string().optional(),\r\n $and: z.array(MongoQuerySchema).optional(),\r\n $or: z.array(MongoQuerySchema).optional(),\r\n $not: MongoQuerySchema.optional(),\r\n $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 .object({\r\n limit: z\r\n .number()\r\n .min(1, { message: \"Limit must be greater than 0.\" })\r\n .max(100, { message: \"Limit cannot exceed 100.\" })\r\n .default(10),\r\n skip: z.number().min(0, { message: \"Skip cannot be negative.\" }).default(0),\r\n sort: z.record(z.string(), SortOrderSchema).optional(),\r\n query: MongoQuerySchema.optional(),\r\n select: z.array(z.string()).optional(),\r\n populate: z.array(z.string()).optional()\r\n })\r\n .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\r\n .string()\r\n .min(1, \"String cannot be empty\")\r\n .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 address: ZodValidation.string(\"Address\"),\r\n description: ZodValidation.string(\"Description\").optional(),\r\n city: ZodValidation.string(\"City\"),\r\n state: ZodValidation.string(\"State\"),\r\n country: ZodValidation.string(\"Country\"),\r\n geoLocationType: ZodValidation.enumType(\r\n GeoLocationType,\r\n \"GeoLocationType\"\r\n ).default(GeoLocationType.POINT),\r\n coordinates: ZodValidation.array(\r\n ZodValidation.number(\"Coordinate\"),\r\n \"Coordinates\",\r\n 2,\r\n 2\r\n ),\r\n latitude: ZodValidation.number(\"Latitude\"),\r\n longitude: 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 addressLabel: ZodValidation.string(\"Address Label\"),\r\n apartment: ZodValidation.string(\"Apartment\"),\r\n buildingName: ZodValidation.string(\"Building Name\"),\r\n deliveryOption: ZodValidation.string(\"Delivery Option\").optional(),\r\n instructions: 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 start: ZodValidation.date(\"Start\"),\r\n end: 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 wrokHourSetting fields.\r\n *\r\n * @example\r\n * ```typescript\r\n * const settingSchema = z.object({\r\n * vat: z.number(),\r\n * wrokHourSetting: WrokHourSettingSchema\r\n * });\r\n * ```\r\n */\r\nconst StartEndTimeSchema = z.object({\r\n start: ZodValidation.string(\"Start\"),\r\n end: ZodValidation.string(\"End\")\r\n});\r\n\r\nexport const NormalHourSchema = z.object({\r\n day: ZodValidation.enumType(WeekDay, \"Day\"),\r\n status: ZodValidation.enumType(WorkStatus, \"Status\"),\r\n openingHours: ZodValidation.array(StartEndTimeSchema).default([])\r\n});\r\n\r\nexport const HolidayHourSchema = z.object({\r\n date: ZodValidation.date(\"Date\"),\r\n status: ZodValidation.enumType(HolidayWorkStatus, \"Status\"),\r\n closingHour: StartEndTimeSchema\r\n});\r\n\r\nexport const WrokHourSettingSchema = z.object({\r\n normalHours: ZodValidation.array(NormalHourSchema).default([]),\r\n holidayHours: ZodValidation.array(HolidayHourSchema).default([])\r\n});\r\n"]}