@lyxa.ai/marketing 1.0.44 → 1.0.47

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 (113) hide show
  1. package/dist/lib/index.d.ts +170 -28
  2. package/dist/lib/index.d.ts.map +1 -1
  3. package/dist/lib/modules/coupon/routers/coupon.router.d.ts +169 -27
  4. package/dist/lib/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  5. package/dist/lib/modules/coupon/routers/coupon.router.js +13 -4
  6. package/dist/lib/modules/coupon/routers/coupon.router.js.map +1 -1
  7. package/dist/lib/modules/coupon/services/coupon.service.d.ts +4 -1
  8. package/dist/lib/modules/coupon/services/coupon.service.d.ts.map +1 -1
  9. package/dist/lib/modules/coupon/services/coupon.service.js +134 -15
  10. package/dist/lib/modules/coupon/services/coupon.service.js.map +1 -1
  11. package/dist/lib/modules/coupon/services/custom-coupon.service.d.ts +208 -3
  12. package/dist/lib/modules/coupon/services/custom-coupon.service.d.ts.map +1 -1
  13. package/dist/lib/modules/coupon/services/global-coupon.service.d.ts.map +1 -1
  14. package/dist/lib/modules/coupon/services/global-coupon.service.js +2 -0
  15. package/dist/lib/modules/coupon/services/global-coupon.service.js.map +1 -1
  16. package/dist/lib/modules/coupon/services/helper.service.d.ts +214 -4
  17. package/dist/lib/modules/coupon/services/helper.service.d.ts.map +1 -1
  18. package/dist/lib/modules/coupon/services/helper.service.js +114 -16
  19. package/dist/lib/modules/coupon/services/helper.service.js.map +1 -1
  20. package/dist/lib/modules/coupon/services/individual-store-coupon.service.d.ts +208 -3
  21. package/dist/lib/modules/coupon/services/individual-store-coupon.service.d.ts.map +1 -1
  22. package/dist/lib/modules/coupon/services/individual-user-coupon.service.d.ts +1 -1
  23. package/dist/lib/modules/coupon/services/individual-user-coupon.service.d.ts.map +1 -1
  24. package/dist/lib/modules/coupon/services/individual-user-coupon.service.js +20 -11
  25. package/dist/lib/modules/coupon/services/individual-user-coupon.service.js.map +1 -1
  26. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts +10 -4
  27. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts.map +1 -1
  28. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.js +90 -14
  29. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.js.map +1 -1
  30. package/dist/lib/modules/coupon/services/patterns/repository/CouponRepository.d.ts +2 -2
  31. package/dist/lib/modules/coupon/services/patterns/repository/CouponRepository.d.ts.map +1 -1
  32. package/dist/lib/modules/coupon/services/patterns/repository/CouponRepository.js +151 -45
  33. package/dist/lib/modules/coupon/services/patterns/repository/CouponRepository.js.map +1 -1
  34. package/dist/lib/modules/coupon/services/referral-reward-coupon.service.d.ts.map +1 -1
  35. package/dist/lib/modules/coupon/services/referral-reward-coupon.service.js +17 -4
  36. package/dist/lib/modules/coupon/services/referral-reward-coupon.service.js.map +1 -1
  37. package/dist/lib/modules/coupon/services/shops-categories-coupon.service.d.ts +208 -3
  38. package/dist/lib/modules/coupon/services/shops-categories-coupon.service.d.ts.map +1 -1
  39. package/dist/lib/modules/coupon/transformers/coupon.transformer.d.ts +5 -1
  40. package/dist/lib/modules/coupon/transformers/coupon.transformer.d.ts.map +1 -1
  41. package/dist/lib/modules/coupon/validations/all-coupons.validation.d.ts +243 -23
  42. package/dist/lib/modules/coupon/validations/all-coupons.validation.d.ts.map +1 -1
  43. package/dist/lib/modules/coupon/validations/coupon.validation.d.ts +412 -48
  44. package/dist/lib/modules/coupon/validations/coupon.validation.d.ts.map +1 -1
  45. package/dist/lib/modules/coupon/validations/coupon.validation.js +39 -6
  46. package/dist/lib/modules/coupon/validations/coupon.validation.js.map +1 -1
  47. package/dist/lib/modules/coupon/validations/create-coupon.validation.d.ts +94 -6
  48. package/dist/lib/modules/coupon/validations/create-coupon.validation.d.ts.map +1 -1
  49. package/dist/lib/modules/coupon/validations/custom-coupon.validation.d.ts +9 -0
  50. package/dist/lib/modules/coupon/validations/custom-coupon.validation.d.ts.map +1 -1
  51. package/dist/lib/modules/coupon/validations/custom-coupon.validation.js +1 -0
  52. package/dist/lib/modules/coupon/validations/custom-coupon.validation.js.map +1 -1
  53. package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.d.ts +200 -122
  54. package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.d.ts.map +1 -1
  55. package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.js +20 -3
  56. package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.js.map +1 -1
  57. package/dist/lib/modules/coupon/validations/individual-user-coupon.validation.d.ts +9 -0
  58. package/dist/lib/modules/coupon/validations/individual-user-coupon.validation.d.ts.map +1 -1
  59. package/dist/lib/modules/coupon/validations/individual-user-coupon.validation.js +1 -0
  60. package/dist/lib/modules/coupon/validations/individual-user-coupon.validation.js.map +1 -1
  61. package/dist/lib/modules/coupon/validations/shops-categories-coupon.validation.d.ts +9 -0
  62. package/dist/lib/modules/coupon/validations/shops-categories-coupon.validation.d.ts.map +1 -1
  63. package/dist/lib/modules/coupon/validations/shops-categories-coupon.validation.js +1 -0
  64. package/dist/lib/modules/coupon/validations/shops-categories-coupon.validation.js.map +1 -1
  65. package/dist/lib/modules/marketing/validations/buy1-get1-marketing.validation.d.ts +6 -6
  66. package/dist/lib/modules/marketing/validations/discount-marketing.validation.d.ts +6 -6
  67. package/dist/lib/modules/marketing/validations/product-marketing.validation.d.ts +2 -2
  68. package/dist/lib/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +1 -1
  69. package/dist/lib/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +2 -2
  70. package/dist/types/index.d.ts +170 -28
  71. package/dist/types/index.d.ts.map +1 -1
  72. package/dist/types/modules/coupon/routers/coupon.router.d.ts +169 -27
  73. package/dist/types/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  74. package/dist/types/modules/coupon/services/coupon.service.d.ts +4 -1
  75. package/dist/types/modules/coupon/services/coupon.service.d.ts.map +1 -1
  76. package/dist/types/modules/coupon/services/custom-coupon.service.d.ts +208 -3
  77. package/dist/types/modules/coupon/services/custom-coupon.service.d.ts.map +1 -1
  78. package/dist/types/modules/coupon/services/global-coupon.service.d.ts.map +1 -1
  79. package/dist/types/modules/coupon/services/helper.service.d.ts +214 -4
  80. package/dist/types/modules/coupon/services/helper.service.d.ts.map +1 -1
  81. package/dist/types/modules/coupon/services/individual-store-coupon.service.d.ts +208 -3
  82. package/dist/types/modules/coupon/services/individual-store-coupon.service.d.ts.map +1 -1
  83. package/dist/types/modules/coupon/services/individual-user-coupon.service.d.ts +1 -1
  84. package/dist/types/modules/coupon/services/individual-user-coupon.service.d.ts.map +1 -1
  85. package/dist/types/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts +10 -4
  86. package/dist/types/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts.map +1 -1
  87. package/dist/types/modules/coupon/services/patterns/repository/CouponRepository.d.ts +2 -2
  88. package/dist/types/modules/coupon/services/patterns/repository/CouponRepository.d.ts.map +1 -1
  89. package/dist/types/modules/coupon/services/referral-reward-coupon.service.d.ts.map +1 -1
  90. package/dist/types/modules/coupon/services/shops-categories-coupon.service.d.ts +208 -3
  91. package/dist/types/modules/coupon/services/shops-categories-coupon.service.d.ts.map +1 -1
  92. package/dist/types/modules/coupon/transformers/coupon.transformer.d.ts +5 -1
  93. package/dist/types/modules/coupon/transformers/coupon.transformer.d.ts.map +1 -1
  94. package/dist/types/modules/coupon/validations/all-coupons.validation.d.ts +243 -23
  95. package/dist/types/modules/coupon/validations/all-coupons.validation.d.ts.map +1 -1
  96. package/dist/types/modules/coupon/validations/coupon.validation.d.ts +412 -48
  97. package/dist/types/modules/coupon/validations/coupon.validation.d.ts.map +1 -1
  98. package/dist/types/modules/coupon/validations/create-coupon.validation.d.ts +94 -6
  99. package/dist/types/modules/coupon/validations/create-coupon.validation.d.ts.map +1 -1
  100. package/dist/types/modules/coupon/validations/custom-coupon.validation.d.ts +9 -0
  101. package/dist/types/modules/coupon/validations/custom-coupon.validation.d.ts.map +1 -1
  102. package/dist/types/modules/coupon/validations/individual-store-coupon.validation.d.ts +200 -122
  103. package/dist/types/modules/coupon/validations/individual-store-coupon.validation.d.ts.map +1 -1
  104. package/dist/types/modules/coupon/validations/individual-user-coupon.validation.d.ts +9 -0
  105. package/dist/types/modules/coupon/validations/individual-user-coupon.validation.d.ts.map +1 -1
  106. package/dist/types/modules/coupon/validations/shops-categories-coupon.validation.d.ts +9 -0
  107. package/dist/types/modules/coupon/validations/shops-categories-coupon.validation.d.ts.map +1 -1
  108. package/dist/types/modules/marketing/validations/buy1-get1-marketing.validation.d.ts +6 -6
  109. package/dist/types/modules/marketing/validations/discount-marketing.validation.d.ts +6 -6
  110. package/dist/types/modules/marketing/validations/product-marketing.validation.d.ts +2 -2
  111. package/dist/types/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +1 -1
  112. package/dist/types/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +2 -2
  113. package/package.json +2 -2
