@lyxa.ai/marketing 1.0.52 → 1.0.53

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 (475) hide show
  1. package/dist/lib/index.d.ts +307 -61
  2. package/dist/lib/index.d.ts.map +1 -1
  3. package/dist/lib/index.js +1 -1
  4. package/dist/lib/index.js.map +1 -1
  5. package/dist/lib/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  6. package/dist/lib/modules/coupon/routers/coupon.router.js +1 -1
  7. package/dist/lib/modules/coupon/routers/coupon.router.js.map +1 -1
  8. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts.map +1 -1
  9. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.js +16 -3
  10. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.js.map +1 -1
  11. package/dist/lib/modules/coupon/validations/all-coupons.validation.d.ts +1117 -285
  12. package/dist/lib/modules/coupon/validations/all-coupons.validation.d.ts.map +1 -1
  13. package/dist/lib/modules/coupon/validations/all-coupons.validation.js +16 -2
  14. package/dist/lib/modules/coupon/validations/all-coupons.validation.js.map +1 -1
  15. package/dist/lib/modules/coupon/validations/index.d.ts +0 -1
  16. package/dist/lib/modules/coupon/validations/index.d.ts.map +1 -1
  17. package/dist/lib/modules/coupon/validations/index.js +0 -1
  18. package/dist/lib/modules/coupon/validations/index.js.map +1 -1
  19. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.d.ts +32 -32
  20. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.js +9 -9
  21. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.js.map +1 -1
  22. package/dist/lib/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.d.ts +0 -1
  23. package/dist/lib/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.d.ts.map +1 -1
  24. package/dist/lib/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.js +2 -5
  25. package/dist/lib/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.js.map +1 -1
  26. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts +1 -0
  27. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts.map +1 -1
  28. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.js +2 -0
  29. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.js.map +1 -1
  30. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts +19 -6
  31. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts.map +1 -1
  32. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.js +3 -2
  33. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.js.map +1 -1
  34. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts +3 -9
  35. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts.map +1 -1
  36. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.js +4 -7
  37. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.js.map +1 -1
  38. package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.service.d.ts +1 -0
  39. package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.service.d.ts.map +1 -1
  40. package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.service.js +15 -0
  41. package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.service.js.map +1 -1
  42. package/dist/lib/modules/limited-time-offer/limited-time-offer.router.d.ts +96 -50
  43. package/dist/lib/modules/limited-time-offer/limited-time-offer.router.d.ts.map +1 -1
  44. package/dist/lib/modules/limited-time-offer/limited-time-offer.router.js +23 -0
  45. package/dist/lib/modules/limited-time-offer/limited-time-offer.router.js.map +1 -1
  46. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.d.ts +18 -0
  47. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.d.ts.map +1 -0
  48. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.js +78 -0
  49. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.js.map +1 -0
  50. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts +12 -0
  51. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts.map +1 -1
  52. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.js +68 -0
  53. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.js.map +1 -1
  54. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts +22 -18
  55. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts.map +1 -1
  56. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.service.d.ts +1 -0
  57. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.service.d.ts.map +1 -0
  58. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.service.js +2 -0
  59. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.service.js.map +1 -0
  60. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts +88 -83
  61. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts.map +1 -1
  62. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.js +3 -2
  63. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.js.map +1 -1
  64. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts +10 -1
  65. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts.map +1 -1
  66. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.js +68 -22
  67. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.js.map +1 -1
  68. package/dist/lib/modules/marketing/validations/product-marketing.validation.d.ts +2 -2
  69. package/dist/lib/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +1 -1
  70. package/dist/lib/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +2 -2
  71. package/dist/lib/modules/tournament/config/config.builder.d.ts.map +1 -1
  72. package/dist/lib/modules/tournament/config/config.builder.js +4 -0
  73. package/dist/lib/modules/tournament/config/config.builder.js.map +1 -1
  74. package/dist/lib/modules/tournament/config/config.repository.d.ts +8 -2
  75. package/dist/lib/modules/tournament/config/config.repository.d.ts.map +1 -1
  76. package/dist/lib/modules/tournament/config/config.repository.js +30 -1
  77. package/dist/lib/modules/tournament/config/config.repository.js.map +1 -1
  78. package/dist/lib/modules/tournament/config/config.router.d.ts +92 -2
  79. package/dist/lib/modules/tournament/config/config.router.d.ts.map +1 -1
  80. package/dist/lib/modules/tournament/config/config.types.d.ts +15 -0
  81. package/dist/lib/modules/tournament/config/config.types.d.ts.map +1 -0
  82. package/dist/lib/modules/tournament/config/config.types.js +3 -0
  83. package/dist/lib/modules/tournament/config/config.types.js.map +1 -0
  84. package/dist/lib/modules/tournament/config/config.validation.d.ts +395 -15
  85. package/dist/lib/modules/tournament/config/config.validation.d.ts.map +1 -1
  86. package/dist/lib/modules/tournament/config/config.validation.js +17 -2
  87. package/dist/lib/modules/tournament/config/config.validation.js.map +1 -1
  88. package/dist/lib/modules/tournament/integration/integration.factory.d.ts +4 -0
  89. package/dist/lib/modules/tournament/integration/integration.factory.d.ts.map +1 -0
  90. package/dist/lib/modules/tournament/integration/integration.factory.js +18 -0
  91. package/dist/lib/modules/tournament/integration/integration.factory.js.map +1 -0
  92. package/dist/lib/modules/tournament/integration/interfaces/ITournamentService.d.ts +36 -0
  93. package/dist/lib/modules/tournament/integration/interfaces/ITournamentService.d.ts.map +1 -0
  94. package/dist/lib/modules/tournament/integration/interfaces/ITournamentService.js +3 -0
  95. package/dist/lib/modules/tournament/integration/interfaces/ITournamentService.js.map +1 -0
  96. package/dist/lib/modules/tournament/integration/providers/api-football/api-football.provider.d.ts +14 -0
  97. package/dist/lib/modules/tournament/integration/providers/api-football/api-football.provider.d.ts.map +1 -0
  98. package/dist/lib/modules/tournament/integration/providers/api-football/api-football.provider.js +92 -0
  99. package/dist/lib/modules/tournament/integration/providers/api-football/api-football.provider.js.map +1 -0
  100. package/dist/lib/modules/tournament/integration/providers/api-football/api-football.types.d.ts +51 -0
  101. package/dist/lib/modules/tournament/integration/providers/api-football/api-football.types.d.ts.map +1 -0
  102. package/dist/lib/modules/tournament/integration/providers/api-football/api-football.types.js +3 -0
  103. package/dist/lib/modules/tournament/integration/providers/api-football/api-football.types.js.map +1 -0
  104. package/dist/lib/modules/tournament/integration/providers/api-football/index.d.ts +3 -0
  105. package/dist/lib/modules/tournament/integration/providers/api-football/index.d.ts.map +1 -0
  106. package/dist/lib/modules/tournament/integration/providers/api-football/index.js +19 -0
  107. package/dist/lib/modules/tournament/integration/providers/api-football/index.js.map +1 -0
  108. package/dist/lib/modules/tournament/integration/providers/index.d.ts +3 -0
  109. package/dist/lib/modules/tournament/integration/providers/index.d.ts.map +1 -0
  110. package/dist/lib/modules/tournament/integration/providers/index.js +19 -0
  111. package/dist/lib/modules/tournament/integration/providers/index.js.map +1 -0
  112. package/dist/lib/modules/tournament/integration/providers/mock.provider.d.ts +7 -0
  113. package/dist/lib/modules/tournament/integration/providers/mock.provider.d.ts.map +1 -0
  114. package/dist/lib/modules/tournament/integration/providers/mock.provider.js +22 -0
  115. package/dist/lib/modules/tournament/integration/providers/mock.provider.js.map +1 -0
  116. package/dist/lib/modules/tournament/integration/tournamentService.d.ts +9 -0
  117. package/dist/lib/modules/tournament/integration/tournamentService.d.ts.map +1 -0
  118. package/dist/lib/modules/tournament/integration/tournamentService.js +20 -0
  119. package/dist/lib/modules/tournament/integration/tournamentService.js.map +1 -0
  120. package/dist/lib/modules/tournament/match/events/evaluate-predictions.consumer.d.ts.map +1 -1
  121. package/dist/lib/modules/tournament/match/events/evaluate-predictions.consumer.js +47 -11
  122. package/dist/lib/modules/tournament/match/events/evaluate-predictions.consumer.js.map +1 -1
  123. package/dist/lib/modules/tournament/match/events/evaluate-predictions.event.d.ts +7 -3
  124. package/dist/lib/modules/tournament/match/events/evaluate-predictions.event.d.ts.map +1 -1
  125. package/dist/lib/modules/tournament/match/events/evaluate-predictions.event.js +1 -1
  126. package/dist/lib/modules/tournament/match/events/evaluate-predictions.event.js.map +1 -1
  127. package/dist/lib/modules/tournament/match/events/match-evaluation.orchestrator.d.ts +14 -0
  128. package/dist/lib/modules/tournament/match/events/match-evaluation.orchestrator.d.ts.map +1 -0
  129. package/dist/lib/modules/tournament/{notification/jobs/notification.worker.js → match/events/match-evaluation.orchestrator.js} +31 -27
  130. package/dist/lib/modules/tournament/match/events/match-evaluation.orchestrator.js.map +1 -0
  131. package/dist/lib/modules/tournament/match/match.builder.d.ts +13 -34
  132. package/dist/lib/modules/tournament/match/match.builder.d.ts.map +1 -1
  133. package/dist/lib/modules/tournament/match/match.builder.js +31 -10
  134. package/dist/lib/modules/tournament/match/match.builder.js.map +1 -1
  135. package/dist/lib/modules/tournament/match/match.repository.d.ts +1 -1
  136. package/dist/lib/modules/tournament/match/match.repository.d.ts.map +1 -1
  137. package/dist/lib/modules/tournament/match/match.repository.js.map +1 -1
  138. package/dist/lib/modules/tournament/match/match.router.d.ts +36 -0
  139. package/dist/lib/modules/tournament/match/match.router.d.ts.map +1 -1
  140. package/dist/lib/modules/tournament/match/match.service.d.ts +3 -0
  141. package/dist/lib/modules/tournament/match/match.service.d.ts.map +1 -1
  142. package/dist/lib/modules/tournament/match/match.service.js +15 -12
  143. package/dist/lib/modules/tournament/match/match.service.js.map +1 -1
  144. package/dist/lib/modules/tournament/match/match.types.d.ts +51 -0
  145. package/dist/lib/modules/tournament/match/match.types.d.ts.map +1 -0
  146. package/dist/lib/modules/tournament/match/match.types.js +3 -0
  147. package/dist/lib/modules/tournament/match/match.types.js.map +1 -0
  148. package/dist/lib/modules/tournament/notification/notification-template.repository.d.ts +2 -1
  149. package/dist/lib/modules/tournament/notification/notification-template.repository.d.ts.map +1 -1
  150. package/dist/lib/modules/tournament/notification/notification-template.repository.js +2 -1
  151. package/dist/lib/modules/tournament/notification/notification-template.repository.js.map +1 -1
  152. package/dist/lib/modules/tournament/notification/notification.builder.d.ts +30 -0
  153. package/dist/lib/modules/tournament/notification/notification.builder.d.ts.map +1 -0
  154. package/dist/lib/modules/tournament/notification/notification.builder.js +35 -0
  155. package/dist/lib/modules/tournament/notification/notification.builder.js.map +1 -0
  156. package/dist/lib/modules/tournament/notification/notification.config.d.ts +10 -9
  157. package/dist/lib/modules/tournament/notification/notification.config.d.ts.map +1 -1
  158. package/dist/lib/modules/tournament/notification/notification.config.js +0 -12
  159. package/dist/lib/modules/tournament/notification/notification.config.js.map +1 -1
  160. package/dist/lib/modules/tournament/notification/notification.service.d.ts +5 -3
  161. package/dist/lib/modules/tournament/notification/notification.service.d.ts.map +1 -1
  162. package/dist/lib/modules/tournament/notification/notification.service.js +23 -15
  163. package/dist/lib/modules/tournament/notification/notification.service.js.map +1 -1
  164. package/dist/lib/modules/tournament/participant/participant.builder.d.ts +12 -0
  165. package/dist/lib/modules/tournament/participant/participant.builder.d.ts.map +1 -0
  166. package/dist/lib/modules/tournament/participant/participant.builder.js +17 -0
  167. package/dist/lib/modules/tournament/participant/participant.builder.js.map +1 -0
  168. package/dist/lib/modules/tournament/participant/participant.repository.d.ts +8 -7
  169. package/dist/lib/modules/tournament/participant/participant.repository.d.ts.map +1 -1
  170. package/dist/lib/modules/tournament/participant/participant.repository.js +12 -2
  171. package/dist/lib/modules/tournament/participant/participant.repository.js.map +1 -1
  172. package/dist/lib/modules/tournament/participant/participant.service.d.ts +1 -0
  173. package/dist/lib/modules/tournament/participant/participant.service.d.ts.map +1 -1
  174. package/dist/lib/modules/tournament/participant/participant.service.js +15 -17
  175. package/dist/lib/modules/tournament/participant/participant.service.js.map +1 -1
  176. package/dist/lib/modules/tournament/prediction/prediction.builder.d.ts +3 -9
  177. package/dist/lib/modules/tournament/prediction/prediction.builder.d.ts.map +1 -1
  178. package/dist/lib/modules/tournament/prediction/prediction.builder.js.map +1 -1
  179. package/dist/lib/modules/tournament/prediction/prediction.repository.d.ts +11 -3
  180. package/dist/lib/modules/tournament/prediction/prediction.repository.d.ts.map +1 -1
  181. package/dist/lib/modules/tournament/prediction/prediction.repository.js +47 -0
  182. package/dist/lib/modules/tournament/prediction/prediction.repository.js.map +1 -1
  183. package/dist/lib/modules/tournament/prediction/prediction.service.d.ts +1 -1
  184. package/dist/lib/modules/tournament/prediction/prediction.service.d.ts.map +1 -1
  185. package/dist/lib/modules/tournament/prediction/prediction.service.js +16 -26
  186. package/dist/lib/modules/tournament/prediction/prediction.service.js.map +1 -1
  187. package/dist/lib/modules/tournament/prediction/prediction.types.d.ts +17 -0
  188. package/dist/lib/modules/tournament/prediction/prediction.types.d.ts.map +1 -0
  189. package/dist/lib/modules/tournament/prediction/prediction.types.js +3 -0
  190. package/dist/lib/modules/tournament/prediction/prediction.types.js.map +1 -0
  191. package/dist/lib/modules/tournament/reward/handlers/coupon-reward.handler.d.ts +8 -5
  192. package/dist/lib/modules/tournament/reward/handlers/coupon-reward.handler.d.ts.map +1 -1
  193. package/dist/lib/modules/tournament/reward/handlers/coupon-reward.handler.js +58 -16
  194. package/dist/lib/modules/tournament/reward/handlers/coupon-reward.handler.js.map +1 -1
  195. package/dist/lib/modules/tournament/reward/reward.builder.d.ts +5 -2
  196. package/dist/lib/modules/tournament/reward/reward.builder.d.ts.map +1 -1
  197. package/dist/lib/modules/tournament/reward/reward.builder.js +44 -28
  198. package/dist/lib/modules/tournament/reward/reward.builder.js.map +1 -1
  199. package/dist/lib/modules/tournament/reward/reward.factory.d.ts +1 -1
  200. package/dist/lib/modules/tournament/reward/reward.factory.d.ts.map +1 -1
  201. package/dist/lib/modules/tournament/reward/reward.factory.js.map +1 -1
  202. package/dist/lib/modules/tournament/reward/reward.interface.d.ts +2 -2
  203. package/dist/lib/modules/tournament/reward/reward.interface.d.ts.map +1 -1
  204. package/dist/lib/modules/tournament/reward/reward.interface.js.map +1 -1
  205. package/dist/lib/modules/tournament/reward/reward.service.d.ts +1 -1
  206. package/dist/lib/modules/tournament/reward/reward.service.d.ts.map +1 -1
  207. package/dist/lib/modules/tournament/reward/reward.service.js +1 -1
  208. package/dist/lib/modules/tournament/reward/reward.service.js.map +1 -1
  209. package/dist/lib/modules/tournament/reward/reward.types.d.ts +35 -2
  210. package/dist/lib/modules/tournament/reward/reward.types.d.ts.map +1 -1
  211. package/dist/lib/modules/tournament/reward/reward.types.js.map +1 -1
  212. package/dist/lib/modules/tournament/schedule/schedule.router.d.ts.map +1 -1
  213. package/dist/lib/modules/tournament/schedule/schedule.router.js +1 -3
  214. package/dist/lib/modules/tournament/schedule/schedule.router.js.map +1 -1
  215. package/dist/lib/modules/tournament/schedule/schedule.service.d.ts +3 -0
  216. package/dist/lib/modules/tournament/schedule/schedule.service.d.ts.map +1 -1
  217. package/dist/lib/modules/tournament/schedule/schedule.service.js +30 -1
  218. package/dist/lib/modules/tournament/schedule/schedule.service.js.map +1 -1
  219. package/dist/lib/modules/tournament/score/score.repository.d.ts +13 -0
  220. package/dist/lib/modules/tournament/score/score.repository.d.ts.map +1 -1
  221. package/dist/lib/modules/tournament/score/score.repository.js +20 -0
  222. package/dist/lib/modules/tournament/score/score.repository.js.map +1 -1
  223. package/dist/lib/modules/tournament/score/score.service.d.ts +3 -0
  224. package/dist/lib/modules/tournament/score/score.service.d.ts.map +1 -1
  225. package/dist/lib/modules/tournament/score/score.service.js +3 -0
  226. package/dist/lib/modules/tournament/score/score.service.js.map +1 -1
  227. package/dist/lib/modules/tournament/statistics/statistics.builder.d.ts +5 -0
  228. package/dist/lib/modules/tournament/statistics/statistics.builder.d.ts.map +1 -1
  229. package/dist/lib/modules/tournament/statistics/statistics.builder.js +47 -28
  230. package/dist/lib/modules/tournament/statistics/statistics.builder.js.map +1 -1
  231. package/dist/lib/modules/tournament/statistics/statistics.router.d.ts +4 -2
  232. package/dist/lib/modules/tournament/statistics/statistics.router.d.ts.map +1 -1
  233. package/dist/lib/modules/tournament/statistics/statistics.service.js +4 -4
  234. package/dist/lib/modules/tournament/statistics/statistics.service.js.map +1 -1
  235. package/dist/lib/modules/tournament/statistics/statistics.validation.d.ts +32 -14
  236. package/dist/lib/modules/tournament/statistics/statistics.validation.d.ts.map +1 -1
  237. package/dist/lib/modules/tournament/statistics/statistics.validation.js +2 -1
  238. package/dist/lib/modules/tournament/statistics/statistics.validation.js.map +1 -1
  239. package/dist/lib/modules/tournament/sync/sync.repository.d.ts +11 -0
  240. package/dist/lib/modules/tournament/sync/sync.repository.d.ts.map +1 -0
  241. package/dist/lib/modules/tournament/{notification/notification.scheduler.service.js → sync/sync.repository.js} +22 -28
  242. package/dist/lib/modules/tournament/sync/sync.repository.js.map +1 -0
  243. package/dist/lib/modules/tournament/sync/sync.router.d.ts +27 -0
  244. package/dist/lib/modules/tournament/sync/sync.router.d.ts.map +1 -0
  245. package/dist/lib/modules/tournament/sync/sync.router.js +15 -0
  246. package/dist/lib/modules/tournament/sync/sync.router.js.map +1 -0
  247. package/dist/lib/modules/tournament/sync/sync.service.d.ts +9 -0
  248. package/dist/lib/modules/tournament/sync/sync.service.d.ts.map +1 -0
  249. package/dist/lib/modules/tournament/sync/sync.service.js +117 -0
  250. package/dist/lib/modules/tournament/sync/sync.service.js.map +1 -0
  251. package/dist/lib/modules/tournament/team/team.builder.d.ts +4 -0
  252. package/dist/lib/modules/tournament/team/team.builder.d.ts.map +1 -1
  253. package/dist/lib/modules/tournament/team/team.builder.js +6 -0
  254. package/dist/lib/modules/tournament/team/team.builder.js.map +1 -1
  255. package/dist/lib/modules/tournament/team/team.repository.d.ts +3 -0
  256. package/dist/lib/modules/tournament/team/team.repository.d.ts.map +1 -1
  257. package/dist/lib/modules/tournament/team/team.repository.js +6 -0
  258. package/dist/lib/modules/tournament/team/team.repository.js.map +1 -1
  259. package/dist/lib/modules/tournament/team/team.router.d.ts +22 -4
  260. package/dist/lib/modules/tournament/team/team.router.d.ts.map +1 -1
  261. package/dist/lib/modules/tournament/team/team.router.js +1 -1
  262. package/dist/lib/modules/tournament/team/team.router.js.map +1 -1
  263. package/dist/lib/modules/tournament/team/team.service.d.ts +2 -1
  264. package/dist/lib/modules/tournament/team/team.service.d.ts.map +1 -1
  265. package/dist/lib/modules/tournament/team/team.service.js +26 -23
  266. package/dist/lib/modules/tournament/team/team.service.js.map +1 -1
  267. package/dist/lib/modules/tournament/team/team.validation.d.ts +23 -24
  268. package/dist/lib/modules/tournament/team/team.validation.d.ts.map +1 -1
  269. package/dist/lib/modules/tournament/team/team.validation.js +3 -4
  270. package/dist/lib/modules/tournament/team/team.validation.js.map +1 -1
  271. package/dist/lib/modules/tournament/tournament.builder.d.ts +11 -0
  272. package/dist/lib/modules/tournament/tournament.builder.d.ts.map +1 -0
  273. package/dist/lib/modules/tournament/tournament.builder.js +34 -0
  274. package/dist/lib/modules/tournament/tournament.builder.js.map +1 -0
  275. package/dist/lib/modules/tournament/tournament.router.d.ts +210 -10
  276. package/dist/lib/modules/tournament/tournament.router.d.ts.map +1 -1
  277. package/dist/lib/modules/tournament/tournament.router.js +2 -0
  278. package/dist/lib/modules/tournament/tournament.router.js.map +1 -1
  279. package/dist/lib/modules/tournament/tournament.service.d.ts.map +1 -1
  280. package/dist/lib/modules/tournament/tournament.service.js +3 -10
  281. package/dist/lib/modules/tournament/tournament.service.js.map +1 -1
  282. package/dist/lib/modules/tournament/tournament.utils.d.ts +4 -0
  283. package/dist/lib/modules/tournament/tournament.utils.d.ts.map +1 -1
  284. package/dist/lib/modules/tournament/tournament.utils.js +8 -1
  285. package/dist/lib/modules/tournament/tournament.utils.js.map +1 -1
  286. package/dist/lib/modules/tournament/tournament.validation.d.ts +205 -1
  287. package/dist/lib/modules/tournament/tournament.validation.d.ts.map +1 -1
  288. package/dist/lib/modules/tournament/tournament.validation.js +23 -2
  289. package/dist/lib/modules/tournament/tournament.validation.js.map +1 -1
  290. package/dist/types/index.d.ts +307 -61
  291. package/dist/types/index.d.ts.map +1 -1
  292. package/dist/types/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  293. package/dist/types/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts.map +1 -1
  294. package/dist/types/modules/coupon/validations/all-coupons.validation.d.ts +1117 -285
  295. package/dist/types/modules/coupon/validations/all-coupons.validation.d.ts.map +1 -1
  296. package/dist/types/modules/coupon/validations/index.d.ts +0 -1
  297. package/dist/types/modules/coupon/validations/index.d.ts.map +1 -1
  298. package/dist/types/modules/limited-time-offer/campaign/campaign.router.d.ts +34 -32
  299. package/dist/types/modules/limited-time-offer/campaign/campaign.router.d.ts.map +1 -1
  300. package/dist/types/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.d.ts +0 -1
  301. package/dist/types/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.d.ts.map +1 -1
  302. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts +1 -0
  303. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts.map +1 -1
  304. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts +19 -6
  305. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts.map +1 -1
  306. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts +3 -9
  307. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts.map +1 -1
  308. package/dist/types/modules/limited-time-offer/config/limited-time-offer-config.service.d.ts +1 -0
  309. package/dist/types/modules/limited-time-offer/config/limited-time-offer-config.service.d.ts.map +1 -1
  310. package/dist/types/modules/limited-time-offer/limited-time-offer.router.d.ts +96 -50
  311. package/dist/types/modules/limited-time-offer/limited-time-offer.router.d.ts.map +1 -1
  312. package/dist/types/modules/limited-time-offer/limited-time-offer.service.d.ts +23 -0
  313. package/dist/types/modules/limited-time-offer/limited-time-offer.service.d.ts.map +1 -0
  314. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts +12 -0
  315. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts.map +1 -1
  316. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts +22 -18
  317. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts.map +1 -1
  318. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts +88 -83
  319. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts.map +1 -1
  320. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts +20 -1
  321. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts.map +1 -1
  322. package/dist/types/modules/marketing/validations/product-marketing.validation.d.ts +2 -2
  323. package/dist/types/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +1 -1
  324. package/dist/types/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +2 -2
  325. package/dist/types/modules/tournament/config/config.builder.d.ts.map +1 -1
  326. package/dist/types/modules/tournament/config/config.repository.d.ts +8 -2
  327. package/dist/types/modules/tournament/config/config.repository.d.ts.map +1 -1
  328. package/dist/types/modules/tournament/config/config.router.d.ts +92 -2
  329. package/dist/types/modules/tournament/config/config.router.d.ts.map +1 -1
  330. package/dist/types/modules/tournament/config/config.types.d.ts +15 -0
  331. package/dist/types/modules/tournament/config/config.types.d.ts.map +1 -0
  332. package/dist/types/modules/tournament/config/config.validation.d.ts +395 -15
  333. package/dist/types/modules/tournament/config/config.validation.d.ts.map +1 -1
  334. package/dist/types/modules/tournament/integration/integration.factory.d.ts +4 -0
  335. package/dist/types/modules/tournament/integration/integration.factory.d.ts.map +1 -0
  336. package/dist/types/modules/tournament/integration/interfaces/ITournamentService.d.ts +36 -0
  337. package/dist/types/modules/tournament/integration/interfaces/ITournamentService.d.ts.map +1 -0
  338. package/dist/types/modules/tournament/integration/providers/api-football/api-football.provider.d.ts +14 -0
  339. package/dist/types/modules/tournament/integration/providers/api-football/api-football.provider.d.ts.map +1 -0
  340. package/dist/types/modules/tournament/integration/providers/api-football/api-football.types.d.ts +51 -0
  341. package/dist/types/modules/tournament/integration/providers/api-football/api-football.types.d.ts.map +1 -0
  342. package/dist/types/modules/tournament/integration/providers/api-football/index.d.ts +3 -0
  343. package/dist/types/modules/tournament/integration/providers/api-football/index.d.ts.map +1 -0
  344. package/dist/types/modules/tournament/integration/providers/index.d.ts +3 -0
  345. package/dist/types/modules/tournament/integration/providers/index.d.ts.map +1 -0
  346. package/dist/types/modules/tournament/integration/providers/mock.provider.d.ts +7 -0
  347. package/dist/types/modules/tournament/integration/providers/mock.provider.d.ts.map +1 -0
  348. package/dist/types/modules/tournament/integration/tournamentService.d.ts +9 -0
  349. package/dist/types/modules/tournament/integration/tournamentService.d.ts.map +1 -0
  350. package/dist/types/modules/tournament/match/events/evaluate-predictions.consumer.d.ts.map +1 -1
  351. package/dist/types/modules/tournament/match/events/evaluate-predictions.event.d.ts +7 -3
  352. package/dist/types/modules/tournament/match/events/evaluate-predictions.event.d.ts.map +1 -1
  353. package/dist/types/modules/tournament/match/events/match-evaluation.orchestrator.d.ts +14 -0
  354. package/dist/types/modules/tournament/match/events/match-evaluation.orchestrator.d.ts.map +1 -0
  355. package/dist/types/modules/tournament/match/match.builder.d.ts +13 -34
  356. package/dist/types/modules/tournament/match/match.builder.d.ts.map +1 -1
  357. package/dist/types/modules/tournament/match/match.repository.d.ts +1 -1
  358. package/dist/types/modules/tournament/match/match.repository.d.ts.map +1 -1
  359. package/dist/types/modules/tournament/match/match.router.d.ts +36 -0
  360. package/dist/types/modules/tournament/match/match.router.d.ts.map +1 -1
  361. package/dist/types/modules/tournament/match/match.service.d.ts +3 -0
  362. package/dist/types/modules/tournament/match/match.service.d.ts.map +1 -1
  363. package/dist/types/modules/tournament/match/match.types.d.ts +51 -0
  364. package/dist/types/modules/tournament/match/match.types.d.ts.map +1 -0
  365. package/dist/types/modules/tournament/notification/notification-template.repository.d.ts +2 -1
  366. package/dist/types/modules/tournament/notification/notification-template.repository.d.ts.map +1 -1
  367. package/dist/types/modules/tournament/notification/notification.builder.d.ts +30 -0
  368. package/dist/types/modules/tournament/notification/notification.builder.d.ts.map +1 -0
  369. package/dist/types/modules/tournament/notification/notification.config.d.ts +10 -9
  370. package/dist/types/modules/tournament/notification/notification.config.d.ts.map +1 -1
  371. package/dist/types/modules/tournament/notification/notification.service.d.ts +5 -3
  372. package/dist/types/modules/tournament/notification/notification.service.d.ts.map +1 -1
  373. package/dist/types/modules/tournament/participant/participant.builder.d.ts +12 -0
  374. package/dist/types/modules/tournament/participant/participant.builder.d.ts.map +1 -0
  375. package/dist/types/modules/tournament/participant/participant.repository.d.ts +8 -7
  376. package/dist/types/modules/tournament/participant/participant.repository.d.ts.map +1 -1
  377. package/dist/types/modules/tournament/participant/participant.service.d.ts +1 -0
  378. package/dist/types/modules/tournament/participant/participant.service.d.ts.map +1 -1
  379. package/dist/types/modules/tournament/prediction/prediction.builder.d.ts +3 -9
  380. package/dist/types/modules/tournament/prediction/prediction.builder.d.ts.map +1 -1
  381. package/dist/types/modules/tournament/prediction/prediction.repository.d.ts +11 -3
  382. package/dist/types/modules/tournament/prediction/prediction.repository.d.ts.map +1 -1
  383. package/dist/types/modules/tournament/prediction/prediction.service.d.ts +1 -1
  384. package/dist/types/modules/tournament/prediction/prediction.service.d.ts.map +1 -1
  385. package/dist/types/modules/tournament/prediction/prediction.types.d.ts +17 -0
  386. package/dist/types/modules/tournament/prediction/prediction.types.d.ts.map +1 -0
  387. package/dist/types/modules/tournament/reward/handlers/coupon-reward.handler.d.ts +8 -5
  388. package/dist/types/modules/tournament/reward/handlers/coupon-reward.handler.d.ts.map +1 -1
  389. package/dist/types/modules/tournament/reward/reward.builder.d.ts +5 -2
  390. package/dist/types/modules/tournament/reward/reward.builder.d.ts.map +1 -1
  391. package/dist/types/modules/tournament/reward/reward.factory.d.ts +1 -1
  392. package/dist/types/modules/tournament/reward/reward.factory.d.ts.map +1 -1
  393. package/dist/types/modules/tournament/reward/reward.interface.d.ts +2 -2
  394. package/dist/types/modules/tournament/reward/reward.interface.d.ts.map +1 -1
  395. package/dist/types/modules/tournament/reward/reward.service.d.ts +1 -1
  396. package/dist/types/modules/tournament/reward/reward.service.d.ts.map +1 -1
  397. package/dist/types/modules/tournament/reward/reward.types.d.ts +35 -2
  398. package/dist/types/modules/tournament/reward/reward.types.d.ts.map +1 -1
  399. package/dist/types/modules/tournament/schedule/schedule.router.d.ts.map +1 -1
  400. package/dist/types/modules/tournament/schedule/schedule.service.d.ts +3 -0
  401. package/dist/types/modules/tournament/schedule/schedule.service.d.ts.map +1 -1
  402. package/dist/types/modules/tournament/score/score.repository.d.ts +13 -0
  403. package/dist/types/modules/tournament/score/score.repository.d.ts.map +1 -1
  404. package/dist/types/modules/tournament/score/score.service.d.ts +3 -0
  405. package/dist/types/modules/tournament/score/score.service.d.ts.map +1 -1
  406. package/dist/types/modules/tournament/statistics/statistics.builder.d.ts +5 -0
  407. package/dist/types/modules/tournament/statistics/statistics.builder.d.ts.map +1 -1
  408. package/dist/types/modules/tournament/statistics/statistics.router.d.ts +4 -2
  409. package/dist/types/modules/tournament/statistics/statistics.router.d.ts.map +1 -1
  410. package/dist/types/modules/tournament/statistics/statistics.validation.d.ts +32 -14
  411. package/dist/types/modules/tournament/statistics/statistics.validation.d.ts.map +1 -1
  412. package/dist/types/modules/tournament/sync/sync.repository.d.ts +11 -0
  413. package/dist/types/modules/tournament/sync/sync.repository.d.ts.map +1 -0
  414. package/dist/types/modules/tournament/sync/sync.router.d.ts +27 -0
  415. package/dist/types/modules/tournament/sync/sync.router.d.ts.map +1 -0
  416. package/dist/types/modules/tournament/sync/sync.service.d.ts +9 -0
  417. package/dist/types/modules/tournament/sync/sync.service.d.ts.map +1 -0
  418. package/dist/types/modules/tournament/team/team.builder.d.ts +4 -0
  419. package/dist/types/modules/tournament/team/team.builder.d.ts.map +1 -1
  420. package/dist/types/modules/tournament/team/team.repository.d.ts +3 -0
  421. package/dist/types/modules/tournament/team/team.repository.d.ts.map +1 -1
  422. package/dist/types/modules/tournament/team/team.router.d.ts +22 -4
  423. package/dist/types/modules/tournament/team/team.router.d.ts.map +1 -1
  424. package/dist/types/modules/tournament/team/team.service.d.ts +2 -1
  425. package/dist/types/modules/tournament/team/team.service.d.ts.map +1 -1
  426. package/dist/types/modules/tournament/team/team.validation.d.ts +23 -24
  427. package/dist/types/modules/tournament/team/team.validation.d.ts.map +1 -1
  428. package/dist/types/modules/tournament/tournament.builder.d.ts +11 -0
  429. package/dist/types/modules/tournament/tournament.builder.d.ts.map +1 -0
  430. package/dist/types/modules/tournament/tournament.router.d.ts +210 -10
  431. package/dist/types/modules/tournament/tournament.router.d.ts.map +1 -1
  432. package/dist/types/modules/tournament/tournament.service.d.ts.map +1 -1
  433. package/dist/types/modules/tournament/tournament.utils.d.ts +4 -0
  434. package/dist/types/modules/tournament/tournament.utils.d.ts.map +1 -1
  435. package/dist/types/modules/tournament/tournament.validation.d.ts +205 -1
  436. package/dist/types/modules/tournament/tournament.validation.d.ts.map +1 -1
  437. package/package.json +3 -3
  438. package/dist/lib/modules/tournament/match/events/match-ended.consumer.d.ts +0 -2
  439. package/dist/lib/modules/tournament/match/events/match-ended.consumer.d.ts.map +0 -1
  440. package/dist/lib/modules/tournament/match/events/match-ended.consumer.js +0 -15
  441. package/dist/lib/modules/tournament/match/events/match-ended.consumer.js.map +0 -1
  442. package/dist/lib/modules/tournament/match/events/match-ended.event.d.ts +0 -14
  443. package/dist/lib/modules/tournament/match/events/match-ended.event.d.ts.map +0 -1
  444. package/dist/lib/modules/tournament/match/events/match-ended.event.js +0 -12
  445. package/dist/lib/modules/tournament/match/events/match-ended.event.js.map +0 -1
  446. package/dist/lib/modules/tournament/notification/jobs/notification.producer.d.ts +0 -10
  447. package/dist/lib/modules/tournament/notification/jobs/notification.producer.d.ts.map +0 -1
  448. package/dist/lib/modules/tournament/notification/jobs/notification.producer.js +0 -23
  449. package/dist/lib/modules/tournament/notification/jobs/notification.producer.js.map +0 -1
  450. package/dist/lib/modules/tournament/notification/jobs/notification.worker.d.ts +0 -9
  451. package/dist/lib/modules/tournament/notification/jobs/notification.worker.d.ts.map +0 -1
  452. package/dist/lib/modules/tournament/notification/jobs/notification.worker.js.map +0 -1
  453. package/dist/lib/modules/tournament/notification/notification.schedule.config.d.ts +0 -10
  454. package/dist/lib/modules/tournament/notification/notification.schedule.config.d.ts.map +0 -1
  455. package/dist/lib/modules/tournament/notification/notification.schedule.config.js +0 -15
  456. package/dist/lib/modules/tournament/notification/notification.schedule.config.js.map +0 -1
  457. package/dist/lib/modules/tournament/notification/notification.scheduler.service.d.ts +0 -10
  458. package/dist/lib/modules/tournament/notification/notification.scheduler.service.d.ts.map +0 -1
  459. package/dist/lib/modules/tournament/notification/notification.scheduler.service.js.map +0 -1
  460. package/dist/types/events/event-initializations.d.ts +0 -2
  461. package/dist/types/events/event-initializations.d.ts.map +0 -1
  462. package/dist/types/modules/tournament/config/tournament-config.validation.d.ts +0 -201
  463. package/dist/types/modules/tournament/config/tournament-config.validation.d.ts.map +0 -1
  464. package/dist/types/modules/tournament/match/events/match-ended.consumer.d.ts +0 -2
  465. package/dist/types/modules/tournament/match/events/match-ended.consumer.d.ts.map +0 -1
  466. package/dist/types/modules/tournament/match/events/match-ended.event.d.ts +0 -14
  467. package/dist/types/modules/tournament/match/events/match-ended.event.d.ts.map +0 -1
  468. package/dist/types/modules/tournament/notification/jobs/notification.producer.d.ts +0 -10
  469. package/dist/types/modules/tournament/notification/jobs/notification.producer.d.ts.map +0 -1
  470. package/dist/types/modules/tournament/notification/jobs/notification.worker.d.ts +0 -9
  471. package/dist/types/modules/tournament/notification/jobs/notification.worker.d.ts.map +0 -1
  472. package/dist/types/modules/tournament/notification/notification.schedule.config.d.ts +0 -10
  473. package/dist/types/modules/tournament/notification/notification.schedule.config.d.ts.map +0 -1
  474. package/dist/types/modules/tournament/notification/notification.scheduler.service.d.ts +0 -10
  475. package/dist/types/modules/tournament/notification/notification.scheduler.service.d.ts.map +0 -1
