@lyxa.ai/marketing 1.0.53 → 1.0.55

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 (170) hide show
  1. package/dist/lib/index.d.ts +679 -28
  2. package/dist/lib/index.d.ts.map +1 -1
  3. package/dist/lib/index.js +2 -2
  4. package/dist/lib/index.js.map +1 -1
  5. package/dist/lib/modules/coupon/routers/coupon.router.d.ts +651 -0
  6. package/dist/lib/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  7. package/dist/lib/modules/coupon/routers/coupon.router.js +8 -1
  8. package/dist/lib/modules/coupon/routers/coupon.router.js.map +1 -1
  9. package/dist/lib/modules/coupon/services/coupon.service.d.ts +8 -1
  10. package/dist/lib/modules/coupon/services/coupon.service.d.ts.map +1 -1
  11. package/dist/lib/modules/coupon/services/coupon.service.js +234 -27
  12. package/dist/lib/modules/coupon/services/coupon.service.js.map +1 -1
  13. package/dist/lib/modules/coupon/services/custom-coupon.service.d.ts +5 -0
  14. package/dist/lib/modules/coupon/services/custom-coupon.service.d.ts.map +1 -1
  15. package/dist/lib/modules/coupon/services/helper.service.d.ts +5 -0
  16. package/dist/lib/modules/coupon/services/helper.service.d.ts.map +1 -1
  17. package/dist/lib/modules/coupon/services/individual-store-coupon.service.d.ts +5 -0
  18. package/dist/lib/modules/coupon/services/individual-store-coupon.service.d.ts.map +1 -1
  19. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts +1 -0
  20. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts.map +1 -1
  21. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.js +27 -9
  22. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.js.map +1 -1
  23. package/dist/lib/modules/coupon/services/shops-categories-coupon.service.d.ts +5 -0
  24. package/dist/lib/modules/coupon/services/shops-categories-coupon.service.d.ts.map +1 -1
  25. package/dist/lib/modules/coupon/validations/all-coupons.validation.d.ts +293 -1125
  26. package/dist/lib/modules/coupon/validations/all-coupons.validation.d.ts.map +1 -1
  27. package/dist/lib/modules/coupon/validations/all-coupons.validation.js +2 -16
  28. package/dist/lib/modules/coupon/validations/all-coupons.validation.js.map +1 -1
  29. package/dist/lib/modules/coupon/validations/coupon.validation.d.ts +44 -0
  30. package/dist/lib/modules/coupon/validations/coupon.validation.d.ts.map +1 -1
  31. package/dist/lib/modules/coupon/validations/coupon.validation.js +16 -1
  32. package/dist/lib/modules/coupon/validations/coupon.validation.js.map +1 -1
  33. package/dist/lib/modules/coupon/validations/create-coupon.validation.d.ts.map +1 -1
  34. package/dist/lib/modules/coupon/validations/create-coupon.validation.js +4 -1
  35. package/dist/lib/modules/coupon/validations/create-coupon.validation.js.map +1 -1
  36. package/dist/lib/modules/coupon/validations/index.d.ts +1 -0
  37. package/dist/lib/modules/coupon/validations/index.d.ts.map +1 -1
  38. package/dist/lib/modules/coupon/validations/index.js +1 -0
  39. package/dist/lib/modules/coupon/validations/index.js.map +1 -1
  40. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.d.ts +8 -8
  41. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts +34 -34
  42. package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.validation.d.ts +9 -1
  43. package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.validation.d.ts.map +1 -1
  44. package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.validation.js +26 -3
  45. package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.validation.js.map +1 -1
  46. package/dist/lib/modules/limited-time-offer/limited-time-offer.router.d.ts +28 -28
  47. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.d.ts +1 -0
  48. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.d.ts.map +1 -1
  49. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.js +6 -0
  50. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.js.map +1 -1
  51. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.builder.d.ts +13 -0
  52. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.builder.d.ts.map +1 -0
  53. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.builder.js +22 -0
  54. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.builder.js.map +1 -0
  55. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.constants.d.ts +20 -0
  56. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.constants.d.ts.map +1 -0
  57. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.constants.js +26 -0
  58. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.constants.js.map +1 -0
  59. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.service.d.ts +8 -0
  60. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.service.d.ts.map +1 -0
  61. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.service.js +60 -0
  62. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.service.js.map +1 -0
  63. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.type.d.ts +5 -0
  64. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.type.d.ts.map +1 -0
  65. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.type.js +3 -0
  66. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.type.js.map +1 -0
  67. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.js +1 -1
  68. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.js.map +1 -1
  69. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts +1 -0
  70. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts.map +1 -1
  71. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.js +8 -1
  72. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.js.map +1 -1
  73. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts +20 -20
  74. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts +82 -82
  75. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts +2 -1
  76. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts.map +1 -1
  77. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.js +12 -5
  78. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.js.map +1 -1
  79. package/dist/lib/modules/marketing/services/marketing.service.d.ts +1 -0
  80. package/dist/lib/modules/marketing/services/marketing.service.d.ts.map +1 -1
  81. package/dist/lib/modules/marketing/services/marketing.service.js +9 -0
  82. package/dist/lib/modules/marketing/services/marketing.service.js.map +1 -1
  83. package/dist/lib/modules/tournament/match/events/evaluate-predictions.consumer.js +1 -1
  84. package/dist/lib/modules/tournament/match/events/evaluate-predictions.consumer.js.map +1 -1
  85. package/dist/lib/modules/tournament/notification/__tests__/notification.service.spec.d.ts +2 -0
  86. package/dist/lib/modules/tournament/notification/__tests__/notification.service.spec.d.ts.map +1 -0
  87. package/dist/lib/modules/tournament/notification/__tests__/notification.service.spec.js +266 -0
  88. package/dist/lib/modules/tournament/notification/__tests__/notification.service.spec.js.map +1 -0
  89. package/dist/lib/modules/tournament/notification/notification.service.d.ts +14 -3
  90. package/dist/lib/modules/tournament/notification/notification.service.d.ts.map +1 -1
  91. package/dist/lib/modules/tournament/notification/notification.service.js +89 -31
  92. package/dist/lib/modules/tournament/notification/notification.service.js.map +1 -1
  93. package/dist/lib/modules/tournament/participant/participant.repository.d.ts +1 -0
  94. package/dist/lib/modules/tournament/participant/participant.repository.d.ts.map +1 -1
  95. package/dist/lib/modules/tournament/participant/participant.repository.js +9 -0
  96. package/dist/lib/modules/tournament/participant/participant.repository.js.map +1 -1
  97. package/dist/lib/modules/tournament/participant/participant.service.d.ts +1 -0
  98. package/dist/lib/modules/tournament/participant/participant.service.d.ts.map +1 -1
  99. package/dist/lib/modules/tournament/participant/participant.service.js +6 -0
  100. package/dist/lib/modules/tournament/participant/participant.service.js.map +1 -1
  101. package/dist/lib/modules/tournament/reward/reward.builder.d.ts.map +1 -1
  102. package/dist/lib/modules/tournament/reward/reward.builder.js +3 -3
  103. package/dist/lib/modules/tournament/reward/reward.builder.js.map +1 -1
  104. package/dist/lib/modules/tournament/reward/reward.types.d.ts +1 -0
  105. package/dist/lib/modules/tournament/reward/reward.types.d.ts.map +1 -1
  106. package/dist/lib/modules/tournament/reward/reward.types.js.map +1 -1
  107. package/dist/lib/modules/tournament/schedule/schedule.service.d.ts +7 -0
  108. package/dist/lib/modules/tournament/schedule/schedule.service.d.ts.map +1 -1
  109. package/dist/lib/modules/tournament/schedule/schedule.service.js +52 -19
  110. package/dist/lib/modules/tournament/schedule/schedule.service.js.map +1 -1
  111. package/dist/lib/utility/utils.js +2 -2
  112. package/dist/lib/utility/utils.js.map +1 -1
  113. package/dist/types/index.d.ts +679 -28
  114. package/dist/types/index.d.ts.map +1 -1
  115. package/dist/types/modules/coupon/routers/coupon.router.d.ts +651 -0
  116. package/dist/types/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  117. package/dist/types/modules/coupon/services/coupon.service.d.ts +8 -1
  118. package/dist/types/modules/coupon/services/coupon.service.d.ts.map +1 -1
  119. package/dist/types/modules/coupon/services/custom-coupon.service.d.ts +5 -0
  120. package/dist/types/modules/coupon/services/custom-coupon.service.d.ts.map +1 -1
  121. package/dist/types/modules/coupon/services/helper.service.d.ts +5 -0
  122. package/dist/types/modules/coupon/services/helper.service.d.ts.map +1 -1
  123. package/dist/types/modules/coupon/services/individual-store-coupon.service.d.ts +5 -0
  124. package/dist/types/modules/coupon/services/individual-store-coupon.service.d.ts.map +1 -1
  125. package/dist/types/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts +1 -0
  126. package/dist/types/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts.map +1 -1
  127. package/dist/types/modules/coupon/services/shops-categories-coupon.service.d.ts +5 -0
  128. package/dist/types/modules/coupon/services/shops-categories-coupon.service.d.ts.map +1 -1
  129. package/dist/types/modules/coupon/validations/all-coupons.validation.d.ts +293 -1125
  130. package/dist/types/modules/coupon/validations/all-coupons.validation.d.ts.map +1 -1
  131. package/dist/types/modules/coupon/validations/coupon.validation.d.ts +44 -0
  132. package/dist/types/modules/coupon/validations/coupon.validation.d.ts.map +1 -1
  133. package/dist/types/modules/coupon/validations/create-coupon.validation.d.ts.map +1 -1
  134. package/dist/types/modules/coupon/validations/index.d.ts +1 -0
  135. package/dist/types/modules/coupon/validations/index.d.ts.map +1 -1
  136. package/dist/types/modules/limited-time-offer/campaign/campaign.router.d.ts +8 -8
  137. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts +34 -34
  138. package/dist/types/modules/limited-time-offer/config/limited-time-offer-config.validation.d.ts +9 -1
  139. package/dist/types/modules/limited-time-offer/config/limited-time-offer-config.validation.d.ts.map +1 -1
  140. package/dist/types/modules/limited-time-offer/limited-time-offer.router.d.ts +28 -28
  141. package/dist/types/modules/limited-time-offer/limited-time-offer.service.d.ts +1 -0
  142. package/dist/types/modules/limited-time-offer/limited-time-offer.service.d.ts.map +1 -1
  143. package/dist/types/modules/limited-time-offer/notification/limited-time-offer-notification.builder.d.ts +13 -0
  144. package/dist/types/modules/limited-time-offer/notification/limited-time-offer-notification.builder.d.ts.map +1 -0
  145. package/dist/types/modules/limited-time-offer/notification/limited-time-offer-notification.constants.d.ts +20 -0
  146. package/dist/types/modules/limited-time-offer/notification/limited-time-offer-notification.constants.d.ts.map +1 -0
  147. package/dist/types/modules/limited-time-offer/notification/limited-time-offer-notification.service.d.ts +8 -0
  148. package/dist/types/modules/limited-time-offer/notification/limited-time-offer-notification.service.d.ts.map +1 -0
  149. package/dist/types/modules/limited-time-offer/notification/limited-time-offer-notification.type.d.ts +5 -0
  150. package/dist/types/modules/limited-time-offer/notification/limited-time-offer-notification.type.d.ts.map +1 -0
  151. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts +1 -0
  152. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts.map +1 -1
  153. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts +20 -20
  154. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts +82 -82
  155. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts +2 -1
  156. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts.map +1 -1
  157. package/dist/types/modules/marketing/services/marketing.service.d.ts +1 -0
  158. package/dist/types/modules/marketing/services/marketing.service.d.ts.map +1 -1
  159. package/dist/types/modules/tournament/notification/notification.service.d.ts +14 -3
  160. package/dist/types/modules/tournament/notification/notification.service.d.ts.map +1 -1
  161. package/dist/types/modules/tournament/participant/participant.repository.d.ts +1 -0
  162. package/dist/types/modules/tournament/participant/participant.repository.d.ts.map +1 -1
  163. package/dist/types/modules/tournament/participant/participant.service.d.ts +1 -0
  164. package/dist/types/modules/tournament/participant/participant.service.d.ts.map +1 -1
  165. package/dist/types/modules/tournament/reward/reward.builder.d.ts.map +1 -1
  166. package/dist/types/modules/tournament/reward/reward.types.d.ts +1 -0
  167. package/dist/types/modules/tournament/reward/reward.types.d.ts.map +1 -1
  168. package/dist/types/modules/tournament/schedule/schedule.service.d.ts +7 -0
  169. package/dist/types/modules/tournament/schedule/schedule.service.d.ts.map +1 -1
  170. package/package.json +3 -3
