@lyxa.ai/marketing 1.0.64 → 1.0.65

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 (311) hide show
  1. package/dist/lib/event/event-initializations.d.ts.map +1 -1
  2. package/dist/lib/event/event-initializations.js +0 -1
  3. package/dist/lib/event/event-initializations.js.map +1 -1
  4. package/dist/lib/event/event-listeners/event-listeners.d.ts +0 -1
  5. package/dist/lib/event/event-listeners/event-listeners.d.ts.map +1 -1
  6. package/dist/lib/event/event-listeners/event-listeners.js +12 -62
  7. package/dist/lib/event/event-listeners/event-listeners.js.map +1 -1
  8. package/dist/lib/event/events/marketing-product-seed.event.d.ts +2 -1
  9. package/dist/lib/event/events/marketing-product-seed.event.d.ts.map +1 -1
  10. package/dist/lib/event/events/marketing-product-seed.event.js.map +1 -1
  11. package/dist/lib/index.d.ts +21 -12030
  12. package/dist/lib/index.d.ts.map +1 -1
  13. package/dist/lib/index.js.map +1 -1
  14. package/dist/lib/modules/coupon/routers/coupon.router.d.ts +1101 -27
  15. package/dist/lib/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  16. package/dist/lib/modules/coupon/services/coupon.service.d.ts +1 -1
  17. package/dist/lib/modules/coupon/services/coupon.service.js +1 -1
  18. package/dist/lib/modules/coupon/services/coupon.service.js.map +1 -1
  19. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts.map +1 -1
  20. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.js +21 -6
  21. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.js.map +1 -1
  22. package/dist/lib/modules/coupon/services/referral-reward-coupon.service.d.ts.map +1 -1
  23. package/dist/lib/modules/coupon/services/referral-reward-coupon.service.js +1 -0
  24. package/dist/lib/modules/coupon/services/referral-reward-coupon.service.js.map +1 -1
  25. package/dist/lib/modules/coupon/transformers/coupon.transformer.d.ts +50 -0
  26. package/dist/lib/modules/coupon/transformers/coupon.transformer.d.ts.map +1 -1
  27. package/dist/lib/modules/coupon/validations/all-coupons.validation.d.ts +828 -6
  28. package/dist/lib/modules/coupon/validations/all-coupons.validation.d.ts.map +1 -1
  29. package/dist/lib/modules/coupon/validations/coupon.validation.d.ts +30 -30
  30. package/dist/lib/modules/coupon/validations/create-coupon.validation.d.ts +98 -0
  31. package/dist/lib/modules/coupon/validations/create-coupon.validation.d.ts.map +1 -1
  32. package/dist/lib/modules/coupon/validations/referral-reward-coupon.validation.d.ts +374 -0
  33. package/dist/lib/modules/coupon/validations/referral-reward-coupon.validation.d.ts.map +1 -1
  34. package/dist/lib/modules/coupon/validations/referral-reward-coupon.validation.js +2 -0
  35. package/dist/lib/modules/coupon/validations/referral-reward-coupon.validation.js.map +1 -1
  36. package/dist/lib/modules/deal-setting/routers/deal-setting.router.d.ts +9 -9
  37. package/dist/lib/modules/deal-setting/routers/deal-setting.router.d.ts.map +1 -1
  38. package/dist/lib/modules/deal-setting/validations/deal-setting.validation.d.ts +6 -6
  39. package/dist/lib/modules/featured-setting/routers/featured-setting.router.d.ts +8 -8
  40. package/dist/lib/modules/featured-setting/routers/featured-setting.router.d.ts.map +1 -1
  41. package/dist/lib/modules/featured-setting/validations/featured-setting.validation.d.ts +6 -6
  42. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.d.ts +7 -7
  43. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.d.ts.map +1 -1
  44. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.js +2 -0
  45. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.js.map +1 -1
  46. package/dist/lib/modules/limited-time-offer/campaign/jobs/index.d.ts.map +1 -1
  47. package/dist/lib/modules/limited-time-offer/campaign/jobs/index.js +4 -1
  48. package/dist/lib/modules/limited-time-offer/campaign/jobs/index.js.map +1 -1
  49. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts +36 -36
  50. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts.map +1 -1
  51. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.js +7 -2
  52. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.js.map +1 -1
  53. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.d.ts +1 -0
  54. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.d.ts.map +1 -1
  55. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.js +13 -2
  56. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.js.map +1 -1
  57. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts.map +1 -1
  58. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.js +7 -2
  59. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.js.map +1 -1
  60. package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.validation.d.ts +6 -6
  61. package/dist/lib/modules/limited-time-offer/config/limited-time-offer.router.d.ts +3 -3
  62. package/dist/lib/modules/limited-time-offer/limited-time-offer.router.d.ts +18 -18
  63. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.d.ts.map +1 -1
  64. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.js +3 -0
  65. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.js.map +1 -1
  66. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts +7 -7
  67. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts.map +1 -1
  68. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.js +5 -0
  69. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.js.map +1 -1
  70. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.service.d.ts +1 -0
  71. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.service.d.ts.map +1 -0
  72. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.service.js +2 -0
  73. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.service.js.map +1 -0
  74. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts +19 -19
  75. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts +1 -0
  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 +18 -1
  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/routers/marketing.router.d.ts +14 -3
  80. package/dist/lib/modules/marketing/routers/marketing.router.d.ts.map +1 -1
  81. package/dist/lib/modules/marketing/routers/marketing.router.js +4 -0
  82. package/dist/lib/modules/marketing/routers/marketing.router.js.map +1 -1
  83. package/dist/lib/modules/marketing/services/marketing.service.d.ts +1 -2
  84. package/dist/lib/modules/marketing/services/marketing.service.d.ts.map +1 -1
  85. package/dist/lib/modules/marketing/services/marketing.service.js +85 -77
  86. package/dist/lib/modules/marketing/services/marketing.service.js.map +1 -1
  87. package/dist/lib/modules/marketing/services/product-marketing.service.d.ts +3 -1
  88. package/dist/lib/modules/marketing/services/product-marketing.service.d.ts.map +1 -1
  89. package/dist/lib/modules/marketing/services/product-marketing.service.js +13 -10
  90. package/dist/lib/modules/marketing/services/product-marketing.service.js.map +1 -1
  91. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.d.ts +13 -0
  92. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.d.ts.map +1 -1
  93. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.js +24 -0
  94. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.js.map +1 -1
  95. package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.d.ts.map +1 -1
  96. package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.js +27 -95
  97. package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.js.map +1 -1
  98. package/dist/lib/modules/marketing/validations/all-marketings.validation.d.ts +4 -4
  99. package/dist/lib/modules/marketing/validations/buy1-get1-marketing.validation.d.ts +3 -3
  100. package/dist/lib/modules/marketing/validations/discount-marketing.validation.d.ts +3 -3
  101. package/dist/lib/modules/marketing/validations/marketing.validation.d.ts +8 -0
  102. package/dist/lib/modules/marketing/validations/marketing.validation.d.ts.map +1 -1
  103. package/dist/lib/modules/marketing/validations/marketing.validation.js +4 -1
  104. package/dist/lib/modules/marketing/validations/marketing.validation.js.map +1 -1
  105. package/dist/lib/modules/marketing/validations/product-marketing.validation.d.ts +2 -2
  106. package/dist/lib/modules/marketing/validations/punch-marketing.validation.d.ts +4 -4
  107. package/dist/lib/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +12 -12
  108. package/dist/lib/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts.map +1 -1
  109. package/dist/lib/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +8 -8
  110. package/dist/lib/modules/referral-setting/routers/referral-setting.router.d.ts +4 -4
  111. package/dist/lib/modules/referral-setting/validations/referral-setting.validation.d.ts +6 -6
  112. package/dist/lib/modules/referral-setting/validations/referral-setting.validation.d.ts.map +1 -1
  113. package/dist/lib/modules/referral-setting/validations/referral-setting.validation.js.map +1 -1
  114. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.d.ts +3 -2
  115. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.d.ts.map +1 -1
  116. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.js +11 -3
  117. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.js.map +1 -1
  118. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.d.ts +26 -10
  119. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.d.ts.map +1 -1
  120. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.d.ts +2 -2
  121. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.d.ts.map +1 -1
  122. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.js.map +1 -1
  123. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.d.ts +25 -6
  124. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.d.ts.map +1 -1
  125. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.js +1 -0
  126. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.js.map +1 -1
  127. package/dist/lib/modules/tournament/config/config.router.d.ts +4 -4
  128. package/dist/lib/modules/tournament/config/config.validation.d.ts +12 -12
  129. package/dist/lib/modules/tournament/match/match.router.d.ts +5 -5
  130. package/dist/lib/modules/tournament/match/match.validation.d.ts +12 -12
  131. package/dist/lib/modules/tournament/participant/participant.router.d.ts +3 -3
  132. package/dist/lib/modules/tournament/participant/participant.validation.d.ts +24 -24
  133. package/dist/lib/modules/tournament/prediction/prediction.router.d.ts +3 -3
  134. package/dist/lib/modules/tournament/prediction/prediction.validation.d.ts +18 -18
  135. package/dist/lib/modules/tournament/score/score.router.d.ts +1 -1
  136. package/dist/lib/modules/tournament/score/score.validation.d.ts +6 -6
  137. package/dist/lib/modules/tournament/statistics/statistics.router.d.ts +1 -1
  138. package/dist/lib/modules/tournament/statistics/statistics.validation.d.ts +6 -6
  139. package/dist/lib/modules/tournament/team/team.router.d.ts +3 -3
  140. package/dist/lib/modules/tournament/team/team.validation.d.ts +18 -18
  141. package/dist/lib/modules/tournament/tournament.router.d.ts +21 -21
  142. package/dist/lib/modules/tournament/tournament.validation.d.ts +6 -6
  143. package/dist/lib/utility/feature-flags.d.ts +3 -0
  144. package/dist/lib/utility/feature-flags.d.ts.map +1 -0
  145. package/dist/lib/utility/feature-flags.js +16 -0
  146. package/dist/lib/utility/feature-flags.js.map +1 -0
  147. package/dist/types/event/event-initializations.d.ts.map +1 -1
  148. package/dist/types/event/event-listeners/event-listeners.d.ts +0 -1
  149. package/dist/types/event/event-listeners/event-listeners.d.ts.map +1 -1
  150. package/dist/types/event/events/marketing-product-seed.event.d.ts +2 -1
  151. package/dist/types/event/events/marketing-product-seed.event.d.ts.map +1 -1
  152. package/dist/types/index.d.ts +21 -12030
  153. package/dist/types/index.d.ts.map +1 -1
  154. package/dist/types/modules/coupon/routers/coupon.router.d.ts +1101 -27
  155. package/dist/types/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  156. package/dist/types/modules/coupon/services/coupon.service.d.ts +1 -1
  157. package/dist/types/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts.map +1 -1
  158. package/dist/types/modules/coupon/services/referral-reward-coupon.service.d.ts.map +1 -1
  159. package/dist/types/modules/coupon/transformers/coupon.transformer.d.ts +50 -0
  160. package/dist/types/modules/coupon/transformers/coupon.transformer.d.ts.map +1 -1
  161. package/dist/types/modules/coupon/validations/all-coupons.validation.d.ts +828 -6
  162. package/dist/types/modules/coupon/validations/all-coupons.validation.d.ts.map +1 -1
  163. package/dist/types/modules/coupon/validations/coupon.validation.d.ts +30 -30
  164. package/dist/types/modules/coupon/validations/create-coupon.validation.d.ts +98 -0
  165. package/dist/types/modules/coupon/validations/create-coupon.validation.d.ts.map +1 -1
  166. package/dist/types/modules/coupon/validations/referral-reward-coupon.validation.d.ts +374 -0
  167. package/dist/types/modules/coupon/validations/referral-reward-coupon.validation.d.ts.map +1 -1
  168. package/dist/types/modules/deal-setting/routers/deal-setting.router.d.ts +9 -9
  169. package/dist/types/modules/deal-setting/routers/deal-setting.router.d.ts.map +1 -1
  170. package/dist/types/modules/deal-setting/validations/deal-setting.validation.d.ts +6 -6
  171. package/dist/types/modules/featured-setting/routers/featured-setting.router.d.ts +8 -8
  172. package/dist/types/modules/featured-setting/routers/featured-setting.router.d.ts.map +1 -1
  173. package/dist/types/modules/featured-setting/validations/featured-setting.validation.d.ts +6 -6
  174. package/dist/types/modules/limited-time-offer/campaign/campaign.router.d.ts +7 -7
  175. package/dist/types/modules/limited-time-offer/campaign/campaign.router.d.ts.map +1 -1
  176. package/dist/types/modules/limited-time-offer/campaign/jobs/index.d.ts.map +1 -1
  177. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts +36 -36
  178. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts.map +1 -1
  179. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.d.ts +1 -0
  180. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.d.ts.map +1 -1
  181. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts.map +1 -1
  182. package/dist/types/modules/limited-time-offer/config/limited-time-offer-config.validation.d.ts +6 -6
  183. package/dist/types/modules/limited-time-offer/config/limited-time-offer.router.d.ts +3 -3
  184. package/dist/types/modules/limited-time-offer/limited-time-offer.router.d.ts +18 -18
  185. package/dist/types/modules/limited-time-offer/limited-time-offer.service.d.ts.map +1 -1
  186. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts +7 -7
  187. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts.map +1 -1
  188. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts +19 -19
  189. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts +1 -0
  190. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts.map +1 -1
  191. package/dist/types/modules/marketing/routers/marketing.router.d.ts +14 -3
  192. package/dist/types/modules/marketing/routers/marketing.router.d.ts.map +1 -1
  193. package/dist/types/modules/marketing/services/marketing.service.d.ts +1 -2
  194. package/dist/types/modules/marketing/services/marketing.service.d.ts.map +1 -1
  195. package/dist/types/modules/marketing/services/product-marketing.service.d.ts +3 -1
  196. package/dist/types/modules/marketing/services/product-marketing.service.d.ts.map +1 -1
  197. package/dist/types/modules/marketing/services/spend-to-get-progress.service.d.ts +18 -0
  198. package/dist/types/modules/marketing/services/spend-to-get-progress.service.d.ts.map +1 -1
  199. package/dist/types/modules/marketing/services/synchronize-product-marketing.service.d.ts.map +1 -1
  200. package/dist/types/modules/marketing/validations/all-marketings.validation.d.ts +4 -4
  201. package/dist/types/modules/marketing/validations/buy1-get1-marketing.validation.d.ts +3 -3
  202. package/dist/types/modules/marketing/validations/discount-marketing.validation.d.ts +3 -3
  203. package/dist/types/modules/marketing/validations/marketing.validation.d.ts +8 -0
  204. package/dist/types/modules/marketing/validations/marketing.validation.d.ts.map +1 -1
  205. package/dist/types/modules/marketing/validations/product-marketing.validation.d.ts +2 -2
  206. package/dist/types/modules/marketing/validations/punch-marketing.validation.d.ts +4 -4
  207. package/dist/types/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +12 -12
  208. package/dist/types/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts.map +1 -1
  209. package/dist/types/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +8 -8
  210. package/dist/types/modules/referral-setting/routers/referral-setting.router.d.ts +4 -4
  211. package/dist/types/modules/referral-setting/validations/referral-setting.validation.d.ts +6 -6
  212. package/dist/types/modules/referral-setting/validations/referral-setting.validation.d.ts.map +1 -1
  213. package/dist/types/modules/spend-to-get-history/spend-to-get-history.repository.d.ts +3 -2
  214. package/dist/types/modules/spend-to-get-history/spend-to-get-history.repository.d.ts.map +1 -1
  215. package/dist/types/modules/spend-to-get-history/spend-to-get-history.router.d.ts +26 -10
  216. package/dist/types/modules/spend-to-get-history/spend-to-get-history.router.d.ts.map +1 -1
  217. package/dist/types/modules/spend-to-get-history/spend-to-get-history.service.d.ts +2 -2
  218. package/dist/types/modules/spend-to-get-history/spend-to-get-history.service.d.ts.map +1 -1
  219. package/dist/types/modules/spend-to-get-history/spend-to-get-history.validation.d.ts +25 -6
  220. package/dist/types/modules/spend-to-get-history/spend-to-get-history.validation.d.ts.map +1 -1
  221. package/dist/types/modules/tournament/config/config.router.d.ts +4 -4
  222. package/dist/types/modules/tournament/config/config.validation.d.ts +12 -12
  223. package/dist/types/modules/tournament/match/match.router.d.ts +5 -5
  224. package/dist/types/modules/tournament/match/match.validation.d.ts +12 -12
  225. package/dist/types/modules/tournament/participant/participant.router.d.ts +3 -3
  226. package/dist/types/modules/tournament/participant/participant.validation.d.ts +24 -24
  227. package/dist/types/modules/tournament/prediction/prediction.router.d.ts +3 -3
  228. package/dist/types/modules/tournament/prediction/prediction.validation.d.ts +18 -18
  229. package/dist/types/modules/tournament/score/score.router.d.ts +1 -1
  230. package/dist/types/modules/tournament/score/score.validation.d.ts +6 -6
  231. package/dist/types/modules/tournament/statistics/statistics.router.d.ts +1 -1
  232. package/dist/types/modules/tournament/statistics/statistics.validation.d.ts +6 -6
  233. package/dist/types/modules/tournament/team/team.router.d.ts +3 -3
  234. package/dist/types/modules/tournament/team/team.validation.d.ts +18 -18
  235. package/dist/types/modules/tournament/tournament.router.d.ts +21 -21
  236. package/dist/types/modules/tournament/tournament.validation.d.ts +6 -6
  237. package/dist/types/utility/feature-flags.d.ts +12 -0
  238. package/dist/types/utility/feature-flags.d.ts.map +1 -0
  239. package/package.json +2 -2
  240. package/dist/lib/modules/spend-to-get-history/routers/index.d.ts +0 -2
  241. package/dist/lib/modules/spend-to-get-history/routers/index.d.ts.map +0 -1
  242. package/dist/lib/modules/spend-to-get-history/routers/index.js +0 -18
  243. package/dist/lib/modules/spend-to-get-history/routers/index.js.map +0 -1
  244. package/dist/lib/modules/spend-to-get-history/routers/spend-to-get-history.router.js +0 -62
  245. package/dist/lib/modules/spend-to-get-history/routers/spend-to-get-history.router.js.map +0 -1
  246. package/dist/lib/modules/spend-to-get-history/services/index.d.ts +0 -2
  247. package/dist/lib/modules/spend-to-get-history/services/index.d.ts.map +0 -1
  248. package/dist/lib/modules/spend-to-get-history/services/index.js +0 -18
  249. package/dist/lib/modules/spend-to-get-history/services/index.js.map +0 -1
  250. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts +0 -24
  251. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts.map +0 -1
  252. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.js +0 -136
  253. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.js.map +0 -1
  254. package/dist/lib/modules/spend-to-get-history/validations/index.d.ts +0 -2
  255. package/dist/lib/modules/spend-to-get-history/validations/index.d.ts.map +0 -1
  256. package/dist/lib/modules/spend-to-get-history/validations/index.js +0 -18
  257. package/dist/lib/modules/spend-to-get-history/validations/index.js.map +0 -1
  258. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts +0 -232
  259. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts.map +0 -1
  260. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.js +0 -30
  261. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.js.map +0 -1
  262. package/dist/lib/modules/tournament/match/events/match-ended.consumer.d.ts +0 -2
  263. package/dist/lib/modules/tournament/match/events/match-ended.consumer.d.ts.map +0 -1
  264. package/dist/lib/modules/tournament/match/events/match-ended.consumer.js +0 -15
  265. package/dist/lib/modules/tournament/match/events/match-ended.consumer.js.map +0 -1
  266. package/dist/lib/modules/tournament/match/events/match-ended.event.d.ts +0 -14
  267. package/dist/lib/modules/tournament/match/events/match-ended.event.d.ts.map +0 -1
  268. package/dist/lib/modules/tournament/match/events/match-ended.event.js +0 -12
  269. package/dist/lib/modules/tournament/match/events/match-ended.event.js.map +0 -1
  270. package/dist/lib/modules/tournament/notification/jobs/notification.producer.d.ts +0 -10
  271. package/dist/lib/modules/tournament/notification/jobs/notification.producer.d.ts.map +0 -1
  272. package/dist/lib/modules/tournament/notification/jobs/notification.producer.js +0 -23
  273. package/dist/lib/modules/tournament/notification/jobs/notification.producer.js.map +0 -1
  274. package/dist/lib/modules/tournament/notification/jobs/notification.worker.d.ts +0 -9
  275. package/dist/lib/modules/tournament/notification/jobs/notification.worker.d.ts.map +0 -1
  276. package/dist/lib/modules/tournament/notification/jobs/notification.worker.js +0 -82
  277. package/dist/lib/modules/tournament/notification/jobs/notification.worker.js.map +0 -1
  278. package/dist/lib/modules/tournament/notification/notification.schedule.config.d.ts +0 -10
  279. package/dist/lib/modules/tournament/notification/notification.schedule.config.d.ts.map +0 -1
  280. package/dist/lib/modules/tournament/notification/notification.schedule.config.js +0 -15
  281. package/dist/lib/modules/tournament/notification/notification.schedule.config.js.map +0 -1
  282. package/dist/lib/modules/tournament/notification/notification.scheduler.service.d.ts +0 -10
  283. package/dist/lib/modules/tournament/notification/notification.scheduler.service.d.ts.map +0 -1
  284. package/dist/lib/modules/tournament/notification/notification.scheduler.service.js +0 -73
  285. package/dist/lib/modules/tournament/notification/notification.scheduler.service.js.map +0 -1
  286. package/dist/types/events/event-initializations.d.ts +0 -2
  287. package/dist/types/events/event-initializations.d.ts.map +0 -1
  288. package/dist/types/modules/spend-to-get-history/routers/index.d.ts +0 -2
  289. package/dist/types/modules/spend-to-get-history/routers/index.d.ts.map +0 -1
  290. package/dist/types/modules/spend-to-get-history/services/index.d.ts +0 -2
  291. package/dist/types/modules/spend-to-get-history/services/index.d.ts.map +0 -1
  292. package/dist/types/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts +0 -56
  293. package/dist/types/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts.map +0 -1
  294. package/dist/types/modules/spend-to-get-history/validations/index.d.ts +0 -2
  295. package/dist/types/modules/spend-to-get-history/validations/index.d.ts.map +0 -1
  296. package/dist/types/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts +0 -241
  297. package/dist/types/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts.map +0 -1
  298. package/dist/types/modules/tournament/config/tournament-config.validation.d.ts +0 -201
  299. package/dist/types/modules/tournament/config/tournament-config.validation.d.ts.map +0 -1
  300. package/dist/types/modules/tournament/match/events/match-ended.consumer.d.ts +0 -2
  301. package/dist/types/modules/tournament/match/events/match-ended.consumer.d.ts.map +0 -1
  302. package/dist/types/modules/tournament/match/events/match-ended.event.d.ts +0 -14
  303. package/dist/types/modules/tournament/match/events/match-ended.event.d.ts.map +0 -1
  304. package/dist/types/modules/tournament/notification/jobs/notification.producer.d.ts +0 -10
  305. package/dist/types/modules/tournament/notification/jobs/notification.producer.d.ts.map +0 -1
  306. package/dist/types/modules/tournament/notification/jobs/notification.worker.d.ts +0 -9
  307. package/dist/types/modules/tournament/notification/jobs/notification.worker.d.ts.map +0 -1
  308. package/dist/types/modules/tournament/notification/notification.schedule.config.d.ts +0 -10
  309. package/dist/types/modules/tournament/notification/notification.schedule.config.d.ts.map +0 -1
  310. package/dist/types/modules/tournament/notification/notification.scheduler.service.d.ts +0 -10
  311. package/dist/types/modules/tournament/notification/notification.scheduler.service.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"marketing.router.js","sourceRoot":"/","sources":["modules/marketing/routers/marketing.router.ts"],"names":[],"mappings":"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","sourcesContent":["import { createTRPCRouter, publicProcedure } from '@lyxa.ai/core/dist/libraries/trpc';\nimport { createAuthenticatedProcedure } from '@lyxa.ai/core/dist/libraries/trpc/middlewares/auth';\nimport { marketingService as service } from '@modules/marketing/services';\nimport { synchronizeProductMarketingService as syncMarketingProductInfoService } from '@modules/marketing/services';\nimport { spendToGetProgressService } from '@modules/marketing/services';\nimport {\n\tAllMarketingsValidationSchema,\n\tMarketingResponseSchema as ResponseSchema,\n\tAllMarketingsUpdateSchema,\n\tProductEntireMenuMarketingHandlerSchema,\n\tMarketingSpendLimitsEvaluationSchema,\n\tSyncProductMarketingForMultipleProductsSchema,\n\tMarketingGraphInputSchema,\n\tSpendToGetProgressInputSchema,\n} from '@modules/marketing/validations';\nimport { response } from '@lyxa.ai/core/dist/utilities/response';\nimport {\n\tFilterSchema,\n\tDeleteSchema,\n\tGetByIdInputSchema,\n\tIdSchema,\n} from '@lyxa.ai/core/dist/utilities/validation';\nimport { ErrorHandler } from '@lyxa.ai/core/dist/utilities/error-handler';\nimport { AuthEntityType } from '@lyxa.ai/core/dist/libraries/auth';\nimport { mongoose } from '@typegoose/typegoose';\nimport { marketingMetricsRepository } from '../patterns/repository/MarketingMetricsRepository';\n\nexport const marketingRouter = createTRPCRouter({\n\tcreate: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM, AuthEntityType.SELLER] })\n\t\t.input(AllMarketingsValidationSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst isAdmin = ctx.entity?.type == AuthEntityType.CRM;\n\t\t\t\tawait service.create(input, isAdmin ? new mongoose.Types.ObjectId(ctx.entity?.id) : undefined);\n\t\t\t\treturn response('Marketing created successfully');\n\t\t\t})\n\t\t),\n\n\tgetById: publicProcedure.input(GetByIdInputSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await service.findById(input);\n\t\t\treturn response('Marketing fetched successfully', result);\n\t\t})\n\t),\n\n\tget: publicProcedure.input(FilterSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await service.find(input);\n\t\t\treturn response('Marketing fetched successfully', result);\n\t\t})\n\t),\n\n\tupdate: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM, AuthEntityType.SELLER] })\n\t\t.input(AllMarketingsUpdateSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst { _id, ...rest } = input;\n\t\t\t\tconst isAdmin = ctx.entity?.type == AuthEntityType.CRM;\n\n\t\t\t\tawait service.update(_id, rest, isAdmin ? new mongoose.Types.ObjectId(ctx.entity?.id) : undefined);\n\t\t\t\treturn response('Marketing updated successfully');\n\t\t\t})\n\t\t),\n\n\tdeleteById: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM, AuthEntityType.SELLER] })\n\t\t.input(DeleteSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst isAdmin = ctx.entity?.type == AuthEntityType.CRM;\n\t\t\t\tawait service.deleteById(input, isAdmin ? new mongoose.Types.ObjectId(ctx.entity?.id) : undefined);\n\t\t\t\treturn response('Marketing deleted successfully');\n\t\t\t})\n\t\t),\n\n\thandleNewProductForEntireMenuMarketing: publicProcedure\n\t\t.input(ProductEntireMenuMarketingHandlerSchema)\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tawait service.handleNewProductForEntireMenuMarketing(input);\n\t\t\t\treturn response('Product handled successfully');\n\t\t\t})\n\t\t),\n\n\tsyncAllProductsMarketingInfo: publicProcedure.query(async ({}) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\treturn await syncMarketingProductInfoService.publishAllProductsProductMarketingInfoProcessEvent();\n\t\t})\n\t),\n\n\tsyncAllProductsMarketingInfoLocal: publicProcedure.mutation(async ({}) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\treturn await syncMarketingProductInfoService.syncAllProductsMarketingInfo();\n\t\t})\n\t),\n\n\t// DEV purpose only\n\tsyncProductMarketingInfoByProductId: publicProcedure.query(async ({}) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst productId = new mongoose.Types.ObjectId('68f663c355f42c826a129fc6'); // Todo: use productId sent from param\n\t\t\treturn await syncMarketingProductInfoService.syncProductMarketingInfoByProductId(productId);\n\t\t})\n\t),\n\n\tsyncProductMarketingInfoByProductIds: publicProcedure\n\t\t.input(SyncProductMarketingForMultipleProductsSchema)\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\treturn await syncMarketingProductInfoService.syncProductMarketingInfoByProductIds(input.productIds);\n\t\t\t})\n\t\t),\n\n\tcalculateMarketingSpent: publicProcedure.input(IdSchema).mutation(async ({ ctx, input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await marketingMetricsRepository.calculateMarketingSpent(input);\n\t\t\treturn response('Marketing amount spent calculated successfully', result);\n\t\t})\n\t),\n\n\tincrementMarketingSpentFromOrder: publicProcedure.input(IdSchema).mutation(async ({ ctx, input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await service.incrementMarketingSpentFromOrder(input);\n\t\t\treturn response('Marketing amount spent incremented successfully', result);\n\t\t})\n\t),\n\n\tdecrementMarketingSpentFromOrder: publicProcedure.input(IdSchema).mutation(async ({ ctx, input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await service.decrementMarketingSpentFromOrder(input);\n\t\t\treturn response('Marketing amount spent decremented successfully', result);\n\t\t})\n\t),\n\n\trecomputeAndSyncAllMarketingSpent: publicProcedure.mutation(async ({}) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await service.recomputeAndSyncAllMarketingSpent();\n\t\t\treturn response('Marketing amount spent recomputed and synced successfully', result);\n\t\t})\n\t),\n \n\tgetMetrics: publicProcedure.input(IdSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await marketingMetricsRepository.getMetrics(input);\n\t\t\treturn response('Marketing metrics fetched successfully', result);\n\t\t})\n\t),\n \n\tgetOrdersGraph: publicProcedure.input(MarketingGraphInputSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await marketingMetricsRepository.getOrdersGraph(input);\n\t\t\treturn response('Marketing orders graph data fetched successfully', result);\n\t\t})\n\t),\n\n\tgetCustomersGraph: publicProcedure.input(MarketingGraphInputSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await marketingMetricsRepository.getCustomersGraph(input);\n\t\t\treturn response('Marketing customers graph data fetched successfully', result);\n\t\t})\n\t),\n\n\tgetAmountSpentGraph: publicProcedure.input(MarketingGraphInputSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await marketingMetricsRepository.getAmountSpentGraph(input);\n\t\t\treturn response('Marketing amount spent graph data fetched successfully', result);\n\t\t})\n\t),\n\n\tgetSpendToGetProgress: publicProcedure.input(SpendToGetProgressInputSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await spendToGetProgressService.getProgress(input);\n\t\t\treturn response('Spend to get progress fetched successfully', result);\n\t\t})\n\t),\n\n\treseedEntireMenuMarketing: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM] })\n\t\t.input(IdSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tawait service.reseedEntireMenuMarketing(new mongoose.Types.ObjectId(input));\n\t\t\t\treturn response('Entire menu marketing reseed dispatched successfully');\n\t\t\t})\n\t\t),\n});\n"]}