@@ -18,20 +18,225 @@ export declare class CustomCouponService {
18
18
  secondaryCompanyCut?: number | undefined;
19
19
  shopCut?: number | undefined;
20
20
  secondaryShopCut?: number | undefined;
21
+ vendorCut?: number | undefined;
22
+ secondaryVendorCut?: number | undefined;
21
23
  } | undefined;
22
24
  couponDetails?: Record<string, unknown> | undefined;
23
25
  } | {
24
26
  isValid: boolean;
25
27
  message: string;
26
- shop?: undefined;
28
+ vendor?: undefined;
27
29
  } | {
28
30
  isValid: boolean;
29
- shop: import("mongoose").Document<unknown, import("@typegoose/typegoose/lib/types").BeAnObject, import("@lyxa.ai/core/dist/libraries/mongo/models/shop.model").Shop, import("@typegoose/typegoose/lib/types").BeAnyObject, {}> & Omit<import("@lyxa.ai/core/dist/libraries/mongo/models/shop.model").Shop & {
31
+ vendor: import("mongoose").FlattenMaps<{
32
+ vendorId?: string | undefined;
33
+ name: string;
34
+ ownerName: string;
35
+ email: string;
36
+ vendorParent: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models/vendor-parent.model").VendorParent>;
37
+ serviceType?: import("@lyxa.ai/core/dist/utilities/enum").ServiceType | undefined;
38
+ status: import("@lyxa.ai/core/dist/utilities/enum").Status;
39
+ phoneNumber: string;
40
+ userPhoneNumber: string;
41
+ additionalPhoneNumbers?: string[] | undefined;
42
+ address: {
43
+ zone?: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models/zone.model").Zone> | undefined;
44
+ address: string;
45
+ description?: string | undefined;
46
+ city?: string | undefined;
47
+ state?: string | undefined;
48
+ country: string;
49
+ location: {
50
+ type?: import("@lyxa.ai/core/dist/utilities/enum").GeoLocationType | undefined;
51
+ coordinates: [number, number];
52
+ };
53
+ latitude: number;
54
+ longitude: number;
55
+ };
56
+ zones: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models/zone.model").Zone>[];
57
+ logo?: string | undefined;
58
+ banner?: string | undefined;
59
+ document?: {
60
+ commercialCircularDocument?: string | undefined;
61
+ taxRegistration?: string | undefined;
62
+ contactPaper?: string | undefined;
63
+ identityDoc?: string | undefined;
64
+ } | undefined;
65
+ avgRating?: number | undefined;
66
+ isVisibleToUser: boolean;
67
+ ordersCount?: number | undefined;
68
+ bobContactName?: string | undefined;
69
+ bobContactPhoneNumber?: string | undefined;
70
+ orderSettings?: {
71
+ frequencyConfigs?: {
72
+ recurrencePattern: import("@lyxa.ai/core/dist/utilities/enum").ServiceBookingRecurrencePattern;
73
+ enabled: boolean;
74
+ discountType?: import("@lyxa.ai/core/dist/utilities/enum").ValueType | undefined;
75
+ discountValue?: number | undefined;
76
+ }[] | undefined;
77
+ slotInterval?: number | undefined;
78
+ bufferTime?: number | undefined;
79
+ servicePreparationTime?: number | undefined;
80
+ maxAdvanceOrderDay?: number | undefined;
81
+ autoUrgencyTimeLimit?: number | undefined;
82
+ } | undefined;
83
+ workHourSetting?: {
84
+ normalHours?: {
85
+ day: import("@lyxa.ai/core/dist/utilities/enum").WeekDay;
86
+ status: import("@lyxa.ai/core/dist/utilities/enum").WorkStatus;
87
+ openingHours?: {
88
+ start: string;
89
+ end: string;
90
+ }[] | undefined;
91
+ }[] | undefined;
92
+ holidayHours?: {
93
+ date?: Date | undefined;
94
+ status: import("@lyxa.ai/core/dist/utilities/enum").HolidayWorkStatus;
95
+ closingHour?: {
96
+ start: string;
97
+ end: string;
98
+ } | undefined;
99
+ }[] | undefined;
100
+ } | undefined;
101
+ createdAt?: Date | undefined;
102
+ updatedAt?: Date | undefined;
103
+ }> & {
30
104
  _id: import("mongoose").Types.ObjectId;
31
105
  } & {
32
106
  __v: number;
33
- }, "typegooseName"> & import("@typegoose/typegoose/lib/types").IObjectWithTypegooseFunction;
107
+ };
34
108
  message?: undefined;
109
+ } | {
110
+ isValid: boolean;
111
+ shop: import("mongoose").FlattenMaps<{
112
+ shopId?: string | undefined;
113
+ name: string;
114
+ ownerName: string;
115
+ email: string;
116
+ parent: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models/parent.model").Parent>;
117
+ itemType: import("@lyxa.ai/core/dist/utilities/enum").ItemType;
118
+ status: import("@lyxa.ai/core/dist/utilities/enum").Status;
119
+ shopZoneStatus?: import("@lyxa.ai/core/dist/utilities/enum").ZoneStatus | undefined;
120
+ brand: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models/brand.model").Brand>;
121
+ priceRange?: number | undefined;
122
+ phoneNumber: string;
123
+ userPhoneNumber: string;
124
+ additionalPhoneNumbers?: string[] | undefined;
125
+ bobContactFirstName?: string | undefined;
126
+ bobContactLastName?: string | undefined;
127
+ bobContactPhoneNumber?: string | undefined;
128
+ address: {
129
+ zone?: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models/zone.model").Zone> | undefined;
130
+ address: string;
131
+ description?: string | undefined;
132
+ city?: string | undefined;
133
+ state?: string | undefined;
134
+ country: string;
135
+ location: {
136
+ type?: import("@lyxa.ai/core/dist/utilities/enum").GeoLocationType | undefined;
137
+ coordinates: [number, number];
138
+ };
139
+ latitude: number;
140
+ longitude: number;
141
+ };
142
+ logo?: string | undefined;
143
+ banner?: string | undefined;
144
+ document?: {
145
+ commercialCircularDocument?: string | undefined;
146
+ taxRegistration?: string | undefined;
147
+ contactPaper?: string | undefined;
148
+ identityDoc?: string | undefined;
149
+ } | undefined;
150
+ onlineStatus?: import("@lyxa.ai/core/dist/utilities/enum").ShopOnlineStatus | undefined;
151
+ workHourSetting?: {
152
+ normalHours?: {
153
+ day: import("@lyxa.ai/core/dist/utilities/enum").WeekDay;
154
+ status: import("@lyxa.ai/core/dist/utilities/enum").WorkStatus;
155
+ openingHours?: {
156
+ start: string;
157
+ end: string;
158
+ }[] | undefined;
159
+ }[] | undefined;
160
+ holidayHours?: {
161
+ date?: Date | undefined;
162
+ status: import("@lyxa.ai/core/dist/utilities/enum").HolidayWorkStatus;
163
+ closingHour?: {
164
+ start: string;
165
+ end: string;
166
+ } | undefined;
167
+ }[] | undefined;
168
+ } | undefined;
169
+ dietaries?: string[] | undefined;
170
+ tags?: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models/tag.model").Tag>[] | undefined;
171
+ isBeirutAuthentic: boolean;
172
+ isVisibleToUser: boolean;
173
+ isShopDelivery?: boolean | undefined;
174
+ deliveryFee?: number | undefined;
175
+ minimumOrderAmount?: number | undefined;
176
+ orderCapacityEnabled?: boolean | undefined;
177
+ orderCapacity?: number | undefined;
178
+ shopActiveTimingsOfCurrentDate?: {
179
+ start: string;
180
+ end: string;
181
+ }[] | undefined;
182
+ deliveryInfo?: {
183
+ totalDeliveries?: number | undefined;
184
+ totalDeliveryTime?: number | undefined;
185
+ } | undefined;
186
+ sortingOrder?: number | undefined;
187
+ allowSpecialInstructions?: boolean | undefined;
188
+ isRiderNoteVisible?: boolean | undefined;
189
+ riderNote?: string | undefined;
190
+ defaultPreparationTime?: number | undefined;
191
+ averagePreparationTime?: number | undefined;
192
+ bestSellerCategory?: {
193
+ title?: string | undefined;
194
+ status?: import("@lyxa.ai/core/dist/utilities/enum").Status | undefined;
195
+ } | undefined;
196
+ favouritesCategory?: {
197
+ title?: string | undefined;
198
+ status?: import("@lyxa.ai/core/dist/utilities/enum").Status | undefined;
199
+ products?: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models/product.model").Product>[] | undefined;
200
+ } | undefined;
201
+ avgRating?: number | undefined;
202
+ ordersCount?: number | undefined;
203
+ customersCount?: number | undefined;
204
+ fcmTokens?: string[] | undefined;
205
+ searchFields?: {
206
+ name?: {
207
+ autocomplete?: string[] | undefined;
208
+ fulltext?: string[] | undefined;
209
+ } | undefined;
210
+ products?: {
211
+ autocomplete?: string[] | undefined;
212
+ fulltext?: string[] | undefined;
213
+ } | undefined;
214
+ tags?: {
215
+ autocomplete?: string[] | undefined;
216
+ fulltext?: string[] | undefined;
217
+ } | undefined;
218
+ parentCategories?: {
219
+ autocomplete?: string[] | undefined;
220
+ fulltext?: string[] | undefined;
221
+ } | undefined;
222
+ subCategories?: {
223
+ autocomplete?: string[] | undefined;
224
+ fulltext?: string[] | undefined;
225
+ } | undefined;
226
+ brands?: {
227
+ autocomplete?: string[] | undefined;
228
+ fulltext?: string[] | undefined;
229
+ } | undefined;
230
+ } | undefined;
231
+ isMenuDietaryFilterEnabled?: boolean | undefined;
232
+ categoryNumberingEnabled?: boolean | undefined;
233
+ createdAt?: Date | undefined;
234
+ updatedAt?: Date | undefined;
235
+ }> & {
236
+ _id: import("mongoose").Types.ObjectId;
237
+ } & {
238
+ __v: number;
239
+ };
35
240
  }>;