@@ -134,9 +134,9 @@ export declare const LtoCampaignSchema: z.ZodObject<{
134
134
  }, "strip", z.ZodTypeAny, {
135
135
  status: LimitedTimeOfferCampaignStatus;
136
136
  _id: import("mongoose").Types.ObjectId;
137
+ campaignNumber: number;
137
138
  discountOptions: number[];
138
139
  maxDiscountCaps: number[];
139
- campaignNumber: number;
140
140
  createdAt?: Date | null | undefined;
141
141
  startDate?: Date | null | undefined;
142
142
  endDate?: Date | null | undefined;
@@ -154,9 +154,9 @@ export declare const LtoCampaignSchema: z.ZodObject<{
154
154
  updatedAt?: Date | null | undefined;
155
155
  title?: string | undefined;
156
156
  subTitle?: string | undefined;
157
+ archivedAt?: Date | null | undefined;
157
158
  discountOptions?: number[] | undefined;
158
159
  maxDiscountCaps?: number[] | undefined;
159
- archivedAt?: Date | null | undefined;
160
160
  }>;
161
161
  export declare const LtoCampaignHistoryItemSchema: z.ZodObject<{
162
162
  id: z.ZodString;
@@ -191,16 +191,16 @@ export declare const LtoCampaignParticipantItemSchema: z.ZodObject<{
191
191
  shopId: import("mongoose").Types.ObjectId;
192
192
  joinedAt: Date;
193
193
  shopName: string | null;
194
- shopPhoto?: string | null | undefined;
195
194
  discountPercentage?: number | undefined;
196
195
  maxDiscountCap?: number | undefined;
196
+ shopPhoto?: string | null | undefined;
197
197
  }, {
198
198
  shopId: string | import("mongoose").Types.ObjectId;
199
199
  joinedAt: Date;
200
200
  shopName: string | null;
201
- shopPhoto?: string | null | undefined;
202
201
  discountPercentage?: number | undefined;
203
202
  maxDiscountCap?: number | undefined;
203
+ shopPhoto?: string | null | undefined;
204
204
  }>;
205
205
  export declare const LtoActiveCampaignSchema: z.ZodObject<{
206
206
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, import("mongoose").Types.ObjectId, string>, z.ZodType<import("mongoose").Types.ObjectId, z.ZodTypeDef, import("mongoose").Types.ObjectId>]>;
@@ -251,9 +251,9 @@ export declare const LtoCampaignResponseSchema: z.ZodObject<{
251
251
  updatedAt?: Date | null | undefined;
252
252
  title?: string | undefined;
253
253
  subTitle?: string | undefined;
254
+ archivedAt?: Date | null | undefined;
254
255
  discountOptions?: number[] | undefined;
255
256
  maxDiscountCaps?: number[] | undefined;
256
- archivedAt?: Date | null | undefined;
257
257
  }, z.ZodTypeDef, {
258
258
  status: LimitedTimeOfferCampaignStatus;
259
259
  _id: string | import("mongoose").Types.ObjectId;
@@ -264,9 +264,9 @@ export declare const LtoCampaignResponseSchema: z.ZodObject<{
264
264
  updatedAt?: Date | null | undefined;
265
265
  title?: string | undefined;
266
266
  subTitle?: string | undefined;
267
+ archivedAt?: Date | null | undefined;
267
268
  discountOptions?: number[] | undefined;
268
269
  maxDiscountCaps?: number[] | undefined;
269
- archivedAt?: Date | null | undefined;
270
270
  }>, "many">;
271
271
  }, "strip", z.ZodTypeAny, {
272
272
  documents: {
@@ -279,9 +279,9 @@ export declare const LtoCampaignResponseSchema: z.ZodObject<{
279
279
  updatedAt?: Date | null | undefined;
280
280
  title?: string | undefined;
281
281
  subTitle?: string | undefined;
282
+ archivedAt?: Date | null | undefined;
282
283
  discountOptions?: number[] | undefined;
283
284
  maxDiscountCaps?: number[] | undefined;
284
- archivedAt?: Date | null | undefined;
285
285
  }[];
286
286
  metadata?: {
287
287
  page: number;
@@ -300,9 +300,9 @@ export declare const LtoCampaignResponseSchema: z.ZodObject<{
300
300
  updatedAt?: Date | null | undefined;
301
301
  title?: string | undefined;
302
302
  subTitle?: string | undefined;
303
+ archivedAt?: Date | null | undefined;
303
304
  discountOptions?: number[] | undefined;
304
305
  maxDiscountCaps?: number[] | undefined;
305
- archivedAt?: Date | null | undefined;
306
306
  }[];
307
307
  metadata?: {
308
308
  page: number;
@@ -320,9 +320,9 @@ export declare const LtoCampaignResponseSchema: z.ZodObject<{
320
320
  updatedAt?: Date | null | undefined;
321
321
  title?: string | undefined;
322
322
  subTitle?: string | undefined;
323
+ archivedAt?: Date | null | undefined;
323
324
  discountOptions?: number[] | undefined;
324
325
  maxDiscountCaps?: number[] | undefined;
325
- archivedAt?: Date | null | undefined;
326
326
  }, z.ZodTypeDef, {
327
327
  status: LimitedTimeOfferCampaignStatus;
328
328
  _id: string | import("mongoose").Types.ObjectId;
@@ -333,9 +333,9 @@ export declare const LtoCampaignResponseSchema: z.ZodObject<{
333
333
  updatedAt?: Date | null | undefined;
334
334
  title?: string | undefined;
335
335
  subTitle?: string | undefined;
336
+ archivedAt?: Date | null | undefined;
336
337
  discountOptions?: number[] | undefined;
337
338
  maxDiscountCaps?: number[] | undefined;
338
- archivedAt?: Date | null | undefined;
339
339
  }>]>>;
340
340
  }, "strip", z.ZodTypeAny, {
341
341
  message: string;
@@ -350,9 +350,9 @@ export declare const LtoCampaignResponseSchema: z.ZodObject<{
350
350
  updatedAt?: Date | null | undefined;
351
351
  title?: string | undefined;
352
352
  subTitle?: string | undefined;
353
+ archivedAt?: Date | null | undefined;
353
354
  discountOptions?: number[] | undefined;
354
355
  maxDiscountCaps?: number[] | undefined;
355
- archivedAt?: Date | null | undefined;
356
356
  } | {
357
357
  documents: {
358
358
  status: LimitedTimeOfferCampaignStatus;
@@ -364,9 +364,9 @@ export declare const LtoCampaignResponseSchema: z.ZodObject<{
364
364
  updatedAt?: Date | null | undefined;
365
365
  title?: string | undefined;
366
366
  subTitle?: string | undefined;
367
+ archivedAt?: Date | null | undefined;
367
368
  discountOptions?: number[] | undefined;
368
369
  maxDiscountCaps?: number[] | undefined;
369
- archivedAt?: Date | null | undefined;
370
370
  }[];
371
371
  metadata?: {
372
372
  page: number;
@@ -388,9 +388,9 @@ export declare const LtoCampaignResponseSchema: z.ZodObject<{
388
388
  updatedAt?: Date | null | undefined;
389
389
  title?: string | undefined;
390
390
  subTitle?: string | undefined;
391
+ archivedAt?: Date | null | undefined;
391
392
  discountOptions?: number[] | undefined;
392
393
  maxDiscountCaps?: number[] | undefined;
393
- archivedAt?: Date | null | undefined;
394
394
  } | {
395
395
  documents: {
396
396
  status: LimitedTimeOfferCampaignStatus;
@@ -402,9 +402,9 @@ export declare const LtoCampaignResponseSchema: z.ZodObject<{
402
402
  updatedAt?: Date | null | undefined;
403
403
  title?: string | undefined;
404
404
  subTitle?: string | undefined;
405
+ archivedAt?: Date | null | undefined;
405
406
  discountOptions?: number[] | undefined;
406
407
  maxDiscountCaps?: number[] | undefined;
407
- archivedAt?: Date | null | undefined;
408
408
  }[];
409
409
  metadata?: {
410
410
  page: number;
@@ -444,9 +444,9 @@ export declare const LtoCampaignNullableResponseSchema: z.ZodObject<{
444
444
  updatedAt?: Date | null | undefined;
445
445
  title?: string | undefined;
446
446
  subTitle?: string | undefined;
447
+ archivedAt?: Date | null | undefined;
447
448
  discountOptions?: number[] | undefined;
448
449
  maxDiscountCaps?: number[] | undefined;
449
- archivedAt?: Date | null | undefined;
450
450
  } | null, z.ZodTypeDef, {
451
451
  status: LimitedTimeOfferCampaignStatus;
452
452
  _id: string | import("mongoose").Types.ObjectId;
@@ -457,9 +457,9 @@ export declare const LtoCampaignNullableResponseSchema: z.ZodObject<{
457
457
  updatedAt?: Date | null | undefined;
458
458
  title?: string | undefined;
459
459
  subTitle?: string | undefined;
460
+ archivedAt?: Date | null | undefined;
460
461
  discountOptions?: number[] | undefined;
461
462
  maxDiscountCaps?: number[] | undefined;
462
- archivedAt?: Date | null | undefined;
463
463
  } | null>, "many">;
464
464
  }, "strip", z.ZodTypeAny, {
465
465
  documents: ({
@@ -472,9 +472,9 @@ export declare const LtoCampaignNullableResponseSchema: z.ZodObject<{
472
472
  updatedAt?: Date | null | undefined;
473
473
  title?: string | undefined;
474
474
  subTitle?: string | undefined;
475
+ archivedAt?: Date | null | undefined;
475
476
  discountOptions?: number[] | undefined;
476
477
  maxDiscountCaps?: number[] | undefined;
477
- archivedAt?: Date | null | undefined;
478
478
  } | null)[];
479
479
  metadata?: {
480
480
  page: number;
@@ -493,9 +493,9 @@ export declare const LtoCampaignNullableResponseSchema: z.ZodObject<{
493
493
  updatedAt?: Date | null | undefined;
494
494
  title?: string | undefined;
495
495
  subTitle?: string | undefined;
496
+ archivedAt?: Date | null | undefined;
496
497
  discountOptions?: number[] | undefined;
497
498
  maxDiscountCaps?: number[] | undefined;
498
- archivedAt?: Date | null | undefined;
499
499
  } | null)[];
500
500
  metadata?: {
501
501
  page: number;
@@ -513,9 +513,9 @@ export declare const LtoCampaignNullableResponseSchema: z.ZodObject<{
513
513
  updatedAt?: Date | null | undefined;
514
514
  title?: string | undefined;
515
515
  subTitle?: string | undefined;
516
+ archivedAt?: Date | null | undefined;
516
517
  discountOptions?: number[] | undefined;
517
518
  maxDiscountCaps?: number[] | undefined;
518
- archivedAt?: Date | null | undefined;
519
519
  } | null, z.ZodTypeDef, {
520
520
  status: LimitedTimeOfferCampaignStatus;
521
521
  _id: string | import("mongoose").Types.ObjectId;
@@ -526,9 +526,9 @@ export declare const LtoCampaignNullableResponseSchema: z.ZodObject<{
526
526
  updatedAt?: Date | null | undefined;
527
527
  title?: string | undefined;
528
528
  subTitle?: string | undefined;
529
+ archivedAt?: Date | null | undefined;
529
530
  discountOptions?: number[] | undefined;
530
531
  maxDiscountCaps?: number[] | undefined;
531
- archivedAt?: Date | null | undefined;
532
532
  } | null>]>>;
533
533
  }, "strip", z.ZodTypeAny, {
534
534
  message: string;
@@ -543,9 +543,9 @@ export declare const LtoCampaignNullableResponseSchema: z.ZodObject<{
543
543
  updatedAt?: Date | null | undefined;
544
544
  title?: string | undefined;
545
545
  subTitle?: string | undefined;
546
+ archivedAt?: Date | null | undefined;
546
547
  discountOptions?: number[] | undefined;
547
548
  maxDiscountCaps?: number[] | undefined;
548
- archivedAt?: Date | null | undefined;
549
549
  } | {
550
550
  documents: ({
551
551
  status: LimitedTimeOfferCampaignStatus;
@@ -557,9 +557,9 @@ export declare const LtoCampaignNullableResponseSchema: z.ZodObject<{
557
557
  updatedAt?: Date | null | undefined;
558
558
  title?: string | undefined;
559
559
  subTitle?: string | undefined;
560
+ archivedAt?: Date | null | undefined;
560
561
  discountOptions?: number[] | undefined;
561
562
  maxDiscountCaps?: number[] | undefined;
562
- archivedAt?: Date | null | undefined;
563
563
  } | null)[];
564
564
  metadata?: {
565
565
  page: number;
@@ -581,9 +581,9 @@ export declare const LtoCampaignNullableResponseSchema: z.ZodObject<{
581
581
  updatedAt?: Date | null | undefined;
582
582
  title?: string | undefined;
583
583
  subTitle?: string | undefined;
584
+ archivedAt?: Date | null | undefined;
584
585
  discountOptions?: number[] | undefined;
585
586
  maxDiscountCaps?: number[] | undefined;
586
- archivedAt?: Date | null | undefined;
587
587
  } | {
588
588
  documents: ({
589
589
  status: LimitedTimeOfferCampaignStatus;
@@ -595,9 +595,9 @@ export declare const LtoCampaignNullableResponseSchema: z.ZodObject<{
595
595
  updatedAt?: Date | null | undefined;
596
596
  title?: string | undefined;
597
597
  subTitle?: string | undefined;
598
+ archivedAt?: Date | null | undefined;
598
599
  discountOptions?: number[] | undefined;
599
600
  maxDiscountCaps?: number[] | undefined;
600
- archivedAt?: Date | null | undefined;
601
601
  } | null)[];
602
602
  metadata?: {
603
603
  page: number;
@@ -887,25 +887,25 @@ export declare const LtoCampaignParticipantsResponseSchema: z.ZodObject<{
887
887
  shopId: string | import("mongoose").Types.ObjectId;
888
888
  joinedAt: Date;
889
889
  shopName: string | null;
890
- shopPhoto?: string | null | undefined;
891
890
  discountPercentage?: number | undefined;
892
891
  maxDiscountCap?: number | undefined;
892
+ shopPhoto?: string | null | undefined;
893
893
  }, z.ZodTypeDef, {
894
894
  shopId: string | import("mongoose").Types.ObjectId;
895
895
  joinedAt: Date;
896
896
  shopName: string | null;
897
- shopPhoto?: string | null | undefined;
898
897
  discountPercentage?: number | undefined;
899
898
  maxDiscountCap?: number | undefined;
899
+ shopPhoto?: string | null | undefined;
900
900
  }>, "many">;
901
901
  }, "strip", z.ZodTypeAny, {
902
902
  documents: {
903
903
  shopId: string | import("mongoose").Types.ObjectId;
904
904
  joinedAt: Date;
905
905
  shopName: string | null;
906
- shopPhoto?: string | null | undefined;
907
906
  discountPercentage?: number | undefined;
908
907
  maxDiscountCap?: number | undefined;
908
+ shopPhoto?: string | null | undefined;
909
909
  }[];
910
910
  metadata?: {
911
911
  page: number;
@@ -918,9 +918,9 @@ export declare const LtoCampaignParticipantsResponseSchema: z.ZodObject<{
918
918
  shopId: string | import("mongoose").Types.ObjectId;
919
919
  joinedAt: Date;
920
920
  shopName: string | null;
921
- shopPhoto?: string | null | undefined;
922
921
  discountPercentage?: number | undefined;
923
922
  maxDiscountCap?: number | undefined;
923
+ shopPhoto?: string | null | undefined;
924
924
  }[];
925
925
  metadata?: {
926
926
  page: number;
@@ -932,16 +932,16 @@ export declare const LtoCampaignParticipantsResponseSchema: z.ZodObject<{
932
932
  shopId: string | import("mongoose").Types.ObjectId;
933
933
  joinedAt: Date;
934
934
  shopName: string | null;
935
- shopPhoto?: string | null | undefined;
936
935
  discountPercentage?: number | undefined;
937
936
  maxDiscountCap?: number | undefined;
937
+ shopPhoto?: string | null | undefined;
938
938
  }, z.ZodTypeDef, {
939
939
  shopId: string | import("mongoose").Types.ObjectId;
940
940
  joinedAt: Date;
941
941
  shopName: string | null;
942
- shopPhoto?: string | null | undefined;
943
942
  discountPercentage?: number | undefined;
944
943
  maxDiscountCap?: number | undefined;
944
+ shopPhoto?: string | null | undefined;
945
945
  }>]>>;
946
946
  }, "strip", z.ZodTypeAny, {
947
947
  message: string;
@@ -950,17 +950,17 @@ export declare const LtoCampaignParticipantsResponseSchema: z.ZodObject<{
950
950
  shopId: string | import("mongoose").Types.ObjectId;
951
951
  joinedAt: Date;
952
952
  shopName: string | null;
953
- shopPhoto?: string | null | undefined;
954
953
  discountPercentage?: number | undefined;
955
954
  maxDiscountCap?: number | undefined;
955
+ shopPhoto?: string | null | undefined;
956
956
  } | {
957
957
  documents: {
958
958
  shopId: string | import("mongoose").Types.ObjectId;
959
959
  joinedAt: Date;
960
960
  shopName: string | null;
961
- shopPhoto?: string | null | undefined;
962
961
  discountPercentage?: number | undefined;
963
962
  maxDiscountCap?: number | undefined;
963
+ shopPhoto?: string | null | undefined;
964
964
  }[];
965
965
  metadata?: {
966
966
  page: number;
@@ -976,17 +976,17 @@ export declare const LtoCampaignParticipantsResponseSchema: z.ZodObject<{
976
976
  shopId: string | import("mongoose").Types.ObjectId;
977
977
  joinedAt: Date;
978
978
  shopName: string | null;
979
- shopPhoto?: string | null | undefined;
980
979
  discountPercentage?: number | undefined;
981
980
  maxDiscountCap?: number | undefined;
981
+ shopPhoto?: string | null | undefined;
982
982
  } | {
983
983
  documents: {
984
984
  shopId: string | import("mongoose").Types.ObjectId;
985
985
  joinedAt: Date;
986
986
  shopName: string | null;
987
- shopPhoto?: string | null | undefined;
988
987
  discountPercentage?: number | undefined;
989
988
  maxDiscountCap?: number | undefined;
989
+ shopPhoto?: string | null | undefined;
990
990
  }[];
991
991
  metadata?: {
992
992
  page: number;
@@ -14,7 +14,7 @@ export declare const CreateLimitedTimeOfferConfigSchema: z.ZodObject<{
14
14
  discountOptions?: number[] | undefined;
15
15
  maxDiscountCaps?: number[] | undefined;
16
16
  }>;
17
- export declare const UpdateLimitedTimeOfferConfigSchema: z.ZodObject<{
17
+ export declare const UpdateLimitedTimeOfferConfigSchema: z.ZodEffects<z.ZodObject<{
18
18
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, import("mongoose").Types.ObjectId, string>, z.ZodType<import("mongoose").Types.ObjectId, z.ZodTypeDef, import("mongoose").Types.ObjectId>]>;
19
19
  discountOptions: z.ZodArray<z.ZodNumber, "many">;
20
20
  maxDiscountCaps: z.ZodArray<z.ZodNumber, "many">;
@@ -26,6 +26,14 @@ export declare const UpdateLimitedTimeOfferConfigSchema: z.ZodObject<{
26
26
  _id: string | import("mongoose").Types.ObjectId;
27
27
  discountOptions: number[];
28
28
  maxDiscountCaps: number[];
29
+ }>, {
30
+ _id: import("mongoose").Types.ObjectId;
31
+ discountOptions: number[];
32
+ maxDiscountCaps: number[];
33
+ }, {
34
+ _id: string | import("mongoose").Types.ObjectId;
35
+ discountOptions: number[];
36
+ maxDiscountCaps: number[];
29
37
  }>;
30
38
  export declare const LimitedTimeOfferConfigSchema: z.ZodObject<{
31
39
  campaignType: z.ZodNativeEnum<typeof MarketingType>;
@@ -1 +1 @@
1
- {"version":3,"file":"limited-time-offer-config.validation.d.ts","sourceRoot":"/","sources":["modules/limited-time-offer/config/limited-time-offer-config.validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAiB,GAAG,EAAE,MAAM,2DAA2D,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGlE,eAAO,MAAM,kCAAkC;;;;;;;;;;;;EAI7C,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;EAI7C,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;EAIvC,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAqD,CAAC;AAEvG,MAAM,MAAM,+BAA+B,GAAG,GAAG,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC7F,MAAM,MAAM,+BAA+B,GAAG,GAAG,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC7F,MAAM,MAAM,yBAAyB,GAAG,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
1
+ {"version":3,"file":"limited-time-offer-config.validation.d.ts","sourceRoot":"/","sources":["modules/limited-time-offer/config/limited-time-offer-config.validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAiB,GAAG,EAAE,MAAM,2DAA2D,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGlE,eAAO,MAAM,kCAAkC;;;;;;;;;;;;EAI7C,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;EA8B5C,CAAC;AAEJ,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;EAIvC,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAqD,CAAC;AAEvG,MAAM,MAAM,+BAA+B,GAAG,GAAG,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC7F,MAAM,MAAM,+BAA+B,GAAG,GAAG,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC7F,MAAM,MAAM,yBAAyB,GAAG,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -10,10 +10,33 @@ exports.CreateLimitedTimeOfferConfigSchema = zod_1.z.object({
10
10
  discountOptions: zod_1.z.array(global_validation_1.ZodValidation.number('Discount option')).default([]),
11
11
  maxDiscountCaps: zod_1.z.array(global_validation_1.ZodValidation.number('Max discount cap')).default([]),
12
12
  });
13
- exports.UpdateLimitedTimeOfferConfigSchema = zod_1.z.object({
13
+ exports.UpdateLimitedTimeOfferConfigSchema = zod_1.z
14
+ .object({
14
15
  _id: global_validation_1.ZodValidation.objectId(),
15
- discountOptions: zod_1.z.array(global_validation_1.ZodValidation.number('Discount option')).min(1, 'At least one discount option is required'),
16
- maxDiscountCaps: zod_1.z.array(global_validation_1.ZodValidation.number('Max discount cap')).min(1, 'At least one max discount cap is required'),
16
+ discountOptions: zod_1.z
17
+ .array(global_validation_1.ZodValidation.number('Discount option'))
18
+ .min(1, 'At least one discount option is required'),
19
+ maxDiscountCaps: zod_1.z
20
+ .array(global_validation_1.ZodValidation.number('Max discount cap'))
21
+ .min(1, 'At least one max discount cap is required'),
22
+ })
23
+ .superRefine((data, ctx) => {
24
+ const hasDuplicateDiscountOptions = new Set(data.discountOptions).size !== data.discountOptions.length;
25
+ if (hasDuplicateDiscountOptions) {
26
+ ctx.addIssue({
27
+ code: zod_1.z.ZodIssueCode.custom,
28
+ path: ['discountOptions'],
29
+ message: 'Duplicate discount options are not allowed',
30
+ });
31
+ }
32
+ const hasDuplicateMaxDiscountCaps = new Set(data.maxDiscountCaps).size !== data.maxDiscountCaps.length;
33
+ if (hasDuplicateMaxDiscountCaps) {
34
+ ctx.addIssue({
35
+ code: zod_1.z.ZodIssueCode.custom,
36
+ path: ['maxDiscountCaps'],
37
+ message: 'Duplicate max discount caps are not allowed',
38
+ });
39
+ }
17
40
  });
18
41
  exports.LimitedTimeOfferConfigSchema = exports.CreateLimitedTimeOfferConfigSchema.extend({
19
42
  _id: global_validation_1.ZodValidation.objectId(),
@@ -1 +1 @@
1
- {"version":3,"file":"limited-time-offer-config.validation.js","sourceRoot":"/","sources":["modules/limited-time-offer/config/limited-time-offer-config.validation.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,iGAA+F;AAC/F,4DAAkE;AAClE,wEAA+E;AAElE,QAAA,kCAAkC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1D,YAAY,EAAE,iCAAa,CAAC,QAAQ,CAAC,oBAAa,EAAE,eAAe,CAAC;IACpE,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,iCAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7E,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,iCAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9E,CAAC,CAAC;AAEU,QAAA,kCAAkC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1D,GAAG,EAAE,iCAAa,CAAC,QAAQ,EAAE;IAC7B,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,iCAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,0CAA0C,CAAC;IACpH,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,iCAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,2CAA2C,CAAC;CACtH,CAAC,CAAC;AAEU,QAAA,4BAA4B,GAAG,0CAAkC,CAAC,MAAM,CAAC;IACrF,GAAG,EAAE,iCAAa,CAAC,QAAQ,EAAE;IAC7B,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzC,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEU,QAAA,oCAAoC,GAAG,IAAA,iCAAoB,EAAC,oCAA4B,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport { ZodValidation, DTO } from '@lyxa.ai/core/dist/utilities/validation/global-validation';\nimport { MarketingType } from '@lyxa.ai/core/dist/utilities/enum';\nimport { createResponseSchema } from '@lyxa.ai/core/dist/utilities/validation';\n\nexport const CreateLimitedTimeOfferConfigSchema = z.object({\n\tcampaignType: ZodValidation.enumType(MarketingType, 'Campaign type'),\n\tdiscountOptions: z.array(ZodValidation.number('Discount option')).default([]),\n\tmaxDiscountCaps: z.array(ZodValidation.number('Max discount cap')).default([]),\n});\n\nexport const UpdateLimitedTimeOfferConfigSchema = z.object({\n\t_id: ZodValidation.objectId(),\n\tdiscountOptions: z.array(ZodValidation.number('Discount option')).min(1, 'At least one discount option is required'),\n\tmaxDiscountCaps: z.array(ZodValidation.number('Max discount cap')).min(1, 'At least one max discount cap is required'),\n});\n\nexport const LimitedTimeOfferConfigSchema = CreateLimitedTimeOfferConfigSchema.extend({\n\t_id: ZodValidation.objectId(),\n\tcreatedAt: z.date().nullable().optional(),\n\tupdatedAt: z.date().nullable().optional(),\n});\n\nexport const LimitedTimeOfferConfigResponseSchema = createResponseSchema(LimitedTimeOfferConfigSchema);\n\nexport type CreateLimitedTimeOfferConfigDTO = DTO<typeof CreateLimitedTimeOfferConfigSchema>;\nexport type UpdateLimitedTimeOfferConfigDTO = DTO<typeof UpdateLimitedTimeOfferConfigSchema>;\nexport type LimitedTimeOfferConfigDTO = DTO<typeof LimitedTimeOfferConfigSchema>;\n"]}
1
+ {"version":3,"file":"limited-time-offer-config.validation.js","sourceRoot":"/","sources":["modules/limited-time-offer/config/limited-time-offer-config.validation.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,iGAA+F;AAC/F,4DAAkE;AAClE,wEAA+E;AAElE,QAAA,kCAAkC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1D,YAAY,EAAE,iCAAa,CAAC,QAAQ,CAAC,oBAAa,EAAE,eAAe,CAAC;IACpE,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,iCAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7E,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,iCAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9E,CAAC,CAAC;AAEU,QAAA,kCAAkC,GAAG,OAAC;KACjD,MAAM,CAAC;IACP,GAAG,EAAE,iCAAa,CAAC,QAAQ,EAAE;IAC7B,eAAe,EAAE,OAAC;SAChB,KAAK,CAAC,iCAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;SAC9C,GAAG,CAAC,CAAC,EAAE,0CAA0C,CAAC;IACpD,eAAe,EAAE,OAAC;SAChB,KAAK,CAAC,iCAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;SAC/C,GAAG,CAAC,CAAC,EAAE,2CAA2C,CAAC;CACrD,CAAC;KACD,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAC1B,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IAEvG,IAAI,2BAA2B,EAAE,CAAC;QACjC,GAAG,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,CAAC,iBAAiB,CAAC;YACzB,OAAO,EAAE,4CAA4C;SACrD,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IAEvG,IAAI,2BAA2B,EAAE,CAAC;QACjC,GAAG,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,CAAC,iBAAiB,CAAC;YACzB,OAAO,EAAE,6CAA6C;SACtD,CAAC,CAAC;IACJ,CAAC;AACF,CAAC,CAAC,CAAC;AAES,QAAA,4BAA4B,GAAG,0CAAkC,CAAC,MAAM,CAAC;IACrF,GAAG,EAAE,iCAAa,CAAC,QAAQ,EAAE;IAC7B,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzC,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEU,QAAA,oCAAoC,GAAG,IAAA,iCAAoB,EAAC,oCAA4B,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport { ZodValidation, DTO } from '@lyxa.ai/core/dist/utilities/validation/global-validation';\nimport { MarketingType } from '@lyxa.ai/core/dist/utilities/enum';\nimport { createResponseSchema } from '@lyxa.ai/core/dist/utilities/validation';\n\nexport const CreateLimitedTimeOfferConfigSchema = z.object({\n\tcampaignType: ZodValidation.enumType(MarketingType, 'Campaign type'),\n\tdiscountOptions: z.array(ZodValidation.number('Discount option')).default([]),\n\tmaxDiscountCaps: z.array(ZodValidation.number('Max discount cap')).default([]),\n});\n\nexport const UpdateLimitedTimeOfferConfigSchema = z\n\t.object({\n\t\t_id: ZodValidation.objectId(),\n\t\tdiscountOptions: z\n\t\t\t.array(ZodValidation.number('Discount option'))\n\t\t\t.min(1, 'At least one discount option is required'),\n\t\tmaxDiscountCaps: z\n\t\t\t.array(ZodValidation.number('Max discount cap'))\n\t\t\t.min(1, 'At least one max discount cap is required'),\n\t})\n\t.superRefine((data, ctx) => {\n\t\tconst hasDuplicateDiscountOptions = new Set(data.discountOptions).size !== data.discountOptions.length;\n\n\t\tif (hasDuplicateDiscountOptions) {\n\t\t\tctx.addIssue({\n\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\tpath: ['discountOptions'],\n\t\t\t\tmessage: 'Duplicate discount options are not allowed',\n\t\t\t});\n\t\t}\n\n\t\tconst hasDuplicateMaxDiscountCaps = new Set(data.maxDiscountCaps).size !== data.maxDiscountCaps.length;\n\n\t\tif (hasDuplicateMaxDiscountCaps) {\n\t\t\tctx.addIssue({\n\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\tpath: ['maxDiscountCaps'],\n\t\t\t\tmessage: 'Duplicate max discount caps are not allowed',\n\t\t\t});\n\t\t}\n\t});\n\nexport const LimitedTimeOfferConfigSchema = CreateLimitedTimeOfferConfigSchema.extend({\n\t_id: ZodValidation.objectId(),\n\tcreatedAt: z.date().nullable().optional(),\n\tupdatedAt: z.date().nullable().optional(),\n});\n\nexport const LimitedTimeOfferConfigResponseSchema = createResponseSchema(LimitedTimeOfferConfigSchema);\n\nexport type CreateLimitedTimeOfferConfigDTO = DTO<typeof CreateLimitedTimeOfferConfigSchema>;\nexport type UpdateLimitedTimeOfferConfigDTO = DTO<typeof UpdateLimitedTimeOfferConfigSchema>;\nexport type LimitedTimeOfferConfigDTO = DTO<typeof LimitedTimeOfferConfigSchema>;\n"]}
@@ -212,9 +212,9 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
212
212
  updatedAt?: Date | null | undefined;
213
213
  title?: string | undefined;
214
214
  subTitle?: string | undefined;
215
+ archivedAt?: Date | null | undefined;
215
216
  discountOptions?: number[] | undefined;
216
217
  maxDiscountCaps?: number[] | undefined;
217
- archivedAt?: Date | null | undefined;
218
218
  } | {
219
219
  documents: {
220
220
  status: import("@lyxa.ai/core/dist/utilities/enum").LimitedTimeOfferCampaignStatus;
@@ -226,9 +226,9 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
226
226
  updatedAt?: Date | null | undefined;
227
227
  title?: string | undefined;
228
228
  subTitle?: string | undefined;
229
+ archivedAt?: Date | null | undefined;
229
230
  discountOptions?: number[] | undefined;
230
231
  maxDiscountCaps?: number[] | undefined;
231
- archivedAt?: Date | null | undefined;
232
232
  }[];
233
233
  metadata?: {
234
234
  page: number;
@@ -255,9 +255,9 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
255
255
  updatedAt?: Date | null | undefined;
256
256
  title?: string | undefined;
257
257
  subTitle?: string | undefined;
258
+ archivedAt?: Date | null | undefined;
258
259
  discountOptions?: number[] | undefined;
259
260
  maxDiscountCaps?: number[] | undefined;
260
- archivedAt?: Date | null | undefined;
261
261
  } | {
262
262
  documents: ({
263
263
  status: import("@lyxa.ai/core/dist/utilities/enum").LimitedTimeOfferCampaignStatus;
@@ -269,9 +269,9 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
269
269
  updatedAt?: Date | null | undefined;
270
270
  title?: string | undefined;
271
271
  subTitle?: string | undefined;
272
+ archivedAt?: Date | null | undefined;
272
273
  discountOptions?: number[] | undefined;
273
274
  maxDiscountCaps?: number[] | undefined;
274
- archivedAt?: Date | null | undefined;
275
275
  } | null)[];
276
276
  metadata?: {
277
277
  page: number;
@@ -300,9 +300,9 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
300
300
  updatedAt?: Date | null | undefined;
301
301
  title?: string | undefined;
302
302
  subTitle?: string | undefined;
303
+ archivedAt?: Date | null | undefined;
303
304
  discountOptions?: number[] | undefined;
304
305
  maxDiscountCaps?: number[] | undefined;
305
- archivedAt?: Date | null | undefined;
306
306
  } | {
307
307
  documents: {
308
308
  status: import("@lyxa.ai/core/dist/utilities/enum").LimitedTimeOfferCampaignStatus;
@@ -314,9 +314,9 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
314
314
  updatedAt?: Date | null | undefined;
315
315
  title?: string | undefined;
316
316
  subTitle?: string | undefined;
317
+ archivedAt?: Date | null | undefined;
317
318
  discountOptions?: number[] | undefined;
318
319
  maxDiscountCaps?: number[] | undefined;
319
- archivedAt?: Date | null | undefined;
320
320
  }[];
321
321
  metadata?: {
322
322
  page: number;
@@ -389,9 +389,9 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
389
389
  updatedAt?: Date | null | undefined;
390
390
  title?: string | undefined;
391
391
  subTitle?: string | undefined;
392
+ archivedAt?: Date | null | undefined;
392
393
  discountOptions?: number[] | undefined;
393
394
  maxDiscountCaps?: number[] | undefined;
394
- archivedAt?: Date | null | undefined;
395
395
  } | {
396
396
  documents: {
397
397
  status: import("@lyxa.ai/core/dist/utilities/enum").LimitedTimeOfferCampaignStatus;
@@ -403,9 +403,9 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
403
403
  updatedAt?: Date | null | undefined;
404
404
  title?: string | undefined;
405
405
  subTitle?: string | undefined;
406
+ archivedAt?: Date | null | undefined;
406
407
  discountOptions?: number[] | undefined;
407
408
  maxDiscountCaps?: number[] | undefined;
408
- archivedAt?: Date | null | undefined;
409
409
  }[];
410
410
  metadata?: {
411
411
  page: number;
@@ -601,6 +601,15 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
601
601
  success: boolean;
602
602
  data?: {
603
603
  campaignState: import("./participant/limited-time-offer-participant.validation").LtoCardState;
604
+ campaign?: {
605
+ _id: string | import("mongoose").Types.ObjectId;
606
+ startDate?: Date | null | undefined;
607
+ endDate?: Date | null | undefined;
608
+ title?: string | undefined;
609
+ subTitle?: string | undefined;
610
+ discountOptions?: number[] | undefined;
611
+ maxDiscountCaps?: number[] | undefined;
612
+ } | undefined;
604
613
  participant?: {
605
614
  isEntireMenu: boolean;
606
615
  joinedAt: Date;
@@ -611,18 +620,18 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
611
620
  maxDiscountCap?: number | undefined;
612
621
  maxOrderCapacity?: number | undefined;
613
622
  } | undefined;
614
- campaign?: {
615
- _id: string | import("mongoose").Types.ObjectId;
616
- startDate?: Date | null | undefined;
617
- endDate?: Date | null | undefined;
618
- title?: string | undefined;
619
- subTitle?: string | undefined;
620
- discountOptions?: number[] | undefined;
621
- maxDiscountCaps?: number[] | undefined;
622
- } | undefined;
623
623
  } | {
624
624
  documents: {
625
625
  campaignState: import("./participant/limited-time-offer-participant.validation").LtoCardState;
626
+ campaign?: {
627
+ _id: string | import("mongoose").Types.ObjectId;
628
+ startDate?: Date | null | undefined;
629
+ endDate?: Date | null | undefined;
630
+ title?: string | undefined;
631
+ subTitle?: string | undefined;
632
+ discountOptions?: number[] | undefined;
633
+ maxDiscountCaps?: number[] | undefined;
634
+ } | undefined;
626
635
  participant?: {
627
636
  isEntireMenu: boolean;
628
637
  joinedAt: Date;
@@ -633,15 +642,6 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
633
642
  maxDiscountCap?: number | undefined;
634
643
  maxOrderCapacity?: number | undefined;
635
644
  } | undefined;
636
- campaign?: {
637
- _id: string | import("mongoose").Types.ObjectId;
638
- startDate?: Date | null | undefined;
639
- endDate?: Date | null | undefined;
640
- title?: string | undefined;
641
- subTitle?: string | undefined;
642
- discountOptions?: number[] | undefined;
643
- maxDiscountCaps?: number[] | undefined;
644
- } | undefined;
645
645
  }[];
646
646
  metadata?: {
647
647
  page: number;
@@ -667,17 +667,17 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
667
667
  shopId: string | import("mongoose").Types.ObjectId;
668
668
  joinedAt: Date;
669
669
  shopName: string | null;
670
- shopPhoto?: string | null | undefined;
671
670
  discountPercentage?: number | undefined;
672
671
  maxDiscountCap?: number | undefined;
672
+ shopPhoto?: string | null | undefined;
673
673
  } | {
674
674
  documents: {
675
675
  shopId: string | import("mongoose").Types.ObjectId;
676
676
  joinedAt: Date;
677
677
  shopName: string | null;
678
- shopPhoto?: string | null | undefined;
679
678
  discountPercentage?: number | undefined;
680
679
  maxDiscountCap?: number | undefined;
680
+ shopPhoto?: string | null | undefined;
681
681
  }[];
682
682
  metadata?: {
683
683
  page: number;
@@ -3,6 +3,7 @@ import { GetActiveCampaignDTO } from '../limited-time-offer/campaign/limited-tim
3
3
  export declare class LimitedTimeOfferService {
4
4
  private campaignService;
5
5
  private participantService;
6
+ private notificationService;
6
7
  constructor();
7
8
  getActiveCampaign(input: GetActiveCampaignDTO): Promise<{
8
9
  _id: mongoose.Types.ObjectId;
@@ -1 +1 @@
1
- {"version":3,"file":"limited-time-offer.service.d.ts","sourceRoot":"/","sources":["modules/limited-time-offer/limited-time-offer.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAK9C,OAAO,EAAC,oBAAoB,EAAC,MAAM,6EAA6E,CAAC;AAWjH,qBACa,uBAAuB;IAChC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,kBAAkB,CAAqC;;IAOlD,iBAAiB,CAAC,KAAK,EAAE,oBAAoB;;;;;;;IAQ7C,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAIlF;AAED,eAAO,MAAM,uBAAuB,yBAAyC,CAAC"}
1
+ {"version":3,"file":"limited-time-offer.service.d.ts","sourceRoot":"/","sources":["modules/limited-time-offer/limited-time-offer.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAK9C,OAAO,EAAC,oBAAoB,EAAC,MAAM,6EAA6E,CAAC;AAejH,qBACa,uBAAuB;IAChC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,mBAAmB,CAAsC;;IAQpD,iBAAiB,CAAC,KAAK,EAAE,oBAAoB;;;;;;;IAQ7C,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlE,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAIlF;AAED,eAAO,MAAM,uBAAuB,yBAAyC,CAAC"}
@@ -46,12 +46,16 @@ exports.limitedTimeOfferService = exports.LimitedTimeOfferService = void 0;
46
46
  const typedi_1 = __importStar(require("typedi"));
47
47
  const limited_time_offer_campaign_service_1 = require("../limited-time-offer/campaign/services/limited-time-offer-campaign.service");
48
48
  const limited_time_offer_participant_service_1 = require("../limited-time-offer/participant/services/limited-time-offer-participant.service");
49
+ const limited_time_offer_notification_service_1 = require("../limited-time-offer/notification/limited-time-offer-notification.service");
50
+ const limited_time_offer_notification_constants_1 = require("../limited-time-offer/notification/limited-time-offer-notification.constants");
49
51
  let LimitedTimeOfferService = class LimitedTimeOfferService {
50
52
  campaignService;
51
53
  participantService;
54
+ notificationService;
52
55
  constructor() {
53
56
  this.campaignService = limited_time_offer_campaign_service_1.ltoCampaignService;
54
57
  this.participantService = limited_time_offer_participant_service_1.ltoParticipantService;
58
+ this.notificationService = typedi_1.default.get(limited_time_offer_notification_service_1.LimitedTimeOfferNotificationService);
55
59
  }
56
60
  async getActiveCampaign(input) {
57
61
  const campaign = await this.campaignService.getActive();
@@ -62,7 +66,9 @@ let LimitedTimeOfferService = class LimitedTimeOfferService {
62
66
  }
63
67
  async cancelCampaign(campaignId) {
64
68
  await this.campaignService.cancel(campaignId);
69
+ const participantIds = await this.participantService.getParticipantIdsByCampaignId(campaignId);
65
70
  await this.participantService.removeCampaignMarketings(campaignId);
71
+ await this.notificationService.send(limited_time_offer_notification_constants_1.NotificationType.Cancel, participantIds, { campaignId });
66
72
  }
67
73
  async expireCampaign(campaignId) {
68
74
  await this.campaignService.expire(campaignId);