1
+ {"version":3,"file":"marketing.router.js","sourceRoot":"/","sources":["modules/marketing/routers/marketing.router.ts"],"names":[],"mappings":";;;AAAA,4DAAsF;AACtF,6EAAkG;AAClG,0DAA0E;AAC1E,0DAAoH;AACpH,0DAAwE;AACxE,gEAUwC;AACxC,oEAAiE;AACjE,wEAKiD;AACjD,8EAA0E;AAC1E,4DAAmE;AACnE,oDAAgD;AAChD,kGAA+F;AAElF,QAAA,eAAe,GAAG,IAAA,uBAAgB,EAAC;IAC/C,MAAM,EAAE,IAAA,mCAA4B,EAAC,EAAE,WAAW,EAAE,CAAC,qBAAc,CAAC,GAAG,EAAE,qBAAc,CAAC,MAAM,CAAC,EAAE,CAAC;SAChG,KAAK,CAAC,2CAA6B,CAAC;SACpC,MAAM,CAAC,qCAAc,CAAC;SACtB,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAClC,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,qBAAc,CAAC,GAAG,CAAC;QACvD,MAAM,2BAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,oBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC/F,OAAO,IAAA,mBAAQ,EAAC,gCAAgC,CAAC,CAAC;IACnD,CAAC,CAAC,CACF;IAEF,OAAO,EAAE,sBAAe,CAAC,KAAK,CAAC,+BAAkB,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC5E,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,2BAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,IAAA,mBAAQ,EAAC,gCAAgC,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC,CACF;IAED,GAAG,EAAE,sBAAe,CAAC,KAAK,CAAC,yBAAY,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAClE,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,2BAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,IAAA,mBAAQ,EAAC,gCAAgC,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC,CACF;IAED,MAAM,EAAE,IAAA,mCAA4B,EAAC,EAAE,WAAW,EAAE,CAAC,qBAAc,CAAC,GAAG,EAAE,qBAAc,CAAC,MAAM,CAAC,EAAE,CAAC;SAChG,KAAK,CAAC,uCAAyB,CAAC;SAChC,MAAM,CAAC,qCAAc,CAAC;SACtB,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAClC,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;QAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,qBAAc,CAAC,GAAG,CAAC;QAEvD,MAAM,2BAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,oBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACnG,OAAO,IAAA,mBAAQ,EAAC,gCAAgC,CAAC,CAAC;IACnD,CAAC,CAAC,CACF;IAEF,UAAU,EAAE,IAAA,mCAA4B,EAAC,EAAE,WAAW,EAAE,CAAC,qBAAc,CAAC,GAAG,EAAE,qBAAc,CAAC,MAAM,CAAC,EAAE,CAAC;SACpG,KAAK,CAAC,yBAAY,CAAC;SACnB,MAAM,CAAC,qCAAc,CAAC;SACtB,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAClC,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,qBAAc,CAAC,GAAG,CAAC;QACvD,MAAM,2BAAO,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,oBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACnG,OAAO,IAAA,mBAAQ,EAAC,gCAAgC,CAAC,CAAC;IACnD,CAAC,CAAC,CACF;IAEF,sCAAsC,EAAE,sBAAe;SACrD,KAAK,CAAC,qDAAuC,CAAC;SAC9C,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC7B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,2BAAO,CAAC,sCAAsC,CAAC,KAAK,CAAC,CAAC;QAC5D,OAAO,IAAA,mBAAQ,EAAC,8BAA8B,CAAC,CAAC;IACjD,CAAC,CAAC,CACF;IAEF,4BAA4B,EAAE,sBAAe,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAChE,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,OAAO,MAAM,6CAA+B,CAAC,kDAAkD,EAAE,CAAC;IACnG,CAAC,CAAC,CACF;IAED,iCAAiC,EAAE,sBAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CACxE,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,OAAO,MAAM,6CAA+B,CAAC,4BAA4B,EAAE,CAAC;IAC7E,CAAC,CAAC,CACF;IAGD,mCAAmC,EAAE,sBAAe,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CACvE,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,SAAS,GAAG,IAAI,oBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAC1E,OAAO,MAAM,6CAA+B,CAAC,mCAAmC,CAAC,SAAS,CAAC,CAAC;IAC7F,CAAC,CAAC,CACF;IAED,oCAAoC,EAAE,sBAAe;SACnD,KAAK,CAAC,2DAA6C,CAAC;SACpD,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC7B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,OAAO,MAAM,6CAA+B,CAAC,oCAAoC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACrG,CAAC,CAAC,CACF;IAEF,uBAAuB,EAAE,sBAAe,CAAC,KAAK,CAAC,qBAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1F,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,uDAA0B,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC/E,OAAO,IAAA,mBAAQ,EAAC,gDAAgD,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC,CAAC,CACF;IAED,gCAAgC,EAAE,sBAAe,CAAC,KAAK,CAAC,qBAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CACnG,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,2BAAO,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC;QACrE,OAAO,IAAA,mBAAQ,EAAC,iDAAiD,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC,CAAC,CACF;IAED,gCAAgC,EAAE,sBAAe,CAAC,KAAK,CAAC,qBAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CACnG,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,2BAAO,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC;QACrE,OAAO,IAAA,mBAAQ,EAAC,iDAAiD,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC,CAAC,CACF;IAED,iCAAiC,EAAE,sBAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CACxE,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,2BAAO,CAAC,iCAAiC,EAAE,CAAC;QACjE,OAAO,IAAA,mBAAQ,EAAC,2DAA2D,EAAE,MAAM,CAAC,CAAC;IACtF,CAAC,CAAC,CACF;IAED,UAAU,EAAE,sBAAe,CAAC,KAAK,CAAC,qBAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACrE,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,uDAA0B,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClE,OAAO,IAAA,mBAAQ,EAAC,wCAAwC,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC,CAAC,CACF;IAED,cAAc,EAAE,sBAAe,CAAC,KAAK,CAAC,uCAAyB,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1F,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,uDAA0B,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,IAAA,mBAAQ,EAAC,kDAAkD,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC,CAAC,CACF;IAED,iBAAiB,EAAE,sBAAe,CAAC,KAAK,CAAC,uCAAyB,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC7F,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,uDAA0B,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACzE,OAAO,IAAA,mBAAQ,EAAC,qDAAqD,EAAE,MAAM,CAAC,CAAC;IAChF,CAAC,CAAC,CACF;IAED,mBAAmB,EAAE,sBAAe,CAAC,KAAK,CAAC,uCAAyB,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC/F,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,uDAA0B,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3E,OAAO,IAAA,mBAAQ,EAAC,wDAAwD,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC,CAAC,CACF;IAED,qBAAqB,EAAE,sBAAe,CAAC,KAAK,CAAC,2CAA6B,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACrG,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,oCAAyB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClE,OAAO,IAAA,mBAAQ,EAAC,4CAA4C,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC,CAAC,CACF;IAED,kBAAkB,EAAE,sBAAe,CAAC,KAAK,CAAC,wCAA0B,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC/F,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,oCAAyB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,IAAA,mBAAQ,EAAC,yCAAyC,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC,CAAC,CACF;IAED,yBAAyB,EAAE,IAAA,mCAA4B,EAAC,EAAE,WAAW,EAAE,CAAC,qBAAc,CAAC,GAAG,CAAC,EAAE,CAAC;SAC5F,KAAK,CAAC,qBAAQ,CAAC;SACf,MAAM,CAAC,qCAAc,CAAC;SACtB,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC7B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,2BAAO,CAAC,yBAAyB,CAAC,IAAI,oBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,OAAO,IAAA,mBAAQ,EAAC,sDAAsD,CAAC,CAAC;IACzE,CAAC,CAAC,CACF;CACF,CAAC,CAAC","sourcesContent":["import { createTRPCRouter, publicProcedure } from '@lyxa.ai/core/dist/libraries/trpc';\nimport { createAuthenticatedProcedure } from '@lyxa.ai/core/dist/libraries/trpc/middlewares/auth';\nimport { marketingService as service } from '@modules/marketing/services';\nimport { synchronizeProductMarketingService as syncMarketingProductInfoService } from '@modules/marketing/services';\nimport { spendToGetProgressService } from '@modules/marketing/services';\nimport {\n\tAllMarketingsValidationSchema,\n\tMarketingResponseSchema as ResponseSchema,\n\tAllMarketingsUpdateSchema,\n\tProductEntireMenuMarketingHandlerSchema,\n\tMarketingSpendLimitsEvaluationSchema,\n\tSyncProductMarketingForMultipleProductsSchema,\n\tMarketingGraphInputSchema,\n\tSpendToGetProgressInputSchema,\n\tSpendToGetTiersInputSchema,\n} from '@modules/marketing/validations';\nimport { response } from '@lyxa.ai/core/dist/utilities/response';\nimport {\n\tFilterSchema,\n\tDeleteSchema,\n\tGetByIdInputSchema,\n\tIdSchema,\n} from '@lyxa.ai/core/dist/utilities/validation';\nimport { ErrorHandler } from '@lyxa.ai/core/dist/utilities/error-handler';\nimport { AuthEntityType } from '@lyxa.ai/core/dist/libraries/auth';\nimport { mongoose } from '@typegoose/typegoose';\nimport { marketingMetricsRepository } from '../patterns/repository/MarketingMetricsRepository';\n\nexport const marketingRouter = createTRPCRouter({\n\tcreate: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM, AuthEntityType.SELLER] })\n\t\t.input(AllMarketingsValidationSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst isAdmin = ctx.entity?.type == AuthEntityType.CRM;\n\t\t\t\tawait service.create(input, isAdmin ? new mongoose.Types.ObjectId(ctx.entity?.id) : undefined);\n\t\t\t\treturn response('Marketing created successfully');\n\t\t\t})\n\t\t),\n\n\tgetById: publicProcedure.input(GetByIdInputSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await service.findById(input);\n\t\t\treturn response('Marketing fetched successfully', result);\n\t\t})\n\t),\n\n\tget: publicProcedure.input(FilterSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await service.find(input);\n\t\t\treturn response('Marketing fetched successfully', result);\n\t\t})\n\t),\n\n\tupdate: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM, AuthEntityType.SELLER] })\n\t\t.input(AllMarketingsUpdateSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst { _id, ...rest } = input;\n\t\t\t\tconst isAdmin = ctx.entity?.type == AuthEntityType.CRM;\n\n\t\t\t\tawait service.update(_id, rest, isAdmin ? new mongoose.Types.ObjectId(ctx.entity?.id) : undefined);\n\t\t\t\treturn response('Marketing updated successfully');\n\t\t\t})\n\t\t),\n\n\tdeleteById: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM, AuthEntityType.SELLER] })\n\t\t.input(DeleteSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst isAdmin = ctx.entity?.type == AuthEntityType.CRM;\n\t\t\t\tawait service.deleteById(input, isAdmin ? new mongoose.Types.ObjectId(ctx.entity?.id) : undefined);\n\t\t\t\treturn response('Marketing deleted successfully');\n\t\t\t})\n\t\t),\n\n\thandleNewProductForEntireMenuMarketing: publicProcedure\n\t\t.input(ProductEntireMenuMarketingHandlerSchema)\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tawait service.handleNewProductForEntireMenuMarketing(input);\n\t\t\t\treturn response('Product handled successfully');\n\t\t\t})\n\t\t),\n\n\tsyncAllProductsMarketingInfo: publicProcedure.query(async ({}) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\treturn await syncMarketingProductInfoService.publishAllProductsProductMarketingInfoProcessEvent();\n\t\t})\n\t),\n\n\tsyncAllProductsMarketingInfoLocal: publicProcedure.mutation(async ({}) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\treturn await syncMarketingProductInfoService.syncAllProductsMarketingInfo();\n\t\t})\n\t),\n\n\t// DEV purpose only\n\tsyncProductMarketingInfoByProductId: publicProcedure.query(async ({}) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst productId = new mongoose.Types.ObjectId('68f663c355f42c826a129fc6'); // Todo: use productId sent from param\n\t\t\treturn await syncMarketingProductInfoService.syncProductMarketingInfoByProductId(productId);\n\t\t})\n\t),\n\n\tsyncProductMarketingInfoByProductIds: publicProcedure\n\t\t.input(SyncProductMarketingForMultipleProductsSchema)\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\treturn await syncMarketingProductInfoService.syncProductMarketingInfoByProductIds(input.productIds);\n\t\t\t})\n\t\t),\n\n\tcalculateMarketingSpent: publicProcedure.input(IdSchema).mutation(async ({ ctx, input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await marketingMetricsRepository.calculateMarketingSpent(input);\n\t\t\treturn response('Marketing amount spent calculated successfully', result);\n\t\t})\n\t),\n\n\tincrementMarketingSpentFromOrder: publicProcedure.input(IdSchema).mutation(async ({ ctx, input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await service.incrementMarketingSpentFromOrder(input);\n\t\t\treturn response('Marketing amount spent incremented successfully', result);\n\t\t})\n\t),\n\n\tdecrementMarketingSpentFromOrder: publicProcedure.input(IdSchema).mutation(async ({ ctx, input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await service.decrementMarketingSpentFromOrder(input);\n\t\t\treturn response('Marketing amount spent decremented successfully', result);\n\t\t})\n\t),\n\n\trecomputeAndSyncAllMarketingSpent: publicProcedure.mutation(async ({}) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await service.recomputeAndSyncAllMarketingSpent();\n\t\t\treturn response('Marketing amount spent recomputed and synced successfully', result);\n\t\t})\n\t),\n \n\tgetMetrics: publicProcedure.input(IdSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await marketingMetricsRepository.getMetrics(input);\n\t\t\treturn response('Marketing metrics fetched successfully', result);\n\t\t})\n\t),\n \n\tgetOrdersGraph: publicProcedure.input(MarketingGraphInputSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await marketingMetricsRepository.getOrdersGraph(input);\n\t\t\treturn response('Marketing orders graph data fetched successfully', result);\n\t\t})\n\t),\n\n\tgetCustomersGraph: publicProcedure.input(MarketingGraphInputSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await marketingMetricsRepository.getCustomersGraph(input);\n\t\t\treturn response('Marketing customers graph data fetched successfully', result);\n\t\t})\n\t),\n\n\tgetAmountSpentGraph: publicProcedure.input(MarketingGraphInputSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await marketingMetricsRepository.getAmountSpentGraph(input);\n\t\t\treturn response('Marketing amount spent graph data fetched successfully', result);\n\t\t})\n\t),\n\n\tgetSpendToGetProgress: publicProcedure.input(SpendToGetProgressInputSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await spendToGetProgressService.getProgress(input);\n\t\t\treturn response('Spend to get progress fetched successfully', result);\n\t\t})\n\t),\n\n\tgetSpendToGetTiers: publicProcedure.input(SpendToGetTiersInputSchema).query(async ({ input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst result = await spendToGetProgressService.getTiers(input.shop);\n\t\t\treturn response('Spend to get tiers fetched successfully', result);\n\t\t})\n\t),\n\n\treseedEntireMenuMarketing: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM] })\n\t\t.input(IdSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tawait service.reseedEntireMenuMarketing(new mongoose.Types.ObjectId(input));\n\t\t\t\treturn response('Entire menu marketing reseed dispatched successfully');\n\t\t\t})\n\t\t),\n});\n"]}
@@ -1,7 +1,7 @@
1
1
  import { DocumentType, mongoose } from '@typegoose/typegoose';