36
241
  }
37
242
  export declare const customCouponService: CustomCouponService;
@@ -1 +1 @@
1
- {"version":3,"file":"custom-coupon.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/custom-coupon.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAqB,YAAY,IAAI,KAAK,EAAE,MAAM,4CAA4C,CAAC;AACtG,OAAO,EACN,qBAAqB,IAAI,SAAS,EAClC,qBAAqB,IAAI,SAAS,EAClC,iBAAiB,EACjB,MAAM,6BAA6B,CAAC;AAGrC,qBACa,mBAAmB;IAC/B,OAAO,CAAC,KAAK,CAAC;;IAUD,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IASrD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAuBjE,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBhF;AAED,eAAO,MAAM,mBAAmB,qBAAqC,CAAC"}
1
+ {"version":3,"file":"custom-coupon.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/custom-coupon.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAqB,YAAY,IAAI,KAAK,EAAE,MAAM,4CAA4C,CAAC;AACtG,OAAO,EACN,qBAAqB,IAAI,SAAS,EAClC,qBAAqB,IAAI,SAAS,EAClC,iBAAiB,EACjB,MAAM,6BAA6B,CAAC;AAGrC,qBACa,mBAAmB;IAC/B,OAAO,CAAC,KAAK,CAAC;;IAUD,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IASrD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAuBjE,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBhF;AAED,eAAO,MAAM,mBAAmB,qBAAqC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"global-coupon.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/global-coupon.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAqB,YAAY,IAAI,KAAK,EAAE,MAAM,4CAA4C,CAAC;AACtG,OAAO,EACN,yBAAyB,EACzB,qBAAqB,IAAI,SAAS,EAClC,qBAAqB,IAAI,SAAS,EAClC,iBAAiB,EACjB,MAAM,6BAA6B,CAAC;AAMrC,qBACa,mBAAmB;IAC/B,OAAO,CAAC,KAAK,CAAC;;IAUD,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IA6BrD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAsBjE,cAAc,CAC1B,IAAI,EAAE,iBAAiB,EACvB,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,GACjC,OAAO,CAAC,yBAAyB,CAAC;CA0CrC;AAED,eAAO,MAAM,mBAAmB,qBAAqC,CAAC"}
1
+ {"version":3,"file":"global-coupon.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/global-coupon.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAqB,YAAY,IAAI,KAAK,EAAE,MAAM,4CAA4C,CAAC;AACtG,OAAO,EACN,yBAAyB,EACzB,qBAAqB,IAAI,SAAS,EAClC,qBAAqB,IAAI,SAAS,EAClC,iBAAiB,EACjB,MAAM,6BAA6B,CAAC;AAMrC,qBACa,mBAAmB;IAC/B,OAAO,CAAC,KAAK,CAAC;;IAUD,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IA6BrD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAsBjE,cAAc,CAC1B,IAAI,EAAE,iBAAiB,EACvB,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,GACjC,OAAO,CAAC,yBAAyB,CAAC;CA4CrC;AAED,eAAO,MAAM,mBAAmB,qBAAqC,CAAC"}
@@ -119,6 +119,8 @@ let GlobalCouponService = class GlobalCouponService {
119
119
  secondaryCompanyCut: secondaryDiscountAmount,
120
120
  shopCut: 0,
121
121
  secondaryShopCut: 0,
122
+ vendorCut: 0,
123
+ secondaryVendorCut: 0,
122
124
  },
123
125
  };