@@ -9,6 +9,7 @@ export declare enum LtoCardState {
9
9
  export declare const JoinLtoCampaignSchema: z.ZodEffects<z.ZodObject<{
10
10
  isEntireMenu: z.ZodBoolean;
11
11
  products: z.ZodDefault<z.ZodArray<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>]>, "many">>;
12
+ shopCategories: z.ZodDefault<z.ZodArray<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>]>, "many">>;
12
13
  discountPercentage: z.ZodNumber;
13
14
  maxDiscountCap: z.ZodNumber;
14
15
  isOrderCapacityEnabled: z.ZodBoolean;
@@ -19,6 +20,7 @@ export declare const JoinLtoCampaignSchema: z.ZodEffects<z.ZodObject<{
19
20
  discountPercentage: number;
20
21
  maxDiscountCap: number;
21
22
  isOrderCapacityEnabled: boolean;
23
+ shopCategories: import("mongoose").Types.ObjectId[];
22
24
  maxOrderCapacity?: number | undefined;
23
25
  }, {
24
26
  isEntireMenu: boolean;
@@ -27,12 +29,14 @@ export declare const JoinLtoCampaignSchema: z.ZodEffects<z.ZodObject<{
27
29
  isOrderCapacityEnabled: boolean;
28
30
  products?: (string | import("mongoose").Types.ObjectId)[] | undefined;
29
31
  maxOrderCapacity?: number | undefined;
32
+ shopCategories?: (string | import("mongoose").Types.ObjectId)[] | undefined;
30
33
  }>, {
31
34
  isEntireMenu: boolean;
32
35
  products: import("mongoose").Types.ObjectId[];
33
36
  discountPercentage: number;
34
37
  maxDiscountCap: number;
35
38
  isOrderCapacityEnabled: boolean;
39
+ shopCategories: import("mongoose").Types.ObjectId[];
36
40
  maxOrderCapacity?: number | undefined;
37
41
  }, {
38
42
  isEntireMenu: boolean;
@@ -41,6 +45,7 @@ export declare const JoinLtoCampaignSchema: z.ZodEffects<z.ZodObject<{
41
45
  isOrderCapacityEnabled: boolean;
42
46
  products?: (string | import("mongoose").Types.ObjectId)[] | undefined;
43
47
  maxOrderCapacity?: number | undefined;
48
+ shopCategories?: (string | import("mongoose").Types.ObjectId)[] | undefined;
44
49
  }>;
45
50
  export declare const ParticipantSchema: z.ZodObject<{
46
51
  _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>]>;
@@ -198,15 +203,6 @@ export declare const ParticipantStatusSchema: z.ZodObject<{
198
203
  }>>;
199
204
  }, "strip", z.ZodTypeAny, {
200
205
  campaignState: LtoCardState;
201
- campaign?: {
202
- _id: import("mongoose").Types.ObjectId;
203
- discountOptions: number[];
204
- maxDiscountCaps: number[];
205
- startDate?: Date | null | undefined;
206
- endDate?: Date | null | undefined;
207
- title?: string | undefined;
208
- subTitle?: string | undefined;
209
- } | undefined;
210
206
  participant?: {
211
207
  isEntireMenu: boolean;
212
208
  joinedAt: Date;
@@ -217,17 +213,17 @@ export declare const ParticipantStatusSchema: z.ZodObject<{
217
213
  maxDiscountCap?: number | undefined;
218
214
  maxOrderCapacity?: number | undefined;
219
215
  } | undefined;
220
- }, {
221
- campaignState: LtoCardState;
222
216
  campaign?: {
223
- _id: string | import("mongoose").Types.ObjectId;
217
+ _id: import("mongoose").Types.ObjectId;
218
+ discountOptions: number[];
219
+ maxDiscountCaps: number[];
224
220
  startDate?: Date | null | undefined;
225
221
  endDate?: Date | null | undefined;
226
222
  title?: string | undefined;
227
223
  subTitle?: string | undefined;
228
- discountOptions?: number[] | undefined;
229
- maxDiscountCaps?: number[] | undefined;
230
224
  } | undefined;
225
+ }, {
226
+ campaignState: LtoCardState;
231
227
  participant?: {
232
228
  isEntireMenu: boolean;
233
229
  joinedAt: Date;
@@ -238,6 +234,15 @@ export declare const ParticipantStatusSchema: z.ZodObject<{
238
234
  maxDiscountCap?: number | undefined;
239
235
  maxOrderCapacity?: number | undefined;
240
236
  } | undefined;
237
+ campaign?: {
238
+ _id: string | import("mongoose").Types.ObjectId;
239
+ startDate?: Date | null | undefined;
240
+ endDate?: Date | null | undefined;
241
+ title?: string | undefined;
242
+ subTitle?: string | undefined;
243
+ discountOptions?: number[] | undefined;
244
+ maxDiscountCaps?: number[] | undefined;
245
+ } | undefined;
241
246
  }>;
242
247
  export declare const ParticipantResponseSchema: z.ZodObject<{
243
248
  success: z.ZodBoolean;
@@ -474,15 +479,6 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
474
479
  }>>;
475
480
  documents: z.ZodArray<z.ZodType<{
476
481
  campaignState: LtoCardState;
477
- campaign?: {
478
- _id: string | import("mongoose").Types.ObjectId;
479
- startDate?: Date | null | undefined;
480
- endDate?: Date | null | undefined;
481
- title?: string | undefined;
482
- subTitle?: string | undefined;
483
- discountOptions?: number[] | undefined;
484
- maxDiscountCaps?: number[] | undefined;
485
- } | undefined;
486
482
  participant?: {
487
483
  isEntireMenu: boolean;
488
484
  joinedAt: Date;
@@ -493,8 +489,6 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
493
489
  maxDiscountCap?: number | undefined;
494
490
  maxOrderCapacity?: number | undefined;
495
491
  } | undefined;
496
- }, z.ZodTypeDef, {
497
- campaignState: LtoCardState;
498
492
  campaign?: {
499
493
  _id: string | import("mongoose").Types.ObjectId;
500
494
  startDate?: Date | null | undefined;
@@ -504,6 +498,8 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
504
498
  discountOptions?: number[] | undefined;
505
499
  maxDiscountCaps?: number[] | undefined;
506
500
  } | undefined;
501
+ }, z.ZodTypeDef, {
502
+ campaignState: LtoCardState;
507
503
  participant?: {
508
504
  isEntireMenu: boolean;
509
505
  joinedAt: Date;
@@ -514,10 +510,6 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
514
510
  maxDiscountCap?: number | undefined;
515
511
  maxOrderCapacity?: number | undefined;
516
512
  } | undefined;
517
- }>, "many">;
518
- }, "strip", z.ZodTypeAny, {
519
- documents: {
520
- campaignState: LtoCardState;
521
513
  campaign?: {
522
514
  _id: string | import("mongoose").Types.ObjectId;
523
515
  startDate?: Date | null | undefined;
@@ -527,6 +519,10 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
527
519
  discountOptions?: number[] | undefined;
528
520
  maxDiscountCaps?: number[] | undefined;
529
521
  } | undefined;
522
+ }>, "many">;
523
+ }, "strip", z.ZodTypeAny, {
524
+ documents: {
525
+ campaignState: LtoCardState;
530
526
  participant?: {
531
527
  isEntireMenu: boolean;
532
528
  joinedAt: Date;
@@ -537,6 +533,15 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
537
533
  maxDiscountCap?: number | undefined;
538
534
  maxOrderCapacity?: number | undefined;
539
535
  } | undefined;
536
+ campaign?: {
537
+ _id: string | import("mongoose").Types.ObjectId;
538
+ startDate?: Date | null | undefined;
539
+ endDate?: Date | null | undefined;
540
+ title?: string | undefined;
541
+ subTitle?: string | undefined;
542
+ discountOptions?: number[] | undefined;
543
+ maxDiscountCaps?: number[] | undefined;
544
+ } | undefined;
540
545
  }[];
541
546
  metadata?: {
542
547
  page: number;
@@ -547,15 +552,6 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
547
552
  }, {
548
553
  documents: {
549
554
  campaignState: LtoCardState;
550
- campaign?: {
551
- _id: string | import("mongoose").Types.ObjectId;
552
- startDate?: Date | null | undefined;
553
- endDate?: Date | null | undefined;
554
- title?: string | undefined;
555
- subTitle?: string | undefined;
556
- discountOptions?: number[] | undefined;
557
- maxDiscountCaps?: number[] | undefined;
558
- } | undefined;
559
555
  participant?: {
560
556
  isEntireMenu: boolean;
561
557
  joinedAt: Date;
@@ -566,6 +562,15 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
566
562
  maxDiscountCap?: number | undefined;
567
563
  maxOrderCapacity?: number | undefined;
568
564
  } | undefined;
565
+ campaign?: {
566
+ _id: string | import("mongoose").Types.ObjectId;
567
+ startDate?: Date | null | undefined;
568
+ endDate?: Date | null | undefined;
569
+ title?: string | undefined;
570
+ subTitle?: string | undefined;
571
+ discountOptions?: number[] | undefined;
572
+ maxDiscountCaps?: number[] | undefined;
573
+ } | undefined;
569
574
  }[];
570
575
  metadata?: {
571
576
  page: number;
@@ -575,15 +580,6 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
575
580
  } | undefined;
576
581
  }>, z.ZodType<{
577
582
  campaignState: LtoCardState;
578
- campaign?: {
579
- _id: string | import("mongoose").Types.ObjectId;
580
- startDate?: Date | null | undefined;
581
- endDate?: Date | null | undefined;
582
- title?: string | undefined;
583
- subTitle?: string | undefined;
584
- discountOptions?: number[] | undefined;
585
- maxDiscountCaps?: number[] | undefined;
586
- } | undefined;
587
583
  participant?: {
588
584
  isEntireMenu: boolean;
589
585
  joinedAt: Date;
@@ -594,8 +590,6 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
594
590
  maxDiscountCap?: number | undefined;
595
591
  maxOrderCapacity?: number | undefined;
596
592
  } | undefined;
597
- }, z.ZodTypeDef, {
598
- campaignState: LtoCardState;
599
593
  campaign?: {
600
594
  _id: string | import("mongoose").Types.ObjectId;
601
595
  startDate?: Date | null | undefined;
@@ -605,6 +599,8 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
605
599
  discountOptions?: number[] | undefined;
606
600
  maxDiscountCaps?: number[] | undefined;
607
601
  } | undefined;
602
+ }, z.ZodTypeDef, {
603
+ campaignState: LtoCardState;
608
604
  participant?: {
609
605
  isEntireMenu: boolean;
610
606
  joinedAt: Date;
@@ -615,12 +611,6 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
615
611
  maxDiscountCap?: number | undefined;
616
612
  maxOrderCapacity?: number | undefined;
617
613
  } | undefined;
618
- }>]>>;
619
- }, "strip", z.ZodTypeAny, {
620
- message: string;
621
- success: boolean;
622
- data?: {
623
- campaignState: LtoCardState;
624
614
  campaign?: {
625
615
  _id: string | import("mongoose").Types.ObjectId;
626
616
  startDate?: Date | null | undefined;
@@ -630,6 +620,12 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
630
620
  discountOptions?: number[] | undefined;
631
621
  maxDiscountCaps?: number[] | undefined;
632
622
  } | undefined;
623
+ }>]>>;
624
+ }, "strip", z.ZodTypeAny, {
625
+ message: string;
626
+ success: boolean;
627
+ data?: {
628
+ campaignState: LtoCardState;
633
629
  participant?: {
634
630
  isEntireMenu: boolean;
635
631
  joinedAt: Date;
@@ -640,18 +636,18 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
640
636
  maxDiscountCap?: number | undefined;
641
637
  maxOrderCapacity?: number | undefined;
642
638
  } | undefined;
639
+ campaign?: {
640
+ _id: string | import("mongoose").Types.ObjectId;
641
+ startDate?: Date | null | undefined;
642
+ endDate?: Date | null | undefined;
643
+ title?: string | undefined;
644
+ subTitle?: string | undefined;
645
+ discountOptions?: number[] | undefined;
646
+ maxDiscountCaps?: number[] | undefined;
647
+ } | undefined;
643
648
  } | {
644
649
  documents: {
645
650
  campaignState: LtoCardState;
646
- campaign?: {
647
- _id: string | import("mongoose").Types.ObjectId;
648
- startDate?: Date | null | undefined;
649
- endDate?: Date | null | undefined;
650
- title?: string | undefined;
651
- subTitle?: string | undefined;
652
- discountOptions?: number[] | undefined;
653
- maxDiscountCaps?: number[] | undefined;
654
- } | undefined;
655
651
  participant?: {
656
652
  isEntireMenu: boolean;
657
653
  joinedAt: Date;
@@ -662,6 +658,15 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
662
658
  maxDiscountCap?: number | undefined;
663
659
  maxOrderCapacity?: number | undefined;
664
660
  } | undefined;
661
+ campaign?: {
662
+ _id: string | import("mongoose").Types.ObjectId;
663
+ startDate?: Date | null | undefined;
664
+ endDate?: Date | null | undefined;
665
+ title?: string | undefined;
666
+ subTitle?: string | undefined;
667
+ discountOptions?: number[] | undefined;
668
+ maxDiscountCaps?: number[] | undefined;
669
+ } | undefined;
665
670
  }[];
666
671
  metadata?: {
667
672
  page: number;
@@ -675,15 +680,6 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
675
680
  success: boolean;
676
681
  data?: {
677
682
  campaignState: LtoCardState;
678
- campaign?: {
679
- _id: string | import("mongoose").Types.ObjectId;
680
- startDate?: Date | null | undefined;
681
- endDate?: Date | null | undefined;
682
- title?: string | undefined;
683
- subTitle?: string | undefined;
684
- discountOptions?: number[] | undefined;
685
- maxDiscountCaps?: number[] | undefined;
686
- } | undefined;
687
683
  participant?: {
688
684
  isEntireMenu: boolean;
689
685
  joinedAt: Date;
@@ -694,18 +690,18 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
694
690
  maxDiscountCap?: number | undefined;
695
691
  maxOrderCapacity?: number | undefined;
696
692
  } | undefined;
693
+ campaign?: {
694
+ _id: string | import("mongoose").Types.ObjectId;
695
+ startDate?: Date | null | undefined;
696
+ endDate?: Date | null | undefined;
697
+ title?: string | undefined;
698
+ subTitle?: string | undefined;
699
+ discountOptions?: number[] | undefined;
700
+ maxDiscountCaps?: number[] | undefined;
701
+ } | undefined;
697
702
  } | {
698
703
  documents: {
699
704
  campaignState: LtoCardState;
700
- campaign?: {
701
- _id: string | import("mongoose").Types.ObjectId;
702
- startDate?: Date | null | undefined;
703
- endDate?: Date | null | undefined;
704
- title?: string | undefined;
705
- subTitle?: string | undefined;
706
- discountOptions?: number[] | undefined;
707
- maxDiscountCaps?: number[] | undefined;
708
- } | undefined;
709
705
  participant?: {
710
706
  isEntireMenu: boolean;
711
707
  joinedAt: Date;
@@ -716,6 +712,15 @@ export declare const ParticipantStatusResponseSchema: z.ZodObject<{
716
712
  maxDiscountCap?: number | undefined;
717
713
  maxOrderCapacity?: number | undefined;
718
714
  } | undefined;
715
+ campaign?: {
716
+ _id: string | import("mongoose").Types.ObjectId;
717
+ startDate?: Date | null | undefined;
718
+ endDate?: Date | null | undefined;
719
+ title?: string | undefined;
720
+ subTitle?: string | undefined;
721
+ discountOptions?: number[] | undefined;
722
+ maxDiscountCaps?: number[] | undefined;
723
+ } | undefined;
719
724
  }[];
720
725
  metadata?: {
721
726
  page: number;
@@ -731,7 +736,7 @@ export type CampaignSummaryDTO = DTO<typeof CampaignSummarySchema>;
731
736
  export type ParticipantSummaryDTO = DTO<typeof ParticipantSummarySchema>;
732
737
  export type ParticipantStatusDTO = DTO<typeof ParticipantStatusSchema>;
733
738
  export type ActiveParticipantMarketingDTO = Pick<ParticipantSummaryDTO, 'marketingId'>;
734
- export type UpdateParticipantDataDTO = JoinLtoCampaignDTO & {
739
+ export type UpdateParticipantDataDTO = Omit<JoinLtoCampaignDTO, 'shopCategories'> & {
735
740
  marketing: ParticipantSummaryDTO['marketingId'];
736
741
  };
737
742
  //# sourceMappingURL=limited-time-offer-participant.validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"limited-time-offer-participant.validation.d.ts","sourceRoot":"/","sources":["modules/limited-time-offer/participant/limited-time-offer-participant.validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAuB,GAAG,EAAgB,MAAM,yCAAyC,CAAC;AAEjG,oBAAY,YAAY;IACpB,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,MAAM,WAAW;CACpB;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B5B,CAAC;AAEP,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe5B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;EAQhC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;EASnC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIlC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA0C,CAAC;AACjF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAgD,CAAC;AAE7F,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACnE,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC3D,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACnE,MAAM,MAAM,qBAAqB,GAAG,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACzE,MAAM,MAAM,oBAAoB,GAAG,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACvE,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;AACvF,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,GAAG;IAAC,SAAS,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAAA;CAAC,CAAC"}
1
+ {"version":3,"file":"limited-time-offer-participant.validation.d.ts","sourceRoot":"/","sources":["modules/limited-time-offer/participant/limited-time-offer-participant.validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAuB,GAAG,EAAgB,MAAM,yCAAyC,CAAC;AAEjG,oBAAY,YAAY;IACpB,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,MAAM,WAAW;CACpB;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgC5B,CAAC;AAEP,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe5B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;EAQhC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;EASnC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIlC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA0C,CAAC;AACjF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAgD,CAAC;AAE7F,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACnE,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC3D,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACnE,MAAM,MAAM,qBAAqB,GAAG,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACzE,MAAM,MAAM,oBAAoB,GAAG,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACvE,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;AAGvF,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG;IAAC,SAAS,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAAA;CAAC,CAAC"}
@@ -14,16 +14,17 @@ exports.JoinLtoCampaignSchema = zod_1.z
14
14
  .object({
15
15
  isEntireMenu: zod_1.z.boolean(),
16
16
  products: zod_1.z.array(validation_1.ZodValidation.objectId()).default([]),
17
+ shopCategories: zod_1.z.array(validation_1.ZodValidation.objectId()).default([]),
17
18
  discountPercentage: validation_1.ZodValidation.number('Discount percentage'),
18
19
  maxDiscountCap: validation_1.ZodValidation.number('Max discount cap'),
19
20
  isOrderCapacityEnabled: zod_1.z.boolean(),
20
21
  maxOrderCapacity: validation_1.ZodValidation.number('Max order capacity').optional(),
21
22
  })
22
23
  .superRefine((d, ctx) => {
23
- if (!d.isEntireMenu && d.products.length === 0) {
24
+ if (!d.isEntireMenu && d.products.length === 0 && d.shopCategories.length === 0) {
24
25
  ctx.addIssue({
25
26
  code: zod_1.z.ZodIssueCode.custom,
26
- message: 'At least one product must be selected',
27
+ message: 'At least one product or category must be selected',
27
28
  path: ['products']
28
29
  });
29
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"limited-time-offer-participant.validation.js","sourceRoot":"/","sources":["modules/limited-time-offer/participant/limited-time-offer-participant.validation.ts"],"names":[],"mappings":";;;AAAA,6BAAsB;AACtB,wEAAiG;AAEjG,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,6BAAa,CAAA;IACb,uCAAuB,CAAA;IACvB,6BAAa,CAAA;IACb,iCAAiB,CAAA;AACrB,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAEY,QAAA,qBAAqB,GAAG,OAAC;KACjC,MAAM,CAAC;IACJ,YAAY,EAAE,OAAC,CAAC,OAAO,EAAE;IACzB,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,0BAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACvD,kBAAkB,EAAE,0BAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAC/D,cAAc,EAAE,0BAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC;IACxD,sBAAsB,EAAE,OAAC,CAAC,OAAO,EAAE;IACnC,gBAAgB,EAAE,0BAAa,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;CAC1E,CAAC;KACD,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;IACpB,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,QAAQ,CAAC;YACT,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,uCAAuC;YAChD,IAAI,EAAE,CAAC,UAAU,CAAC;SACrB,CAAC,CAAC;IACP,CAAC;IACD,IAAI,CAAC,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAClD,GAAG,CAAC,QAAQ,CAAC;YACT,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,yDAAyD;YAClE,IAAI,EAAE,CAAC,kBAAkB,CAAC;SAC7B,CAAC,CAAC;IACP,CAAC;IACD,IAAI,CAAC,CAAC,sBAAsB,IAAI,CAAC,CAAC,gBAAgB,KAAK,SAAS,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAC1F,GAAG,CAAC,QAAQ,CAAC;YACT,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,2CAA2C;YACpD,IAAI,EAAE,CAAC,kBAAkB,CAAC;SAC7B,CAAC,CAAC;IACP,CAAC;AACL,CAAC,CAAC,CAAC;AAEM,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,GAAG,EAAE,0BAAa,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,0BAAa,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,0BAAa,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,OAAC,CAAC,IAAI,EAAE;IAClB,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,0BAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACvD,YAAY,EAAE,OAAC,CAAC,OAAO,EAAE;IACzB,kBAAkB,EAAE,0BAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IAC1E,cAAc,EAAE,0BAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACnE,sBAAsB,EAAE,OAAC,CAAC,OAAO,EAAE;IACnC,gBAAgB,EAAE,0BAAa,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IACvE,WAAW,EAAE,OAAC,CAAC,OAAO,EAAE;IACxB,WAAW,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,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;CAC5C,CAAC,CAAC;AAEU,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,EAAE,0BAAa,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,0BAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;IAC/C,QAAQ,EAAE,0BAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;IACrD,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzC,OAAO,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,0BAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7E,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,0BAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACjF,CAAC,CAAC;AAEU,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,kBAAkB,EAAE,0BAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IAC1E,cAAc,EAAE,0BAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACnE,QAAQ,EAAE,OAAC,CAAC,IAAI,EAAE;IAClB,YAAY,EAAE,OAAC,CAAC,OAAO,EAAE;IACzB,sBAAsB,EAAE,OAAC,CAAC,OAAO,EAAE;IACnC,gBAAgB,EAAE,0BAAa,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IACvE,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,0BAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACzD,WAAW,EAAE,0BAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC;AAEU,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,OAAC,CAAC,UAAU,CAAC,YAAY,CAAC;IACzC,QAAQ,EAAE,6BAAqB,CAAC,QAAQ,EAAE;IAC1C,WAAW,EAAE,gCAAwB,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC;AAEU,QAAA,yBAAyB,GAAG,IAAA,iCAAoB,EAAC,yBAAiB,CAAC,CAAC;AACpE,QAAA,+BAA+B,GAAG,IAAA,iCAAoB,EAAC,+BAAuB,CAAC,CAAC","sourcesContent":["import {z} from 'zod';\nimport {createResponseSchema, DTO, ZodValidation} from '@lyxa.ai/core/dist/utilities/validation';\n\nexport enum LtoCardState {\n NONE = 'NONE',\n SCHEDULED = 'SCHEDULED',\n LIVE = 'LIVE',\n JOINED = 'JOINED',\n}\n\nexport const JoinLtoCampaignSchema = z\n .object({\n isEntireMenu: z.boolean(),\n products: z.array(ZodValidation.objectId()).default([]),\n discountPercentage: ZodValidation.number('Discount percentage'),\n maxDiscountCap: ZodValidation.number('Max discount cap'),\n isOrderCapacityEnabled: z.boolean(),\n maxOrderCapacity: ZodValidation.number('Max order capacity').optional(),\n })\n .superRefine((d, ctx) => {\n if (!d.isEntireMenu && d.products.length === 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'At least one product must be selected',\n path: ['products']\n });\n }\n if (d.isOrderCapacityEnabled && !d.maxOrderCapacity) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Max order capacity is required when capacity is enabled',\n path: ['maxOrderCapacity']\n });\n }\n if (d.isOrderCapacityEnabled && d.maxOrderCapacity !== undefined && d.maxOrderCapacity <= 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Max order capacity must be greater than 0',\n path: ['maxOrderCapacity']\n });\n }\n });\n\nexport const ParticipantSchema = z.object({\n _id: ZodValidation.objectId(),\n campaign: ZodValidation.objectId(),\n shop: ZodValidation.objectId(),\n joinedAt: z.date(),\n products: z.array(ZodValidation.objectId()).default([]),\n isEntireMenu: z.boolean(),\n discountPercentage: ZodValidation.number('Discount percentage').optional(),\n maxDiscountCap: ZodValidation.number('Max discount cap').optional(),\n isOrderCapacityEnabled: z.boolean(),\n maxOrderCapacity: ZodValidation.number('Max order capacity').optional(),\n isWithdrawn: z.boolean(),\n withdrawnAt: z.date().nullable().optional(),\n createdAt: z.date().nullable().optional(),\n updatedAt: z.date().nullable().optional(),\n});\n\nexport const CampaignSummarySchema = z.object({\n _id: ZodValidation.objectId(),\n title: ZodValidation.string('Title').optional(),\n subTitle: ZodValidation.string('Subtitle').optional(),\n startDate: z.date().nullable().optional(),\n endDate: z.date().nullable().optional(),\n discountOptions: z.array(ZodValidation.number('Discount option')).default([]),\n maxDiscountCaps: z.array(ZodValidation.number('Max discount cap')).default([]),\n});\n\nexport const ParticipantSummarySchema = z.object({\n discountPercentage: ZodValidation.number('Discount percentage').optional(),\n maxDiscountCap: ZodValidation.number('Max discount cap').optional(),\n joinedAt: z.date(),\n isEntireMenu: z.boolean(),\n isOrderCapacityEnabled: z.boolean(),\n maxOrderCapacity: ZodValidation.number('Max order capacity').optional(),\n productIds: z.array(ZodValidation.objectId()).default([]),\n marketingId: ZodValidation.objectId().optional(),\n});\n\nexport const ParticipantStatusSchema = z.object({\n campaignState: z.nativeEnum(LtoCardState),\n campaign: CampaignSummarySchema.optional(),\n participant: ParticipantSummarySchema.optional(),\n});\n\nexport const ParticipantResponseSchema = createResponseSchema(ParticipantSchema);\nexport const ParticipantStatusResponseSchema = createResponseSchema(ParticipantStatusSchema);\n\nexport type JoinLtoCampaignDTO = DTO<typeof JoinLtoCampaignSchema>;\nexport type ParticipantDTO = DTO<typeof ParticipantSchema>;\nexport type CampaignSummaryDTO = DTO<typeof CampaignSummarySchema>;\nexport type ParticipantSummaryDTO = DTO<typeof ParticipantSummarySchema>;\nexport type ParticipantStatusDTO = DTO<typeof ParticipantStatusSchema>;\nexport type ActiveParticipantMarketingDTO = Pick<ParticipantSummaryDTO, 'marketingId'>;\nexport type UpdateParticipantDataDTO = JoinLtoCampaignDTO & {marketing: ParticipantSummaryDTO['marketingId']};\n"]}
1
+ {"version":3,"file":"limited-time-offer-participant.validation.js","sourceRoot":"/","sources":["modules/limited-time-offer/participant/limited-time-offer-participant.validation.ts"],"names":[],"mappings":";;;AAAA,6BAAsB;AACtB,wEAAiG;AAEjG,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,6BAAa,CAAA;IACb,uCAAuB,CAAA;IACvB,6BAAa,CAAA;IACb,iCAAiB,CAAA;AACrB,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAEY,QAAA,qBAAqB,GAAG,OAAC;KACjC,MAAM,CAAC;IACJ,YAAY,EAAE,OAAC,CAAC,OAAO,EAAE;IACzB,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,0BAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACvD,cAAc,EAAE,OAAC,CAAC,KAAK,CAAC,0BAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7D,kBAAkB,EAAE,0BAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAC/D,cAAc,EAAE,0BAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC;IACxD,sBAAsB,EAAE,OAAC,CAAC,OAAO,EAAE;IACnC,gBAAgB,EAAE,0BAAa,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;CAC1E,CAAC;KACD,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;IACpB,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9E,GAAG,CAAC,QAAQ,CAAC;YACT,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,mDAAmD;YAC5D,IAAI,EAAE,CAAC,UAAU,CAAC;SACrB,CAAC,CAAC;IACP,CAAC;IACD,IAAI,CAAC,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAClD,GAAG,CAAC,QAAQ,CAAC;YACT,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,yDAAyD;YAClE,IAAI,EAAE,CAAC,kBAAkB,CAAC;SAC7B,CAAC,CAAC;IACP,CAAC;IACD,IAAI,CAAC,CAAC,sBAAsB,IAAI,CAAC,CAAC,gBAAgB,KAAK,SAAS,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAC1F,GAAG,CAAC,QAAQ,CAAC;YACT,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,2CAA2C;YACpD,IAAI,EAAE,CAAC,kBAAkB,CAAC;SAC7B,CAAC,CAAC;IACP,CAAC;AACL,CAAC,CAAC,CAAC;AAEM,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,GAAG,EAAE,0BAAa,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,0BAAa,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,0BAAa,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,OAAC,CAAC,IAAI,EAAE;IAClB,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,0BAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACvD,YAAY,EAAE,OAAC,CAAC,OAAO,EAAE;IACzB,kBAAkB,EAAE,0BAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IAC1E,cAAc,EAAE,0BAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACnE,sBAAsB,EAAE,OAAC,CAAC,OAAO,EAAE;IACnC,gBAAgB,EAAE,0BAAa,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IACvE,WAAW,EAAE,OAAC,CAAC,OAAO,EAAE;IACxB,WAAW,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,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;CAC5C,CAAC,CAAC;AAEU,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,EAAE,0BAAa,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,0BAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;IAC/C,QAAQ,EAAE,0BAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;IACrD,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzC,OAAO,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,0BAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7E,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,0BAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACjF,CAAC,CAAC;AAEU,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,kBAAkB,EAAE,0BAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IAC1E,cAAc,EAAE,0BAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACnE,QAAQ,EAAE,OAAC,CAAC,IAAI,EAAE;IAClB,YAAY,EAAE,OAAC,CAAC,OAAO,EAAE;IACzB,sBAAsB,EAAE,OAAC,CAAC,OAAO,EAAE;IACnC,gBAAgB,EAAE,0BAAa,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IACvE,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,0BAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACzD,WAAW,EAAE,0BAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC;AAEU,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,OAAC,CAAC,UAAU,CAAC,YAAY,CAAC;IACzC,QAAQ,EAAE,6BAAqB,CAAC,QAAQ,EAAE;IAC1C,WAAW,EAAE,gCAAwB,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC;AAEU,QAAA,yBAAyB,GAAG,IAAA,iCAAoB,EAAC,yBAAiB,CAAC,CAAC;AACpE,QAAA,+BAA+B,GAAG,IAAA,iCAAoB,EAAC,+BAAuB,CAAC,CAAC","sourcesContent":["import {z} from 'zod';\nimport {createResponseSchema, DTO, ZodValidation} from '@lyxa.ai/core/dist/utilities/validation';\n\nexport enum LtoCardState {\n NONE = 'NONE',\n SCHEDULED = 'SCHEDULED',\n LIVE = 'LIVE',\n JOINED = 'JOINED',\n}\n\nexport const JoinLtoCampaignSchema = z\n .object({\n isEntireMenu: z.boolean(),\n products: z.array(ZodValidation.objectId()).default([]),\n shopCategories: z.array(ZodValidation.objectId()).default([]),\n discountPercentage: ZodValidation.number('Discount percentage'),\n maxDiscountCap: ZodValidation.number('Max discount cap'),\n isOrderCapacityEnabled: z.boolean(),\n maxOrderCapacity: ZodValidation.number('Max order capacity').optional(),\n })\n .superRefine((d, ctx) => {\n if (!d.isEntireMenu && d.products.length === 0 && d.shopCategories.length === 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'At least one product or category must be selected',\n path: ['products']\n });\n }\n if (d.isOrderCapacityEnabled && !d.maxOrderCapacity) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Max order capacity is required when capacity is enabled',\n path: ['maxOrderCapacity']\n });\n }\n if (d.isOrderCapacityEnabled && d.maxOrderCapacity !== undefined && d.maxOrderCapacity <= 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Max order capacity must be greater than 0',\n path: ['maxOrderCapacity']\n });\n }\n });\n\nexport const ParticipantSchema = z.object({\n _id: ZodValidation.objectId(),\n campaign: ZodValidation.objectId(),\n shop: ZodValidation.objectId(),\n joinedAt: z.date(),\n products: z.array(ZodValidation.objectId()).default([]),\n isEntireMenu: z.boolean(),\n discountPercentage: ZodValidation.number('Discount percentage').optional(),\n maxDiscountCap: ZodValidation.number('Max discount cap').optional(),\n isOrderCapacityEnabled: z.boolean(),\n maxOrderCapacity: ZodValidation.number('Max order capacity').optional(),\n isWithdrawn: z.boolean(),\n withdrawnAt: z.date().nullable().optional(),\n createdAt: z.date().nullable().optional(),\n updatedAt: z.date().nullable().optional(),\n});\n\nexport const CampaignSummarySchema = z.object({\n _id: ZodValidation.objectId(),\n title: ZodValidation.string('Title').optional(),\n subTitle: ZodValidation.string('Subtitle').optional(),\n startDate: z.date().nullable().optional(),\n endDate: z.date().nullable().optional(),\n discountOptions: z.array(ZodValidation.number('Discount option')).default([]),\n maxDiscountCaps: z.array(ZodValidation.number('Max discount cap')).default([]),\n});\n\nexport const ParticipantSummarySchema = z.object({\n discountPercentage: ZodValidation.number('Discount percentage').optional(),\n maxDiscountCap: ZodValidation.number('Max discount cap').optional(),\n joinedAt: z.date(),\n isEntireMenu: z.boolean(),\n isOrderCapacityEnabled: z.boolean(),\n maxOrderCapacity: ZodValidation.number('Max order capacity').optional(),\n productIds: z.array(ZodValidation.objectId()).default([]),\n marketingId: ZodValidation.objectId().optional(),\n});\n\nexport const ParticipantStatusSchema = z.object({\n campaignState: z.nativeEnum(LtoCardState),\n campaign: CampaignSummarySchema.optional(),\n participant: ParticipantSummarySchema.optional(),\n});\n\nexport const ParticipantResponseSchema = createResponseSchema(ParticipantSchema);\nexport const ParticipantStatusResponseSchema = createResponseSchema(ParticipantStatusSchema);\n\nexport type JoinLtoCampaignDTO = DTO<typeof JoinLtoCampaignSchema>;\nexport type ParticipantDTO = DTO<typeof ParticipantSchema>;\nexport type CampaignSummaryDTO = DTO<typeof CampaignSummarySchema>;\nexport type ParticipantSummaryDTO = DTO<typeof ParticipantSummarySchema>;\nexport type ParticipantStatusDTO = DTO<typeof ParticipantStatusSchema>;\nexport type ActiveParticipantMarketingDTO = Pick<ParticipantSummaryDTO, 'marketingId'>;\n// shopCategories are intentionally excluded: the participant record does not persist category\n// selections — they live on the linked marketing doc and are derived from there for display.\nexport type UpdateParticipantDataDTO = Omit<JoinLtoCampaignDTO, 'shopCategories'> & {marketing: ParticipantSummaryDTO['marketingId']};\n"]}
@@ -12,6 +12,7 @@ export declare class LimitedTimeOfferParticipantService {
12
12
  update(shopId: mongoose.Types.ObjectId, dto: JoinLtoCampaignDTO): Promise<DocumentType<import("@lyxa.ai/core/dist/libraries/mongo/models").LimitedTimeOfferParticipant> | null>;
13
13
  getParticipants(dto: GetLtoCampaignParticipantsDTO): Promise<{
14
14
  documents: {
15
+ shopId: mongoose.Types.ObjectId;
15
16
  joinedAt: Date;
16
17
  shopName: string | null;
17
18
  shopPhoto?: string | null | undefined;
@@ -25,8 +26,16 @@ export declare class LimitedTimeOfferParticipantService {
25
26
  totalPages: number;
26
27
  };
27
28
  }>;
28
- private fetchActiveCampaignOrThrow;
29
+ getNearby(campaignId: mongoose.Types.ObjectId, input: {
30
+ latitude: number;
31
+ longitude: number;
32
+ }): Promise<any[]>;
33
+ removeCampaignMarketings(campaignId: mongoose.Types.ObjectId): Promise<void>;
34
+ private fetchCurrentCampaignOrThrow;
29
35
  private assertNotAlreadyJoined;
36
+ private resolveCategorySelection;
37
+ private assertProductsBelongToShop;
38
+ private uniqueObjectIds;
30
39
  private validateDiscountSelections;
31
40
  }
32
41
  export declare const ltoParticipantService: LimitedTimeOfferParticipantService;
@@ -1 +1 @@
1
- {"version":3,"file":"limited-time-offer-participant.service.d.ts","sourceRoot":"/","sources":["modules/limited-time-offer/participant/services/limited-time-offer-participant.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAM5D,OAAO,EAAC,kBAAkB,EAAgB,oBAAoB,EAAC,MAAM,8CAA8C,CAAC;AAGpH,OAAO,EAAC,6BAA6B,EAAC,MAAM,uDAAuD,CAAC;AAEpG,qBACa,kCAAkC;IAC3C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,gBAAgB,CAAiC;;IAQ5C,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,kBAAkB;IAa7D,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgBzE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,kBAAkB;IAuB/D,eAAe,CAAC,GAAG,EAAE,6BAA6B;;;;;;;;;;;;;;;YAQjD,0BAA0B;YAQ1B,sBAAsB;IAMpC,OAAO,CAAC,0BAA0B;CAQrC;AAED,eAAO,MAAM,qBAAqB,oCAAoD,CAAC"}
1
+ {"version":3,"file":"limited-time-offer-participant.service.d.ts","sourceRoot":"/","sources":["modules/limited-time-offer/participant/services/limited-time-offer-participant.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAM9D,OAAO,EACN,kBAAkB,EAElB,oBAAoB,EACpB,MAAM,8CAA8C,CAAC;AAGtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,uDAAuD,CAAC;AAGtG,qBACa,kCAAkC;IAC9C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,gBAAgB,CAAiC;;IAQ5C,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,kBAAkB;IAsB7D,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAWxD,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmBzE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,kBAAkB;IA0B/D,eAAe,CAAC,GAAG,EAAE,6BAA6B;;;;;;;;;;;;;;;;IAalD,SAAS,CACrB,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EACnC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAOlC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAI3E,2BAA2B;YAQ3B,sBAAsB;YActB,wBAAwB;YAqBxB,0BAA0B;IAexC,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,0BAA0B;CAYlC;AAED,eAAO,MAAM,qBAAqB,oCAAoD,CAAC"}
@@ -51,6 +51,7 @@ const limited_time_offer_participant_marketing_service_1 = require("./limited-ti
51
51
  const limited_time_offer_participant_validation_1 = require("../limited-time-offer-participant.validation");
52
52
  const limited_time_offer_participant_builder_1 = require("../limited-time-offer-participant.builder");
53
53
  const limited_time_offer_participant_repository_1 = require("../limited-time-offer-participant.repository");
54
+ const core_1 = require("@lyxa.ai/core");
54
55
  let LimitedTimeOfferParticipantService = class LimitedTimeOfferParticipantService {
55
56
  repository;
56
57
  campaignService;
@@ -61,14 +62,18 @@ let LimitedTimeOfferParticipantService = class LimitedTimeOfferParticipantServic
61
62
  this.marketingService = typedi_1.default.get(limited_time_offer_participant_marketing_service_1.LtoParticipantMarketingService);
62
63
  }
63
64
  async join(shopId, dto) {
64
- const campaign = await this.fetchActiveCampaignOrThrow();
65
+ const campaign = await this.fetchCurrentCampaignOrThrow();
65
66
  await this.assertNotAlreadyJoined(campaign._id, shopId);
66
67
  this.validateDiscountSelections(campaign, dto.discountPercentage, dto.maxDiscountCap);
67
- const marketingId = await this.marketingService.applyMarketing(shopId, campaign, dto);
68
- return this.repository.create(limited_time_offer_participant_builder_1.LtoParticipantQueryBuilder.buildCreateInput(campaign._id, shopId, marketingId, dto));
68
+ await this.assertProductsBelongToShop(shopId, dto);
69
+ const resolvedDto = await this.resolveCategorySelection(shopId, dto);
70
+ const marketingId = await this.marketingService.applyMarketing(shopId, campaign, resolvedDto);
71
+ const participant = await this.repository.create(limited_time_offer_participant_builder_1.LtoParticipantQueryBuilder.buildCreateInput(campaign._id, shopId, marketingId, resolvedDto));
72
+ await this.repository.updateShopOrderCapacity(shopId, resolvedDto.isOrderCapacityEnabled, resolvedDto.maxOrderCapacity);
73
+ return participant;
69
74
  }
70
75
  async withdraw(shopId) {
71
- const campaign = await this.fetchActiveCampaignOrThrow();
76
+ const campaign = await this.fetchCurrentCampaignOrThrow();
72
77
  const participant = await this.repository.withdraw(campaign._id, shopId);
73
78
  if (!participant)
74
79
  throw (0, error_common_1.notFoundError)('You have not joined this campaign.');
@@ -80,30 +85,34 @@ let LimitedTimeOfferParticipantService = class LimitedTimeOfferParticipantServic
80
85
  const campaign = await this.campaignService.getCurrent();
81
86
  if (!campaign)
82
87
  return { campaignState: limited_time_offer_participant_validation_1.LtoCardState.NONE };
83
- if (campaign.status === enum_1.LimitedTimeOfferCampaignStatus.SCHEDULED) {
84
- return { campaignState: limited_time_offer_participant_validation_1.LtoCardState.SCHEDULED, campaign: campaign };
85
- }
86
88
  const participant = await this.repository.findActiveByCampaignAndShop(campaign._id, shopId);
89
+ const campaignState = campaign.status === enum_1.LimitedTimeOfferCampaignStatus.SCHEDULED
90
+ ? limited_time_offer_participant_validation_1.LtoCardState.SCHEDULED
91
+ : campaign.status === enum_1.LimitedTimeOfferCampaignStatus.ACTIVE
92
+ ? limited_time_offer_participant_validation_1.LtoCardState.LIVE
93
+ : limited_time_offer_participant_validation_1.LtoCardState.NONE;
87
94
  return participant
88
- ? { campaignState: limited_time_offer_participant_validation_1.LtoCardState.JOINED, campaign: campaign, participant }
89
- : { campaignState: limited_time_offer_participant_validation_1.LtoCardState.LIVE, campaign: campaign };
95
+ ? { campaignState, campaign: campaign, participant }
96
+ : { campaignState, campaign: campaign };
90
97
  }
91
98
  async update(shopId, dto) {
92
- const campaign = await this.fetchActiveCampaignOrThrow();
99
+ const campaign = await this.fetchCurrentCampaignOrThrow();
93
100
  const participant = await this.repository.findActiveForUpdate(campaign._id, shopId);
94
101
  if (!participant)
95
102
  throw (0, error_common_1.notFoundError)('You have not joined this campaign.');
96
103
  this.validateDiscountSelections(campaign, dto.discountPercentage, dto.maxDiscountCap);
104
+ await this.assertProductsBelongToShop(shopId, dto);
105
+ const resolvedDto = await this.resolveCategorySelection(shopId, dto);
97
106
  const newMarketingId = participant.marketingId
98
- ? await this.marketingService.replaceMarketing(participant.marketingId, shopId, campaign, dto)
99
- : await this.marketingService.applyMarketing(shopId, campaign, dto);
107
+ ? await this.marketingService.replaceMarketing(participant.marketingId, shopId, campaign, resolvedDto)
108
+ : await this.marketingService.applyMarketing(shopId, campaign, resolvedDto);
100
109
  return this.repository.updateParticipant(campaign._id, shopId, {
101
- products: dto.products ?? [],
102
- isEntireMenu: dto.isEntireMenu,
103
- discountPercentage: dto.discountPercentage,
104
- maxDiscountCap: dto.maxDiscountCap,
105
- isOrderCapacityEnabled: dto.isOrderCapacityEnabled,
106
- maxOrderCapacity: dto.maxOrderCapacity,
110
+ products: resolvedDto.products ?? [],
111
+ isEntireMenu: resolvedDto.isEntireMenu,
112
+ discountPercentage: resolvedDto.discountPercentage,
113
+ maxDiscountCap: resolvedDto.maxDiscountCap,
114
+ isOrderCapacityEnabled: resolvedDto.isOrderCapacityEnabled,
115
+ maxOrderCapacity: resolvedDto.maxOrderCapacity,
107
116
  marketing: newMarketingId,
108
117
  });
109
118
  }
@@ -111,13 +120,26 @@ let LimitedTimeOfferParticipantService = class LimitedTimeOfferParticipantServic
111
120
  const { documents, total } = await this.repository.findByCampaign(dto);
112
121
  return {
113
122
  documents,
114
- metadata: { page: dto.page, size: dto.size, totalElements: total, totalPages: Math.ceil(total / dto.size) },
123
+ metadata: {
124
+ page: dto.page,
125
+ size: dto.size,
126
+ totalElements: total,
127
+ totalPages: Math.ceil(total / dto.size),
128
+ },
115
129
  };
116
130
  }
117
- async fetchActiveCampaignOrThrow() {
131
+ async getNearby(campaignId, input) {
132
+ const settings = (await (0, core_1.getLibraries)().getCachedSettingsService().getSettings());
133
+ const nearByShopDistance = settings.nearByShopDistance || 10000;
134
+ return this.repository.findNearby(campaignId, input, nearByShopDistance);
135
+ }
136
+ async removeCampaignMarketings(campaignId) {
137
+ await this.marketingService.removeAllCampaignMarketings(campaignId);
138
+ }
139
+ async fetchCurrentCampaignOrThrow() {
118
140
  const campaign = await this.campaignService.getCurrent();
119
- if (!campaign || campaign.status !== enum_1.LimitedTimeOfferCampaignStatus.ACTIVE) {
120
- throw (0, error_common_1.badRequestError)('No active campaign is currently running.');
141
+ if (!campaign) {
142
+ throw (0, error_common_1.badRequestError)('No campaign active or scheduled.');
121
143
  }
122
144
  return campaign;
123
145
  }
@@ -126,6 +148,30 @@ let LimitedTimeOfferParticipantService = class LimitedTimeOfferParticipantServic
126
148
  throw (0, error_common_1.conflictError)('Your shop has already joined this campaign.');
127
149
  }
128
150
  }
151
+ async resolveCategorySelection(shopId, dto) {
152
+ if (dto.isEntireMenu || !dto.shopCategories?.length)
153
+ return dto;
154
+ const categoryProductIds = await this.repository.findProductIdsByCategories(shopId, dto.shopCategories);
155
+ const products = this.uniqueObjectIds([...(dto.products ?? []), ...categoryProductIds]);
156
+ if (products.length === 0) {
157
+ throw (0, error_common_1.badRequestError)('The selected categories do not contain any products.');
158
+ }
159
+ return { ...dto, products };
160
+ }
161
+ async assertProductsBelongToShop(shopId, dto) {
162
+ if (dto.isEntireMenu)
163
+ return;
164
+ const productIds = this.uniqueObjectIds(dto.products ?? []);
165
+ if (!productIds.length)
166
+ return;
167
+ const owned = await this.repository.countShopProducts(shopId, productIds);
168
+ if (owned !== productIds.length) {
169
+ throw (0, error_common_1.badRequestError)('One or more selected products do not belong to your shop.');
170
+ }
171
+ }
172
+ uniqueObjectIds(ids) {
173
+ return [...new Map(ids.map(id => [id.toString(), id])).values()];
174
+ }
129
175
  validateDiscountSelections(campaign, discountPercentage, maxDiscountCap) {
130
176
  if (!campaign.discountOptions.includes(discountPercentage)) {
131
177
  throw (0, error_common_1.badRequestError)('Selected discount is not an available option for this campaign.');