2
2
  import { Buy1Get1Marketing, DiscountMarketing, Marketing as Model } from '@lyxa.ai/core/dist/libraries/mongo/models';
3
3
  import { AllMarketingsValidationDTO, ProductEntireMenuMarketingHandlerDTO, UpdateMarketingDTO as UpdateDTO } from '../../marketing/validations';
4
- import { FilterDTO, PaginatedResponse, DeleteDTO, GetByIdInputDTO } from '@lyxa.ai/core/dist/utilities/validation';
4
+ import { DeleteDTO, FilterDTO, GetByIdInputDTO, PaginatedResponse } from '@lyxa.ai/core/dist/utilities/validation';
5
5
  import { ModelType } from '@typegoose/typegoose/lib/types';
6
6
  export declare class MarketingService {
7
7
  private model;
@@ -28,7 +28,6 @@ export declare class MarketingService {
28
28
  private expireMarketingsExceedingSpendLimits;
29
29
  private unExpireMarketingsBelowSpendLimits;
30
30
  recomputeAndSyncAllMarketingSpent(): Promise<void>;
31
- private publishEntireMenuSeedEvents;
32
31
  reseedEntireMenuMarketing(marketingId: mongoose.Types.ObjectId): Promise<void>;
33
32
  assignMarketingToProducts(marketing: DocumentType<Buy1Get1Marketing | DiscountMarketing>): Promise<void>;
34
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"marketing.service.d.ts","sourceRoot":"/","sources":["modules/marketing/services/marketing.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EAMjB,SAAS,IAAI,KAAK,EAOlB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEN,0BAA0B,EAE1B,oCAAoC,EACpC,kBAAkB,IAAI,SAAS,EAC/B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACN,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AA+C3D,qBACa,gBAAgB;IAC5B,OAAO,CAAC,KAAK,CAAiD;IAC9D,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,UAAU,CAA2D;IAC7E,OAAO,CAAC,0BAA0B,CAA6B;IAC/D,OAAO,CAAC,gCAAgC,CACM;;IAgBjC,MAAM,CAClB,IAAI,EAAE,0BAA0B,EAChC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC/B,OAAO,CAAC,EAAE;QAAE,yBAAyB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/C,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IA+JlB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAsB7D,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IA0B3F,MAAM,CAClB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC5B,IAAI,EAAE,SAAS,EACf,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAC7B,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAwIjB,uBAAuB;YAyCvB,uBAAuB;IAmBxB,UAAU,CACtB,IAAI,EAAE,SAAS,EACf,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC/B,OAAO,CAAC,EAAE;QAAE,yBAAyB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/C,OAAO,CAAC,MAAM,CAAC;IAkDL,eAAe,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC1F,sCAAsC,CAAC,IAAI,EAAE,oCAAoC;IA8BjF,gCAAgC,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAiChF,gCAAgC,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;YAiC/E,oCAAoC;YAgBpC,kCAAkC;IAgBnC,iCAAiC,IAAI,OAAO,CAAC,IAAI,CAAC;YAqCjD,2BAA2B;IA2B5B,yBAAyB,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9E,yBAAyB,CAAC,SAAS,EAAE,YAAY,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;CAqCrG;AAED,eAAO,MAAM,gBAAgB,kBAAkC,CAAC"}
1
+ {"version":3,"file":"marketing.service.d.ts","sourceRoot":"/","sources":["modules/marketing/services/marketing.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EAKjB,SAAS,IAAI,KAAK,EAOlB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEN,0BAA0B,EAE1B,oCAAoC,EACpC,kBAAkB,IAAI,SAAS,EAC/B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACN,SAAS,EACT,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AA4C3D,qBACa,gBAAgB;IAC5B,OAAO,CAAC,KAAK,CAAiD;IAC9D,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,UAAU,CAA2D;IAC7E,OAAO,CAAC,0BAA0B,CAA6B;IAC/D,OAAO,CAAC,gCAAgC,CACM;;IAgBjC,MAAM,CAClB,IAAI,EAAE,0BAA0B,EAChC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC/B,OAAO,CAAC,EAAE;QAAE,yBAAyB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/C,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAuKlB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAsB7D,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IA0B3F,MAAM,CAClB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC5B,IAAI,EAAE,SAAS,EACf,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAC7B,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAyIjB,uBAAuB;YA2CvB,uBAAuB;IAmBxB,UAAU,CACtB,IAAI,EAAE,SAAS,EACf,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC/B,OAAO,CAAC,EAAE;QAAE,yBAAyB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/C,OAAO,CAAC,MAAM,CAAC;IAkDL,eAAe,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC1F,sCAAsC,CAAC,IAAI,EAAE,oCAAoC;IA8BjF,gCAAgC,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAiChF,gCAAgC,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;YAiC/E,oCAAoC;YAgBpC,kCAAkC;IAgBnC,iCAAiC,IAAI,OAAO,CAAC,IAAI,CAAC;IAqClD,yBAAyB,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC9E,yBAAyB,CAAC,SAAS,EAAE,YAAY,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;CA0CrG;AAED,eAAO,MAAM,gBAAgB,kBAAkC,CAAC"}
@@ -55,14 +55,13 @@ const admin_logs_event_1 = require("@lyxa.ai/core/dist/libraries/event/events/ad
55
55
  const enum_1 = require("@lyxa.ai/core/dist/utilities/enum");
56
56
  const event_1 = require("@lyxa.ai/core/dist/libraries/event");
57
57
  const marketing_product_seed_event_1 = require("../../../event/events/marketing-product-seed.event");
58
- const marketing_product_sync_event_1 = require("../../../event/events/marketing-product-sync.event");
59
58
  const _1 = require(".");
60
- const enum_2 = require("@lyxa.ai/core/dist/utilities/enum");
61
59
  const error_common_1 = require("@lyxa.ai/core/dist/utilities/error-common");
62
60
  const mongo_stream_changes_batch_process_shops_event_1 = require("@lyxa.ai/core/dist/libraries/event/events/mongo-stream-changes-batch-process-shops-event");
63
61
  const MarketingMetricsRepository_1 = require("../patterns/repository/MarketingMetricsRepository");
64
62
  const marketing_product_sync_queue_1 = require("../queues/marketing-product-sync.queue");
65
63
  const limited_time_offer_participant_service_1 = require("../../limited-time-offer/participant/services/limited-time-offer-participant.service");
64
+ const feature_flags_1 = require("../../../utility/feature-flags");
66
65
  let MarketingService = class MarketingService {
67
66
  model;
68
67
  shopModel;
@@ -79,20 +78,25 @@ let MarketingService = class MarketingService {
79
78
  }
80
79
  async create(data, admin, options) {
81
80
  const now = (0, dayjs_1.dayjs)().toDate();
82
- if (!options?.skipLimitedTimeOfferGuard &&
83
- data.marketingType === enum_2.MarketingType.DISCOUNT &&
81
+ const ltoScheduleEnabled = await (0, feature_flags_1.isLtoScheduleEnabled)();
82
+ if (ltoScheduleEnabled &&
83
+ !options?.skipLimitedTimeOfferGuard &&
84
+ data.marketingType === enum_1.MarketingType.DISCOUNT &&
84
85
  (await limited_time_offer_participant_service_1.ltoParticipantService.isActiveParticipant(data.shop))) {
85
86
  (0, error_common_1.forbiddenError)('You are currently participating in a Limited Time Offer. Please manage your discount from the Limited Time Offer section or withdraw first.');
86
87
  }
87
- const existingRecord = await this.model.findOne({
88
+ const existingRecordQuery = {
88
89
  shop: data.shop,
89
90
  marketingType: data.marketingType,
90
91
  'duration.end': { $gt: now },
91
92
  status: enum_1.MarketingStatus.ACTIVE,
92
93
  isAppliedByCompany: data.isAppliedByCompany,
93
- campaignType: data.campaignType,
94
- admin: admin ? { $ne: null } : null,
95
- });
94
+ };
95
+ if (ltoScheduleEnabled) {
96
+ existingRecordQuery.campaignType = data.campaignType;
97
+ existingRecordQuery.admin = admin ? { $ne: null } : null;
98
+ }
99
+ const existingRecord = await this.model.findOne(existingRecordQuery);
96
100
  if (existingRecord) {
97
101
  throw new server_1.TRPCError({
98
102
  code: 'CONFLICT',
@@ -113,7 +117,7 @@ let MarketingService = class MarketingService {
113
117
  'duration.start': { $lt: now },
114
118
  'duration.end': { $gt: now },
115
119
  status: enum_1.MarketingStatus.ACTIVE,
116
- marketingType: { $in: [enum_2.MarketingType.BUY1GET1, enum_2.MarketingType.DISCOUNT], $ne: data.marketingType },
120
+ marketingType: { $in: [enum_1.MarketingType.BUY1GET1, enum_1.MarketingType.DISCOUNT], $ne: data.marketingType },
117
121
  });
118
122
  if (existingMarketing) {
119
123
  throw new server_1.TRPCError({
@@ -131,7 +135,7 @@ let MarketingService = class MarketingService {
131
135
  message: `Product list contains duplicate products`,
132
136
  });
133
137
  }
134
- if (data.campaignType === enum_1.MarketingCampaignType.LIMITED_TIME_OFFER) {
138
+ if (ltoScheduleEnabled && data.campaignType === enum_1.MarketingCampaignType.LIMITED_TIME_OFFER) {
135
139
  await _1.productMarketingService.pauseConflictingMarketings(productIds);
136
140
  }
137
141
  else {
@@ -149,15 +153,15 @@ let MarketingService = class MarketingService {
149
153
  }
150
154
  let marketing;
151
155
  switch (data.marketingType) {
152
- case enum_2.MarketingType.DISCOUNT: {
156
+ case enum_1.MarketingType.DISCOUNT: {
153
157
  marketing = await _1.discountMarketingService.create(data);
154
158
  break;
155
159
  }
156
- case enum_2.MarketingType.BUY1GET1: {
160
+ case enum_1.MarketingType.BUY1GET1: {
157
161
  marketing = await _1.buy1Get1MarketingService.create(data);
158
162
  break;
159
163
  }
160
- case enum_2.MarketingType.FEATURED: {
164
+ case enum_1.MarketingType.FEATURED: {
161
165
  if (!admin) {
162
166
  throw new server_1.TRPCError({
163
167
  code: 'UNAUTHORIZED',
@@ -167,15 +171,15 @@ let MarketingService = class MarketingService {
167
171
  marketing = await _1.featuredMarketingService.create(data);
168
172
  break;
169
173
  }
170
- case enum_2.MarketingType.FREE_DELIVERY: {
174
+ case enum_1.MarketingType.FREE_DELIVERY: {
171
175
  marketing = await _1.freeDeliveryMarketingService.create(data);
172
176
  break;
173
177
  }
174
- case enum_2.MarketingType.PUNCH_MARKETING: {
178
+ case enum_1.MarketingType.PUNCH_MARKETING: {
175
179
  marketing = await _1.punchMarketingService.create(data);
176
180
  break;
177
181
  }
178
- case enum_2.MarketingType.SPEND_TO_GET: {
182
+ case enum_1.MarketingType.SPEND_TO_GET: {
179
183
  marketing = await _1.spendToGetMarketingService.create(data);
180
184
  break;
181
185
  }
@@ -254,38 +258,39 @@ let MarketingService = class MarketingService {
254
258
  }
255
259
  if (data.status &&
256
260
  data.status === enum_1.MarketingStatus.ACTIVE &&
257
- oldMarketing.status === enum_1.MarketingStatus.PAUSED) {
258
- if (oldMarketing.marketingType === enum_2.MarketingType.DISCOUNT &&
261
+ oldMarketing.status !== enum_1.MarketingStatus.ACTIVE) {
262
+ if ((await (0, feature_flags_1.isLtoScheduleEnabled)()) &&
263
+ oldMarketing.marketingType === enum_1.MarketingType.DISCOUNT &&
259
264
  (await limited_time_offer_participant_service_1.ltoParticipantService.isActiveParticipant(oldMarketing.shop._id))) {
260
265
  (0, error_common_1.forbiddenError)('You are currently participating in a Limited Time Offer. Please manage your discount from the Limited Time Offer section or withdraw first.');
261
266
  }
262
267
  await this.verifyUnpauseConditions(_id);
263
268
  }
264
269
  switch (oldMarketing.marketingType) {
265
- case enum_2.MarketingType.DISCOUNT: {
270
+ case enum_1.MarketingType.DISCOUNT: {
266
271
  marketing = await _1.discountMarketingService.update(_id, data);
267
272
  break;
268
273
  }
269
- case enum_2.MarketingType.BUY1GET1: {
274
+ case enum_1.MarketingType.BUY1GET1: {
270
275
  marketing = await _1.buy1Get1MarketingService.update(_id, data);
271
276
  break;
272
277
  }
273
- case enum_2.MarketingType.FEATURED: {
278
+ case enum_1.MarketingType.FEATURED: {
274
279
  if (!admin) {
275
280
  (0, error_common_1.unauthorizedError)(`Only admin is allowed to update ${data.marketingType} marketing`);
276
281
  }
277
282
  marketing = await _1.featuredMarketingService.update(_id, data);
278
283
  break;
279
284
  }
280
- case enum_2.MarketingType.FREE_DELIVERY: {
285
+ case enum_1.MarketingType.FREE_DELIVERY: {
281
286
  marketing = await _1.freeDeliveryMarketingService.update(_id, data);
282
287
  break;
283
288
  }
284
- case enum_2.MarketingType.PUNCH_MARKETING: {
289
+ case enum_1.MarketingType.PUNCH_MARKETING: {
285
290
  marketing = await _1.punchMarketingService.update(_id, data);
286
291
  break;
287
292
  }
288
- case enum_2.MarketingType.SPEND_TO_GET: {
293
+ case enum_1.MarketingType.SPEND_TO_GET: {
289
294
  marketing = await _1.spendToGetMarketingService.update(_id, data);
290
295
  break;
291
296
  }
@@ -331,16 +336,18 @@ let MarketingService = class MarketingService {
331
336
  const marketing = await this.model.findOne({ _id: marketingId, deletedAt: null }).populate('products');
332
337
  if (!marketing)
333
338
  return;
334
- const hasActiveLto = await this.model.exists({
335
- shop: marketing.shop,
336
- campaignType: enum_1.MarketingCampaignType.LIMITED_TIME_OFFER,
337
- status: enum_1.MarketingStatus.ACTIVE,
338
- deletedAt: null,
339
- });
340
- if (hasActiveLto) {
341
- (0, error_common_1.conflictError)("Can't resume this discount while a limited time offer is active");
339
+ if (await (0, feature_flags_1.isLtoScheduleEnabled)()) {
340
+ const hasActiveLto = await this.model.exists({
341
+ shop: marketing.shop,
342
+ campaignType: enum_1.MarketingCampaignType.LIMITED_TIME_OFFER,
343
+ status: enum_1.MarketingStatus.ACTIVE,
344
+ deletedAt: null,
345
+ });
346
+ if (hasActiveLto) {
347
+ (0, error_common_1.conflictError)("Can't resume this discount while a limited time offer is active");
348
+ }
342
349
  }
343
- if ([enum_2.MarketingType.BUY1GET1, enum_2.MarketingType.DISCOUNT].includes(marketing.marketingType)) {
350
+ if ([enum_1.MarketingType.BUY1GET1, enum_1.MarketingType.DISCOUNT].includes(marketing.marketingType)) {
344
351
  const typedMarketing = marketing;
345
352
  const productIds = typedMarketing.products.map((product) => product.product);
346
353
  const isAvailable = await _1.productMarketingService.checkProductMarketingAvailability(productIds, marketing.isAppliedByCompany);
@@ -369,7 +376,7 @@ let MarketingService = class MarketingService {
369
376
  }
370
377
  async deleteById(data, admin, options) {
371
378
  const { _id, softDelete } = data;
372
- if (!options?.skipLimitedTimeOfferGuard) {
379
+ if ((await (0, feature_flags_1.isLtoScheduleEnabled)()) && !options?.skipLimitedTimeOfferGuard) {
373
380
  const partOfLimitedTimeOffer = await this.limitedTimeOfferParticipantModel.exists({
374
381
  marketing: _id,
375
382
  });
@@ -435,7 +442,7 @@ let MarketingService = class MarketingService {
435
442
  async handleNewProductForEntireMenuMarketing(data) {
436
443
  const existingMarketing = await this.model.findOne({
437
444
  shop: data.shop,
438
- marketingType: { $in: [enum_2.MarketingType.BUY1GET1, enum_2.MarketingType.DISCOUNT] },
445
+ marketingType: { $in: [enum_1.MarketingType.BUY1GET1, enum_1.MarketingType.DISCOUNT] },
439
446
  'duration.end': { $gt: new Date() },
440
447
  status: enum_1.MarketingStatus.ACTIVE,
441
448
  isEntireMenu: true,
@@ -445,10 +452,10 @@ let MarketingService = class MarketingService {
445
452
  product: data.product,
446
453
  marketing: existingMarketing._id,
447
454
  };
448
- if (existingMarketing.marketingType == enum_2.MarketingType.BUY1GET1) {
455
+ if (existingMarketing.marketingType == enum_1.MarketingType.BUY1GET1) {
449
456
  productMarketingData.isBuy1Get1 = true;
450
457
  }
451
- if (existingMarketing.marketingType == enum_2.MarketingType.DISCOUNT) {
458
+ if (existingMarketing.marketingType == enum_1.MarketingType.DISCOUNT) {
452
459
  productMarketingData.value = existingMarketing.value;
453
460
  productMarketingData.valueType = existingMarketing.valueType;
454
461
  }
@@ -527,7 +534,7 @@ let MarketingService = class MarketingService {
527
534
  }
528
535
  async recomputeAndSyncAllMarketingSpent() {
529
536
  const cursor = this.model
530
- .find({ marketingType: { $ne: enum_2.MarketingType.FEATURED } }, { _id: 1 })
537
+ .find({ marketingType: { $ne: enum_1.MarketingType.FEATURED } }, { _id: 1 })
531
538
  .lean()
532
539
  .cursor();
533
540
  const bulkOps = [];
@@ -554,34 +561,31 @@ let MarketingService = class MarketingService {
554
561
  await this.expireMarketingsExceedingSpendLimits(marketingIds);
555
562
  await this.unExpireMarketingsBelowSpendLimits(marketingIds);
556
563
  }
557
- async publishEntireMenuSeedEvents(marketing) {
558
- const PAGE_SIZE = 500;
559
- const marketingId = marketing._id.toString();
560
- const shopId = (marketing.shop?._id ?? marketing.shop).toString();
561
- const products = await models_1.ProductModel.find({ shop: marketing.shop }).select('_id').lean();
562
- const productIds = products.map((p) => p._id.toString());
563
- for (let i = 0; i < productIds.length; i += PAGE_SIZE) {
564
- await (0, event_1.publishEvent)(new marketing_product_seed_event_1.MarketingEntireMenuSeedEvent({
565
- marketingId,
566
- shopId,
567
- isAppliedByCompany: marketing.isAppliedByCompany ?? false,
568
- isBuy1Get1: marketing.marketingType === enum_2.MarketingType.BUY1GET1,
569
- value: marketing.value,
570
- valueType: marketing.valueType,
571
- productIds: productIds.slice(i, i + PAGE_SIZE),
572
- }));
573
- }
574
- return productIds.length;
575
- }
576
564
  async reseedEntireMenuMarketing(marketingId) {
577
565
  const logger = (0, core_1.getLibraries)().getLoggerKit();
578
566
  const marketing = await this.model.findOne({ _id: marketingId, deletedAt: null });
579
567
  if (!marketing)
580
568
  (0, error_common_1.internalServerError)('Marketing not found');
581
- const productCount = await this.publishEntireMenuSeedEvents(marketing);
582
- logger.debug(`entire-menu reseed dispatched — ${productCount} products`, {
569
+ const PAGE_SIZE = 500;
570
+ const mid = marketingId.toString();
571
+ const shopId = (marketing.shop?._id ?? marketing.shop).toString();
572
+ const count = await models_1.ProductModel.countDocuments({ shop: marketing.shop });
573
+ const pages = Math.ceil(count / PAGE_SIZE);
574
+ if (!pages)
575
+ return;
576
+ await Promise.all(Array.from({ length: pages }, (_, page) => (0, event_1.publishEvent)(new marketing_product_seed_event_1.MarketingEntireMenuSeedEvent({
577
+ marketingId: mid,
578
+ shopId,
579
+ isAppliedByCompany: marketing.isAppliedByCompany ?? false,
580
+ isBuy1Get1: marketing.marketingType === enum_1.MarketingType.BUY1GET1,
581
+ value: marketing.value,
582
+ valueType: marketing.valueType,
583
+ page,
584
+ pageSize: PAGE_SIZE,
585
+ }))));
586
+ logger.debug(`entire-menu reseed dispatched — ${pages} pages for ${count} products`, {
583
587
  tag: 'marketing.seed.entire-menu',
584
- data: { marketingId: marketingId.toString(), productCount },
588
+ data: { marketingId: mid, shopId, pages, productCount: count },
585
589
  });
586
590
  }
587
591
  async assignMarketingToProducts(marketing) {
@@ -591,27 +595,31 @@ let MarketingService = class MarketingService {
591
595
  }
592
596
  if (marketing.isEntireMenu) {
593
597
  const logger = (0, core_1.getLibraries)().getLoggerKit();
594
- const productCount = await this.publishEntireMenuSeedEvents(marketing);
595
- logger.debug(`entire-menu marketing seed dispatched — ${productCount} products`, {
596
- tag: 'marketing.seed.entire-menu',
597
- data: { marketingId: marketing._id.toString(), productCount },
598
- });
599
- }
600
- else {
601
- const shopId = (marketing.shop?._id ?? marketing.shop).toString();
602
- const pms = await models_1.ProductMarketingModel.find({ marketing: marketing._id, deletedAt: null })
603
- .select('product')
604
- .lean();
605
- const productIds = pms.map((p) => p.product.toString());
606
598
  const PAGE_SIZE = 500;
607
- for (let i = 0; i < productIds.length; i += PAGE_SIZE) {
608
- await (0, event_1.publishEvent)(new marketing_product_sync_event_1.MarketingProductSyncEvent({
609
- marketingId: marketing._id.toString(),
599
+ const marketingId = marketing._id.toString();
600
+ const shopId = (marketing.shop?._id ?? marketing.shop).toString();
601
+ const count = await models_1.ProductModel.countDocuments({ shop: marketing.shop });
602
+ const pages = Math.ceil(count / PAGE_SIZE);
603
+ if (pages > 0) {
604
+ await Promise.all(Array.from({ length: pages }, (_, page) => (0, event_1.publishEvent)(new marketing_product_seed_event_1.MarketingEntireMenuSeedEvent({
605
+ marketingId,
610
606
  shopId,
611
- productIds: productIds.slice(i, i + PAGE_SIZE),
612
- }));
607
+ isAppliedByCompany: marketing.isAppliedByCompany ?? false,
608
+ isBuy1Get1: marketing.marketingType === enum_1.MarketingType.BUY1GET1,
609
+ value: marketing.value,
610
+ valueType: marketing.valueType,
611
+ page,
612
+ pageSize: PAGE_SIZE,
613
+ }))));
614
+ logger.debug(`entire-menu marketing seed dispatched — ${pages} pages for ${count} products`, {
615
+ tag: 'marketing.seed.entire-menu',
616
+ data: { marketingId, shopId, pages, productCount: count },
617
+ });
613
618
  }
614
619
  }
620
+ else {
621
+ await _1.productMarketingService.syncProductMarketingInfo(marketing._id);
622
+ }
615
623
  }
616
624
  };
617
625
  exports.MarketingService = MarketingService;