124
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"global-coupon.service.js","sourceRoot":"/","sources":["modules/coupon/services/global-coupon.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA4C;AAC5C,yCAAyC;AAEzC,uEAAsG;AAOtG,4DAA0E;AAC1E,oEAA2E;AAC3E,gEAAgG;AAChG,8DAA2D;AAGpD,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IACvB,KAAK,CAAC;IAEd;QACC,IAAI,CAAC,KAAK,GAAG,0BAAiB,CAAC;IAChC,CAAC;IAMM,KAAK,CAAC,MAAM,CAAC,IAAe;QAClC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,IAAA,aAAK,GAAE,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,6BAA6B,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC9D,UAAU,EAAE,iBAAU,CAAC,MAAM;gBAC7B,cAAc,EAAE,IAAI;gBACpB,SAAS,EAAE,IAAI;gBACf,gBAAgB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBACpC,cAAc,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;aACrC,CAAC,CAAC;YAEH,IAAI,6BAA6B,EAAE,CAAC;gBACnC,MAAM,IAAI,kBAAS,CAAC;oBACnB,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,oCAAoC;iBAC7C,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvC,OAAO,MAAM,CAAC;IACf,CAAC;IAOM,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAe;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAC/C;YACC,GAAG,EAAE,EAAE;YACP,SAAS,EAAE,IAAI;SACf,EACD,IAAI,EACJ;YACC,GAAG,EAAE,IAAI;YACT,aAAa,EAAE,IAAI;SACnB,CACD,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,kBAAS,CAAC;gBACnB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,kBAAkB;aAC3B,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IACM,KAAK,CAAC,cAAc,CAC1B,IAAuB,EACvB,cAAmC;QAEnC,IAAI,cAAc,GACjB,cAAc,CAAC,SAAS,IAAI,gBAAS,CAAC,KAAK;YAC1C,CAAC,CAAC,cAAc,CAAC,KAAK;YACtB,CAAC,CAAC,IAAA,0BAAiB,EAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAE9E,IAAI,uBAAuB,GAC1B,cAAc,CAAC,SAAS,IAAI,gBAAS,CAAC,KAAK;YAC1C,CAAC,CAAC,MAAM,IAAA,6BAAkB,EAAC,cAAc,CAAC,KAAK,CAAC;YAChD,CAAC,CAAC,IAAA,+BAAsB,EAAC,CAAC,IAAI,CAAC,2BAA2B,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAE5F,IAAI,cAAc,CAAC,yBAAyB,IAAI,cAAc,CAAC,gBAAgB,EAAE,CAAC;YACjF,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAC3E,uBAAuB,GAAG,IAAI,CAAC,GAAG,CACjC,uBAAuB,EACvB,MAAM,IAAA,6BAAkB,EAAC,cAAc,CAAC,gBAAgB,CAAC,CACzD,CAAC;QACH,CAAC;QAED,IAAI,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9C,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC1C,CAAC;QACD,IAAI,uBAAuB,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;YAChE,uBAAuB,GAAG,IAAI,CAAC,2BAA2B,CAAC;QAC5D,CAAC;QAED,OAAO;YACN,OAAO,EAAE,IAAI;YACb,cAAc;YACd,uBAAuB;YACvB,iBAAiB,EAAE,IAAA,0BAAiB,EAAC,IAAI,CAAC,kBAAkB,GAAG,cAAc,CAAC;YAC9E,0BAA0B,EAAE,IAAA,+BAAsB,EACjD,IAAI,CAAC,2BAA2B,GAAG,uBAAuB,CAC1D;YACD,WAAW,EAAE;gBACZ,UAAU,EAAE,cAAc;gBAC1B,mBAAmB,EAAE,uBAAuB;gBAC5C,OAAO,EAAE,CAAC;gBACV,gBAAgB,EAAE,CAAC;aACnB;SACD,CAAC;IACH,CAAC;CACD,CAAA;AA3GY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,gBAAO,GAAE;;GACG,mBAAmB,CA2G/B;AAEY,QAAA,mBAAmB,GAAG,gBAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC","sourcesContent":["import Container, { Service } from 'typedi';\nimport { TRPCError } from '@trpc/server';\nimport { DocumentType } from '@typegoose/typegoose';\nimport { GlobalCouponModel, GlobalCoupon as Model } from '@lyxa.ai/core/dist/libraries/mongo/models/';\nimport {\n\tCouponValidationOutputDTO,\n\tCreateGlobalCouponDTO as CreateDTO,\n\tUpdateGlobalCouponDTO as UpdateDTO,\n\tValidateCouponDTO,\n} from '@modules/coupon/validations';\nimport { CouponType, ValueType } from '@lyxa.ai/core/dist/utilities/enum';\nimport { convertToSecondary } from '@lyxa.ai/core/dist/utilities/currency';\nimport { roundBaseCurrency, roundSecondaryCurrency } from '@lyxa.ai/core/dist/utilities/shared';\nimport { dayjs } from '@lyxa.ai/core/dist/utilities/dayjs';\n\n@Service()\nexport class GlobalCouponService {\n\tprivate model;\n\n\tconstructor() {\n\t\tthis.model = GlobalCouponModel;\n\t}\n\n\t/**\n\t * Create a new record\n\t * @param data Data for the new record\n\t */\n\tpublic async create(data: CreateDTO): Promise<DocumentType<Model>> {\n\t\tif (data.forNewUserOnly) {\n\t\t\tconst currentDate = dayjs().toDate();\n\t\t\tconst alreadyActiveForNewUserCoupon = await this.model.findOne({\n\t\t\t\tcouponType: CouponType.GLOBAL,\n\t\t\t\tforNewUserOnly: true,\n\t\t\t\tdeletedAt: null,\n\t\t\t\texpirationReason: { $exists: false },\n\t\t\t\t'duration.end': { $gte: currentDate },\n\t\t\t});\n\n\t\t\tif (alreadyActiveForNewUserCoupon) {\n\t\t\t\tthrow new TRPCError({\n\t\t\t\t\tcode: 'CONFLICT',\n\t\t\t\t\tmessage: 'New User Coupon is already active.',\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst coupon = this.model.create(data);\n\n\t\treturn coupon;\n\t}\n\n\t/**\n\t * Update record\n\t * @param id ID of the record\n\t * @param data Data to update\n\t */\n\tpublic async update(id: string, data: UpdateDTO): Promise<DocumentType<Model>> {\n\t\tconst record = await this.model.findOneAndUpdate(\n\t\t\t{\n\t\t\t\t_id: id,\n\t\t\t\tdeletedAt: null,\n\t\t\t},\n\t\t\tdata,\n\t\t\t{\n\t\t\t\tnew: true,\n\t\t\t\trunValidators: true,\n\t\t\t}\n\t\t);\n\n\t\tif (!record) {\n\t\t\tthrow new TRPCError({\n\t\t\t\tcode: 'NOT_FOUND',\n\t\t\t\tmessage: `Record not found`,\n\t\t\t});\n\t\t}\n\n\t\treturn record;\n\t}\n\tpublic async validateCoupon(\n\t\tdata: ValidateCouponDTO,\n\t\tcouponDocument: DocumentType<Model>\n\t): Promise<CouponValidationOutputDTO> {\n\t\tlet discountAmount =\n\t\t\tcouponDocument.valueType == ValueType.FIXED\n\t\t\t\t? couponDocument.value\n\t\t\t\t: roundBaseCurrency((data.amountBeforeCoupon * couponDocument.value) / 100);\n\n\t\tlet secondaryDiscountAmount =\n\t\t\tcouponDocument.valueType == ValueType.FIXED\n\t\t\t\t? await convertToSecondary(couponDocument.value)\n\t\t\t\t: roundSecondaryCurrency((data.secondaryAmountBeforeCoupon * couponDocument.value) / 100);\n\n\t\tif (couponDocument.isMaxDiscountLimitEnabled && couponDocument.maxDiscountLimit) {\n\t\t\tdiscountAmount = Math.min(discountAmount, couponDocument.maxDiscountLimit);\n\t\t\tsecondaryDiscountAmount = Math.min(\n\t\t\t\tsecondaryDiscountAmount,\n\t\t\t\tawait convertToSecondary(couponDocument.maxDiscountLimit)\n\t\t\t);\n\t\t}\n\t\t\n\t\tif (discountAmount > data.amountBeforeCoupon) {\n\t\t\tdiscountAmount = data.amountBeforeCoupon;\n\t\t}\n\t\tif (secondaryDiscountAmount > data.secondaryAmountBeforeCoupon) {\n\t\t\tsecondaryDiscountAmount = data.secondaryAmountBeforeCoupon;\n\t\t}\n\n\t\treturn {\n\t\t\tisValid: true,\n\t\t\tdiscountAmount,\n\t\t\tsecondaryDiscountAmount,\n\t\t\tamountAfterCoupon: roundBaseCurrency(data.amountBeforeCoupon - discountAmount),\n\t\t\tsecondaryAmountAfterCoupon: roundSecondaryCurrency(\n\t\t\t\tdata.secondaryAmountBeforeCoupon - secondaryDiscountAmount\n\t\t\t),\n\t\t\tdiscountCut: {\n\t\t\t\tcompanyCut: discountAmount,\n\t\t\t\tsecondaryCompanyCut: secondaryDiscountAmount,\n\t\t\t\tshopCut: 0,\n\t\t\t\tsecondaryShopCut: 0,\n\t\t\t},\n\t\t};\n\t}\n}\n\nexport const globalCouponService = Container.get(GlobalCouponService);\n"]}
1
+ {"version":3,"file":"global-coupon.service.js","sourceRoot":"/","sources":["modules/coupon/services/global-coupon.service.ts"],"names":[],"mappings":"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","sourcesContent":["import Container, { Service } from 'typedi';\nimport { TRPCError } from '@trpc/server';\nimport { DocumentType } from '@typegoose/typegoose';\nimport { GlobalCouponModel, GlobalCoupon as Model } from '@lyxa.ai/core/dist/libraries/mongo/models/';\nimport {\n\tCouponValidationOutputDTO,\n\tCreateGlobalCouponDTO as CreateDTO,\n\tUpdateGlobalCouponDTO as UpdateDTO,\n\tValidateCouponDTO,\n} from '@modules/coupon/validations';\nimport { CouponType, ValueType } from '@lyxa.ai/core/dist/utilities/enum';\nimport { convertToSecondary } from '@lyxa.ai/core/dist/utilities/currency';\nimport { roundBaseCurrency, roundSecondaryCurrency } from '@lyxa.ai/core/dist/utilities/shared';\nimport { dayjs } from '@lyxa.ai/core/dist/utilities/dayjs';\n\n@Service()\nexport class GlobalCouponService {\n\tprivate model;\n\n\tconstructor() {\n\t\tthis.model = GlobalCouponModel;\n\t}\n\n\t/**\n\t * Create a new record\n\t * @param data Data for the new record\n\t */\n\tpublic async create(data: CreateDTO): Promise<DocumentType<Model>> {\n\t\tif (data.forNewUserOnly) {\n\t\t\tconst currentDate = dayjs().toDate();\n\t\t\tconst alreadyActiveForNewUserCoupon = await this.model.findOne({\n\t\t\t\tcouponType: CouponType.GLOBAL,\n\t\t\t\tforNewUserOnly: true,\n\t\t\t\tdeletedAt: null,\n\t\t\t\texpirationReason: { $exists: false },\n\t\t\t\t'duration.end': { $gte: currentDate },\n\t\t\t});\n\n\t\t\tif (alreadyActiveForNewUserCoupon) {\n\t\t\t\tthrow new TRPCError({\n\t\t\t\t\tcode: 'CONFLICT',\n\t\t\t\t\tmessage: 'New User Coupon is already active.',\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst coupon = this.model.create(data);\n\n\t\treturn coupon;\n\t}\n\n\t/**\n\t * Update record\n\t * @param id ID of the record\n\t * @param data Data to update\n\t */\n\tpublic async update(id: string, data: UpdateDTO): Promise<DocumentType<Model>> {\n\t\tconst record = await this.model.findOneAndUpdate(\n\t\t\t{\n\t\t\t\t_id: id,\n\t\t\t\tdeletedAt: null,\n\t\t\t},\n\t\t\tdata,\n\t\t\t{\n\t\t\t\tnew: true,\n\t\t\t\trunValidators: true,\n\t\t\t}\n\t\t);\n\n\t\tif (!record) {\n\t\t\tthrow new TRPCError({\n\t\t\t\tcode: 'NOT_FOUND',\n\t\t\t\tmessage: `Record not found`,\n\t\t\t});\n\t\t}\n\n\t\treturn record;\n\t}\n\tpublic async validateCoupon(\n\t\tdata: ValidateCouponDTO,\n\t\tcouponDocument: DocumentType<Model>\n\t): Promise<CouponValidationOutputDTO> {\n\t\tlet discountAmount =\n\t\t\tcouponDocument.valueType == ValueType.FIXED\n\t\t\t\t? couponDocument.value\n\t\t\t\t: roundBaseCurrency((data.amountBeforeCoupon * couponDocument.value) / 100);\n\n\t\tlet secondaryDiscountAmount =\n\t\t\tcouponDocument.valueType == ValueType.FIXED\n\t\t\t\t? await convertToSecondary(couponDocument.value)\n\t\t\t\t: roundSecondaryCurrency((data.secondaryAmountBeforeCoupon * couponDocument.value) / 100);\n\n\t\tif (couponDocument.isMaxDiscountLimitEnabled && couponDocument.maxDiscountLimit) {\n\t\t\tdiscountAmount = Math.min(discountAmount, couponDocument.maxDiscountLimit);\n\t\t\tsecondaryDiscountAmount = Math.min(\n\t\t\t\tsecondaryDiscountAmount,\n\t\t\t\tawait convertToSecondary(couponDocument.maxDiscountLimit)\n\t\t\t);\n\t\t}\n\t\t\n\t\tif (discountAmount > data.amountBeforeCoupon) {\n\t\t\tdiscountAmount = data.amountBeforeCoupon;\n\t\t}\n\t\tif (secondaryDiscountAmount > data.secondaryAmountBeforeCoupon) {\n\t\t\tsecondaryDiscountAmount = data.secondaryAmountBeforeCoupon;\n\t\t}\n\n\t\treturn {\n\t\t\tisValid: true,\n\t\t\tdiscountAmount,\n\t\t\tsecondaryDiscountAmount,\n\t\t\tamountAfterCoupon: roundBaseCurrency(data.amountBeforeCoupon - discountAmount),\n\t\t\tsecondaryAmountAfterCoupon: roundSecondaryCurrency(\n\t\t\t\tdata.secondaryAmountBeforeCoupon - secondaryDiscountAmount\n\t\t\t),\n\t\t\tdiscountCut: {\n\t\t\t\tcompanyCut: discountAmount,\n\t\t\t\tsecondaryCompanyCut: secondaryDiscountAmount,\n\t\t\t\tshopCut: 0,\n\t\t\t\tsecondaryShopCut: 0,\n\t\t\t\tvendorCut: 0,\n\t\t\t\tsecondaryVendorCut: 0,\n\t\t\t},\n\t\t};\n\t}\n}\n\nexport const globalCouponService = Container.get(GlobalCouponService);\n"]}
@@ -1,11 +1,14 @@
1
1
  import { DocumentType, mongoose } from '@typegoose/typegoose';
2
- import { BaseCoupon, Shop } from '@lyxa.ai/core/dist/libraries/mongo/models';
2
+ import { BaseCoupon } from '@lyxa.ai/core/dist/libraries/mongo/models';
3
+ import { ValueType } from '@lyxa.ai/core/dist/utilities/enum';
3
4
  import { Dayjs } from '@lyxa.ai/core/dist/utilities/dayjs/dayjs';
4
5
  import { CouponValidationOutputDTO, ValidateCouponDTO } from '../validations';
5
6
  export declare class CouponHelperService {
6
7
  private userModel;
7
8
  private orderModel;
9
+ private serviceBookingModel;
8
10
  private shopModel;
11
+ private vendorModel;
9
12
  private _coreUserModel;
10
13
  constructor();
11
14
  private get coreUserModel();
@@ -24,19 +27,226 @@ export declare class CouponHelperService {
24
27
  }): Promise<{
25
28
  isValid: boolean;
26
29
  message: string;
27
- shop?: undefined;
30
+ vendor?: undefined;
28
31
  } | {
29
32
  isValid: boolean;
30
- shop: mongoose.Document<unknown, import("@typegoose/typegoose/lib/types").BeAnObject, Shop, import("@typegoose/typegoose/lib/types").BeAnyObject, {}> & Omit<Shop & {
33
+ vendor: mongoose.FlattenMaps<{
34
+ vendorId?: string | undefined;
35
+ name: string;
36
+ ownerName: string;
37
+ email: string;
38
+ vendorParent: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models").VendorParent>;
39
+ serviceType?: import("@lyxa.ai/core/dist/utilities/enum").ServiceType | undefined;
40
+ status: import("@lyxa.ai/core/dist/utilities/enum").Status;
41
+ phoneNumber: string;
42
+ userPhoneNumber: string;
43
+ additionalPhoneNumbers?: string[] | undefined;
44
+ address: {
45
+ zone?: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models").Zone> | undefined;
46
+ address: string;
47
+ description?: string | undefined;
48
+ city?: string | undefined;
49
+ state?: string | undefined;
50
+ country: string;
51
+ location: {
52
+ type?: import("@lyxa.ai/core/dist/utilities/enum").GeoLocationType | undefined;
53
+ coordinates: [number, number];
54
+ };
55
+ latitude: number;
56
+ longitude: number;
57
+ };
58
+ zones: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models").Zone>[];
59
+ logo?: string | undefined;
60
+ banner?: string | undefined;
61
+ document?: {
62
+ commercialCircularDocument?: string | undefined;
63
+ taxRegistration?: string | undefined;
64
+ contactPaper?: string | undefined;
65
+ identityDoc?: string | undefined;
66
+ } | undefined;
67
+ avgRating?: number | undefined;
68
+ isVisibleToUser: boolean;
69
+ ordersCount?: number | undefined;
70
+ bobContactName?: string | undefined;
71
+ bobContactPhoneNumber?: string | undefined;
72
+ orderSettings?: {
73
+ frequencyConfigs?: {
74
+ recurrencePattern: import("@lyxa.ai/core/dist/utilities/enum").ServiceBookingRecurrencePattern;
75
+ enabled: boolean;
76
+ discountType?: ValueType | undefined;
77
+ discountValue?: number | undefined;
78
+ }[] | undefined;
79
+ slotInterval?: number | undefined;
80
+ bufferTime?: number | undefined;
81
+ servicePreparationTime?: number | undefined;
82
+ maxAdvanceOrderDay?: number | undefined;
83
+ autoUrgencyTimeLimit?: number | undefined;
84
+ } | undefined;
85
+ workHourSetting?: {
86
+ normalHours?: {
87
+ day: import("@lyxa.ai/core/dist/utilities/enum").WeekDay;
88
+ status: import("@lyxa.ai/core/dist/utilities/enum").WorkStatus;
89
+ openingHours?: {
90
+ start: string;
91
+ end: string;
92
+ }[] | undefined;
93
+ }[] | undefined;
94
+ holidayHours?: {
95
+ date?: Date | undefined;
96
+ status: import("@lyxa.ai/core/dist/utilities/enum").HolidayWorkStatus;
97
+ closingHour?: {
98
+ start: string;
99
+ end: string;
100
+ } | undefined;
101
+ }[] | undefined;
102
+ } | undefined;
103
+ createdAt?: Date | undefined;
104
+ updatedAt?: Date | undefined;
105
+ }> & {
31
106
  _id: mongoose.Types.ObjectId;
32
107
  } & {
33
108
  __v: number;
34
- }, "typegooseName"> & import("@typegoose/typegoose/lib/types").IObjectWithTypegooseFunction;
109
+ };
35
110
  message?: undefined;
111
+ } | {
112
+ isValid: boolean;
113
+ shop: mongoose.FlattenMaps<{
114
+ shopId?: string | undefined;
115
+ name: string;
116
+ ownerName: string;
117
+ email: string;
118
+ parent: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models").Parent>;
119
+ itemType: import("@lyxa.ai/core/dist/utilities/enum").ItemType;
120
+ status: import("@lyxa.ai/core/dist/utilities/enum").Status;
121
+ shopZoneStatus?: import("@lyxa.ai/core/dist/utilities/enum").ZoneStatus | undefined;
122
+ brand: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models").Brand>;
123
+ priceRange?: number | undefined;
124
+ phoneNumber: string;
125
+ userPhoneNumber: string;
126
+ additionalPhoneNumbers?: string[] | undefined;
127
+ bobContactFirstName?: string | undefined;
128
+ bobContactLastName?: string | undefined;
129
+ bobContactPhoneNumber?: string | undefined;
130
+ address: {
131
+ zone?: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models").Zone> | undefined;
132
+ address: string;
133
+ description?: string | undefined;
134
+ city?: string | undefined;
135
+ state?: string | undefined;
136
+ country: string;
137
+ location: {
138
+ type?: import("@lyxa.ai/core/dist/utilities/enum").GeoLocationType | undefined;
139
+ coordinates: [number, number];
140
+ };
141
+ latitude: number;
142
+ longitude: number;
143
+ };
144
+ logo?: string | undefined;
145
+ banner?: string | undefined;
146
+ document?: {
147
+ commercialCircularDocument?: string | undefined;
148
+ taxRegistration?: string | undefined;
149
+ contactPaper?: string | undefined;
150
+ identityDoc?: string | undefined;
151
+ } | undefined;
152
+ onlineStatus?: import("@lyxa.ai/core/dist/utilities/enum").ShopOnlineStatus | undefined;
153
+ workHourSetting?: {
154
+ normalHours?: {
155
+ day: import("@lyxa.ai/core/dist/utilities/enum").WeekDay;
156
+ status: import("@lyxa.ai/core/dist/utilities/enum").WorkStatus;
157
+ openingHours?: {
158
+ start: string;
159
+ end: string;
160
+ }[] | undefined;
161
+ }[] | undefined;
162
+ holidayHours?: {
163
+ date?: Date | undefined;
164
+ status: import("@lyxa.ai/core/dist/utilities/enum").HolidayWorkStatus;
165
+ closingHour?: {
166
+ start: string;
167
+ end: string;
168
+ } | undefined;
169
+ }[] | undefined;
170
+ } | undefined;
171
+ dietaries?: string[] | undefined;
172
+ tags?: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models").Tag>[] | undefined;
173
+ isBeirutAuthentic: boolean;
174
+ isVisibleToUser: boolean;
175
+ isShopDelivery?: boolean | undefined;
176
+ deliveryFee?: number | undefined;
177
+ minimumOrderAmount?: number | undefined;
178
+ orderCapacityEnabled?: boolean | undefined;
179
+ orderCapacity?: number | undefined;
180
+ shopActiveTimingsOfCurrentDate?: {
181
+ start: string;
182
+ end: string;
183
+ }[] | undefined;
184
+ deliveryInfo?: {
185
+ totalDeliveries?: number | undefined;
186
+ totalDeliveryTime?: number | undefined;
187
+ } | undefined;
188
+ sortingOrder?: number | undefined;
189
+ allowSpecialInstructions?: boolean | undefined;
190
+ isRiderNoteVisible?: boolean | undefined;
191
+ riderNote?: string | undefined;
192
+ defaultPreparationTime?: number | undefined;
193
+ averagePreparationTime?: number | undefined;
194
+ bestSellerCategory?: {
195
+ title?: string | undefined;
196
+ status?: import("@lyxa.ai/core/dist/utilities/enum").Status | undefined;
197
+ } | undefined;
198
+ favouritesCategory?: {
199
+ title?: string | undefined;
200
+ status?: import("@lyxa.ai/core/dist/utilities/enum").Status | undefined;
201
+ products?: import("@typegoose/typegoose").Ref<import("@lyxa.ai/core/dist/libraries/mongo/models").Product>[] | undefined;
202
+ } | undefined;
203
+ avgRating?: number | undefined;
204
+ ordersCount?: number | undefined;
205
+ customersCount?: number | undefined;
206
+ fcmTokens?: string[] | undefined;
207
+ searchFields?: {
208
+ name?: {
209
+ autocomplete?: string[] | undefined;
210
+ fulltext?: string[] | undefined;
211
+ } | undefined;
212
+ products?: {
213
+ autocomplete?: string[] | undefined;
214
+ fulltext?: string[] | undefined;
215
+ } | undefined;
216
+ tags?: {
217
+ autocomplete?: string[] | undefined;
218
+ fulltext?: string[] | undefined;
219
+ } | undefined;
220
+ parentCategories?: {
221
+ autocomplete?: string[] | undefined;
222
+ fulltext?: string[] | undefined;
223
+ } | undefined;
224
+ subCategories?: {
225
+ autocomplete?: string[] | undefined;
226
+ fulltext?: string[] | undefined;
227
+ } | undefined;
228
+ brands?: {
229
+ autocomplete?: string[] | undefined;
230
+ fulltext?: string[] | undefined;
231
+ } | undefined;
232
+ } | undefined;
233
+ isMenuDietaryFilterEnabled?: boolean | undefined;
234
+ categoryNumberingEnabled?: boolean | undefined;
235
+ createdAt?: Date | undefined;
236
+ updatedAt?: Date | undefined;
237
+ }> & {
238
+ _id: mongoose.Types.ObjectId;
239
+ } & {
240
+ __v: number;
241
+ };
36
242
  }>;
243
+ private validateVendorEligibility;
37
244
  private validateSingleShopRestriction;
38
245
  private validateMultiRestrictions;
246
+ private validateSingleVendorRestriction;
247
+ private validateVendorMultiRestrictions;
39
248
  private validateFirstOrderOnly;
249
+ private validateVendorFirstOrderOnly;
40
250
  fetchUserName(userId: mongoose.Types.ObjectId): Promise<string>;
41
251
  }
42
252
  export declare const couponHelperService: CouponHelperService;
@@ -1 +1 @@
1
- {"version":3,"file":"helper.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/helper.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EACN,UAAU,EAIV,IAAI,EAIJ,MAAM,2CAA2C,CAAC;AAGnD,OAAc,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAI9E,qBACa,mBAAmB;IAC/B,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,UAAU,CAA2D;IAC7E,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,cAAc,CAAoD;;IAQ1E,OAAO,KAAK,aAAa,GAKxB;IAEY,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB1D,6BAA6B,CACzC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC7B,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;IA0BL,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAwEvD,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO;IAU5C,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC;;;;IAyBvF,mBAAmB,CACzB,IAAI,EAAE,iBAAiB,EACvB,cAAc,EAAE,MAAM,EACtB,uBAAuB,EAAE,MAAM,EAC/B,mBAAmB,EAAE,OAAO,EAC5B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjC,yBAAyB;IAmBf,uBAAuB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE;;;;;;;;;;;;;YAoBjF,6BAA6B;IAuB3C,OAAO,CAAC,yBAAyB;YAuBnB,sBAAsB;IAmBvB,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;CAS5E;AAED,eAAO,MAAM,mBAAmB,qBAAqC,CAAC"}
1
+ {"version":3,"file":"helper.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/helper.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EACN,UAAU,EAYV,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAA4C,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACxG,OAAc,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAI9E,qBACa,mBAAmB;IAC/B,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,UAAU,CAA2D;IAC7E,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,WAAW,CAA+C;IAClE,OAAO,CAAC,cAAc,CAAoD;;IAW1E,OAAO,KAAK,aAAa,GAKxB;IAEY,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IA+B1D,6BAA6B,CACzC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC7B,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;IAiCL,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAwEvD,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO;IAU5C,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC;;;;IAyBvF,mBAAmB,CACzB,IAAI,EAAE,iBAAiB,EACvB,cAAc,EAAE,MAAM,EACtB,uBAAuB,EAAE,MAAM,EAC/B,mBAAmB,EAAE,OAAO,EAC5B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjC,yBAAyB;IAqBf,uBAAuB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA0BjF,yBAAyB;YAqBzB,6BAA6B;IA0B3C,OAAO,CAAC,yBAAyB;YAuBnB,+BAA+B;IAuB7C,OAAO,CAAC,+BAA+B;YAuBzB,sBAAsB;YAmBtB,4BAA4B;IAmB7B,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;CAS5E;AAED,eAAO,MAAM,mBAAmB,qBAAqC,CAAC"}