@lyxa.ai/marketing 1.0.62 → 1.0.64

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 (372) hide show
  1. package/dist/lib/event/event-initializations.d.ts.map +1 -1
  2. package/dist/lib/event/event-initializations.js +2 -0
  3. package/dist/lib/event/event-initializations.js.map +1 -1
  4. package/dist/lib/event/event-listeners/event-listeners.d.ts +2 -0
  5. package/dist/lib/event/event-listeners/event-listeners.d.ts.map +1 -1
  6. package/dist/lib/event/event-listeners/event-listeners.js +69 -12
  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 +1 -2
  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/event/events/marketing-product-sync.event.d.ts +11 -0
  12. package/dist/lib/event/events/marketing-product-sync.event.d.ts.map +1 -0
  13. package/dist/lib/event/events/marketing-product-sync.event.js +12 -0
  14. package/dist/lib/event/events/marketing-product-sync.event.js.map +1 -0
  15. package/dist/lib/index.d.ts +536 -19
  16. package/dist/lib/index.d.ts.map +1 -1
  17. package/dist/lib/index.js +5 -1
  18. package/dist/lib/index.js.map +1 -1
  19. package/dist/lib/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  20. package/dist/lib/modules/coupon/services/custom-coupon.service.d.ts +15 -3
  21. package/dist/lib/modules/coupon/services/custom-coupon.service.d.ts.map +1 -1
  22. package/dist/lib/modules/coupon/services/helper.service.d.ts +15 -3
  23. package/dist/lib/modules/coupon/services/helper.service.d.ts.map +1 -1
  24. package/dist/lib/modules/coupon/services/individual-store-coupon.service.d.ts +15 -3
  25. package/dist/lib/modules/coupon/services/individual-store-coupon.service.d.ts.map +1 -1
  26. package/dist/lib/modules/coupon/services/shops-categories-coupon.service.d.ts +15 -3
  27. package/dist/lib/modules/coupon/services/shops-categories-coupon.service.d.ts.map +1 -1
  28. package/dist/lib/modules/coupon/validations/create-coupon.validation.d.ts.map +1 -1
  29. package/dist/lib/modules/coupon/validations/create-coupon.validation.js +4 -1
  30. package/dist/lib/modules/coupon/validations/create-coupon.validation.js.map +1 -1
  31. package/dist/lib/modules/deal-setting/services/deal-setting.service.d.ts.map +1 -1
  32. package/dist/lib/modules/deal-setting/services/deal-setting.service.js +4 -1
  33. package/dist/lib/modules/deal-setting/services/deal-setting.service.js.map +1 -1
  34. package/dist/lib/modules/featured-setting/services/featured-setting.service.d.ts.map +1 -1
  35. package/dist/lib/modules/featured-setting/services/featured-setting.service.js +3 -0
  36. package/dist/lib/modules/featured-setting/services/featured-setting.service.js.map +1 -1
  37. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.d.ts +54 -8
  38. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.d.ts.map +1 -1
  39. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.js +11 -0
  40. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.js.map +1 -1
  41. package/dist/lib/modules/limited-time-offer/campaign/jobs/index.d.ts.map +1 -1
  42. package/dist/lib/modules/limited-time-offer/campaign/jobs/index.js +6 -0
  43. package/dist/lib/modules/limited-time-offer/campaign/jobs/index.js.map +1 -1
  44. package/dist/lib/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.d.ts +0 -1
  45. package/dist/lib/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.d.ts.map +1 -1
  46. package/dist/lib/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.js +2 -6
  47. package/dist/lib/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.js.map +1 -1
  48. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts +16 -3
  49. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts.map +1 -1
  50. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.js +22 -3
  51. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.js.map +1 -1
  52. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.d.ts +2 -0
  53. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.d.ts.map +1 -1
  54. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.js +12 -0
  55. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.js.map +1 -1
  56. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts +242 -35
  57. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts.map +1 -1
  58. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.js +19 -1
  59. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.js.map +1 -1
  60. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts +10 -1
  61. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts.map +1 -1
  62. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.js +78 -1
  63. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.js.map +1 -1
  64. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.d.ts +3 -0
  65. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.d.ts.map +1 -1
  66. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.js +66 -8
  67. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.js.map +1 -1
  68. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts +1 -1
  69. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts.map +1 -1
  70. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.js +41 -19
  71. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.js.map +1 -1
  72. package/dist/lib/modules/limited-time-offer/limited-time-offer.router.d.ts +249 -18
  73. package/dist/lib/modules/limited-time-offer/limited-time-offer.router.d.ts.map +1 -1
  74. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.d.ts +2 -0
  75. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.d.ts.map +1 -1
  76. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.js +10 -4
  77. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.js.map +1 -1
  78. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.constants.d.ts +1 -1
  79. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.constants.js +1 -1
  80. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.constants.js.map +1 -1
  81. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts +30 -3
  82. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts.map +1 -1
  83. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.js +23 -1
  84. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.js.map +1 -1
  85. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts +18 -0
  86. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts.map +1 -1
  87. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.js +103 -0
  88. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.js.map +1 -1
  89. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts +195 -10
  90. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts.map +1 -1
  91. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.js +29 -0
  92. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.js.map +1 -1
  93. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts +547 -148
  94. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts.map +1 -1
  95. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.js +16 -6
  96. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.js.map +1 -1
  97. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts +11 -4
  98. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts.map +1 -1
  99. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.js +48 -7
  100. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.js.map +1 -1
  101. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts +18 -5
  102. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts.map +1 -1
  103. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.js +98 -17
  104. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.js.map +1 -1
  105. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.repository.d.ts +13 -0
  106. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.repository.d.ts.map +1 -0
  107. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.repository.js +75 -0
  108. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.repository.js.map +1 -0
  109. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.service.d.ts +21 -0
  110. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.service.d.ts.map +1 -0
  111. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.service.js +83 -0
  112. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.service.js.map +1 -0
  113. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts +2 -0
  114. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts.map +1 -1
  115. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.js +41 -0
  116. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.js.map +1 -1
  117. package/dist/lib/modules/marketing/routers/marketing.router.d.ts +16 -0
  118. package/dist/lib/modules/marketing/routers/marketing.router.d.ts.map +1 -1
  119. package/dist/lib/modules/marketing/routers/marketing.router.js +5 -0
  120. package/dist/lib/modules/marketing/routers/marketing.router.js.map +1 -1
  121. package/dist/lib/modules/marketing/services/index.d.ts +3 -0
  122. package/dist/lib/modules/marketing/services/index.d.ts.map +1 -1
  123. package/dist/lib/modules/marketing/services/index.js +3 -0
  124. package/dist/lib/modules/marketing/services/index.js.map +1 -1
  125. package/dist/lib/modules/marketing/services/marketing-conflict.repository.d.ts +9 -0
  126. package/dist/lib/modules/marketing/services/marketing-conflict.repository.d.ts.map +1 -0
  127. package/dist/lib/modules/marketing/services/marketing-conflict.repository.js +63 -0
  128. package/dist/lib/modules/marketing/services/marketing-conflict.repository.js.map +1 -0
  129. package/dist/lib/modules/marketing/services/marketing-conflict.service.d.ts +28 -0
  130. package/dist/lib/modules/marketing/services/marketing-conflict.service.d.ts.map +1 -0
  131. package/dist/lib/modules/marketing/services/marketing-conflict.service.js +139 -0
  132. package/dist/lib/modules/marketing/services/marketing-conflict.service.js.map +1 -0
  133. package/dist/lib/modules/marketing/services/marketing.service.d.ts +7 -2
  134. package/dist/lib/modules/marketing/services/marketing.service.d.ts.map +1 -1
  135. package/dist/lib/modules/marketing/services/marketing.service.js +107 -48
  136. package/dist/lib/modules/marketing/services/marketing.service.js.map +1 -1
  137. package/dist/lib/modules/marketing/services/product-marketing.service.d.ts +2 -3
  138. package/dist/lib/modules/marketing/services/product-marketing.service.d.ts.map +1 -1
  139. package/dist/lib/modules/marketing/services/product-marketing.service.js +42 -13
  140. package/dist/lib/modules/marketing/services/product-marketing.service.js.map +1 -1
  141. package/dist/lib/modules/marketing/services/spend-to-get-marketing.repository.d.ts +14 -0
  142. package/dist/lib/modules/marketing/services/spend-to-get-marketing.repository.d.ts.map +1 -0
  143. package/dist/lib/modules/marketing/services/spend-to-get-marketing.repository.js +82 -0
  144. package/dist/lib/modules/marketing/services/spend-to-get-marketing.repository.js.map +1 -0
  145. package/dist/lib/modules/marketing/services/spend-to-get-marketing.service.d.ts +11 -0
  146. package/dist/lib/modules/marketing/services/spend-to-get-marketing.service.d.ts.map +1 -0
  147. package/dist/lib/modules/marketing/services/spend-to-get-marketing.service.js +100 -0
  148. package/dist/lib/modules/marketing/services/spend-to-get-marketing.service.js.map +1 -0
  149. package/dist/lib/modules/marketing/services/spend-to-get-progress.repository.d.ts +9 -0
  150. package/dist/lib/modules/marketing/services/spend-to-get-progress.repository.d.ts.map +1 -0
  151. package/dist/lib/modules/marketing/services/spend-to-get-progress.repository.js +69 -0
  152. package/dist/lib/modules/marketing/services/spend-to-get-progress.repository.js.map +1 -0
  153. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.d.ts +31 -0
  154. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.d.ts.map +1 -0
  155. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.js +123 -0
  156. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.js.map +1 -0
  157. package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.d.ts.map +1 -1
  158. package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.js +95 -27
  159. package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.js.map +1 -1
  160. package/dist/lib/modules/marketing/validations/all-marketings.validation.d.ts.map +1 -1
  161. package/dist/lib/modules/marketing/validations/all-marketings.validation.js +3 -0
  162. package/dist/lib/modules/marketing/validations/all-marketings.validation.js.map +1 -1
  163. package/dist/lib/modules/marketing/validations/buy1-get1-marketing.validation.d.ts +3 -3
  164. package/dist/lib/modules/marketing/validations/discount-marketing.validation.d.ts +3 -3
  165. package/dist/lib/modules/marketing/validations/index.d.ts +1 -0
  166. package/dist/lib/modules/marketing/validations/index.d.ts.map +1 -1
  167. package/dist/lib/modules/marketing/validations/index.js +1 -0
  168. package/dist/lib/modules/marketing/validations/index.js.map +1 -1
  169. package/dist/lib/modules/marketing/validations/marketing.validation.d.ts +23 -0
  170. package/dist/lib/modules/marketing/validations/marketing.validation.d.ts.map +1 -1
  171. package/dist/lib/modules/marketing/validations/marketing.validation.js +9 -1
  172. package/dist/lib/modules/marketing/validations/marketing.validation.js.map +1 -1
  173. package/dist/lib/modules/marketing/validations/product-marketing.validation.d.ts +2 -2
  174. package/dist/lib/modules/marketing/validations/spend-to-get-marketing.validation.d.ts +617 -0
  175. package/dist/lib/modules/marketing/validations/spend-to-get-marketing.validation.d.ts.map +1 -0
  176. package/dist/lib/modules/marketing/validations/spend-to-get-marketing.validation.js +119 -0
  177. package/dist/lib/modules/marketing/validations/spend-to-get-marketing.validation.js.map +1 -0
  178. package/dist/lib/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +1 -1
  179. package/dist/lib/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +2 -2
  180. package/dist/lib/modules/spend-to-get-history/routers/index.d.ts +2 -0
  181. package/dist/lib/modules/spend-to-get-history/routers/index.d.ts.map +1 -0
  182. package/dist/lib/modules/spend-to-get-history/routers/index.js +18 -0
  183. package/dist/lib/modules/spend-to-get-history/routers/index.js.map +1 -0
  184. package/dist/lib/modules/spend-to-get-history/routers/spend-to-get-history.router.js +62 -0
  185. package/dist/lib/modules/spend-to-get-history/routers/spend-to-get-history.router.js.map +1 -0
  186. package/dist/lib/modules/spend-to-get-history/services/index.d.ts +2 -0
  187. package/dist/lib/modules/spend-to-get-history/services/index.d.ts.map +1 -0
  188. package/dist/lib/modules/spend-to-get-history/services/index.js +18 -0
  189. package/dist/lib/modules/spend-to-get-history/services/index.js.map +1 -0
  190. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts +24 -0
  191. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts.map +1 -0
  192. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.js +136 -0
  193. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.js.map +1 -0
  194. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.d.ts +24 -0
  195. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.d.ts.map +1 -0
  196. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.js +108 -0
  197. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.js.map +1 -0
  198. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.d.ts +271 -0
  199. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.d.ts.map +1 -0
  200. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.js +62 -0
  201. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.js.map +1 -0
  202. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.d.ts +24 -0
  203. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.d.ts.map +1 -0
  204. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.js +116 -0
  205. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.js.map +1 -0
  206. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.d.ts +232 -0
  207. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.d.ts.map +1 -0
  208. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.js +30 -0
  209. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.js.map +1 -0
  210. package/dist/lib/modules/spend-to-get-history/validations/index.d.ts +2 -0
  211. package/dist/lib/modules/spend-to-get-history/validations/index.d.ts.map +1 -0
  212. package/dist/lib/modules/spend-to-get-history/validations/index.js +18 -0
  213. package/dist/lib/modules/spend-to-get-history/validations/index.js.map +1 -0
  214. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts +232 -0
  215. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts.map +1 -0
  216. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.js +30 -0
  217. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.js.map +1 -0
  218. package/dist/lib/modules/tournament/match/events/match-ended.consumer.d.ts +2 -0
  219. package/dist/lib/modules/tournament/match/events/match-ended.consumer.d.ts.map +1 -0
  220. package/dist/lib/modules/tournament/match/events/match-ended.consumer.js +15 -0
  221. package/dist/lib/modules/tournament/match/events/match-ended.consumer.js.map +1 -0
  222. package/dist/lib/modules/tournament/match/events/match-ended.event.d.ts +14 -0
  223. package/dist/lib/modules/tournament/match/events/match-ended.event.d.ts.map +1 -0
  224. package/dist/lib/modules/tournament/match/events/match-ended.event.js +12 -0
  225. package/dist/lib/modules/tournament/match/events/match-ended.event.js.map +1 -0
  226. package/dist/lib/modules/tournament/notification/jobs/notification.producer.d.ts +10 -0
  227. package/dist/lib/modules/tournament/notification/jobs/notification.producer.d.ts.map +1 -0
  228. package/dist/lib/modules/tournament/notification/jobs/notification.producer.js +23 -0
  229. package/dist/lib/modules/tournament/notification/jobs/notification.producer.js.map +1 -0
  230. package/dist/lib/modules/tournament/notification/jobs/notification.worker.d.ts +9 -0
  231. package/dist/lib/modules/tournament/notification/jobs/notification.worker.d.ts.map +1 -0
  232. package/dist/lib/modules/tournament/notification/jobs/notification.worker.js +82 -0
  233. package/dist/lib/modules/tournament/notification/jobs/notification.worker.js.map +1 -0
  234. package/dist/lib/modules/tournament/notification/notification.schedule.config.d.ts +10 -0
  235. package/dist/lib/modules/tournament/notification/notification.schedule.config.d.ts.map +1 -0
  236. package/dist/lib/modules/tournament/notification/notification.schedule.config.js +15 -0
  237. package/dist/lib/modules/tournament/notification/notification.schedule.config.js.map +1 -0
  238. package/dist/lib/modules/tournament/notification/notification.scheduler.service.d.ts +10 -0
  239. package/dist/lib/modules/tournament/notification/notification.scheduler.service.d.ts.map +1 -0
  240. package/dist/lib/modules/tournament/notification/notification.scheduler.service.js +73 -0
  241. package/dist/lib/modules/tournament/notification/notification.scheduler.service.js.map +1 -0
  242. package/dist/types/event/event-initializations.d.ts.map +1 -1
  243. package/dist/types/event/event-listeners/event-listeners.d.ts +2 -0
  244. package/dist/types/event/event-listeners/event-listeners.d.ts.map +1 -1
  245. package/dist/types/event/events/marketing-product-seed.event.d.ts +1 -2
  246. package/dist/types/event/events/marketing-product-seed.event.d.ts.map +1 -1
  247. package/dist/types/event/events/marketing-product-sync.event.d.ts +11 -0
  248. package/dist/types/event/events/marketing-product-sync.event.d.ts.map +1 -0
  249. package/dist/types/events/event-initializations.d.ts +2 -0
  250. package/dist/types/events/event-initializations.d.ts.map +1 -0
  251. package/dist/types/index.d.ts +536 -19
  252. package/dist/types/index.d.ts.map +1 -1
  253. package/dist/types/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  254. package/dist/types/modules/coupon/services/custom-coupon.service.d.ts +15 -3
  255. package/dist/types/modules/coupon/services/custom-coupon.service.d.ts.map +1 -1
  256. package/dist/types/modules/coupon/services/helper.service.d.ts +15 -3
  257. package/dist/types/modules/coupon/services/helper.service.d.ts.map +1 -1
  258. package/dist/types/modules/coupon/services/individual-store-coupon.service.d.ts +15 -3
  259. package/dist/types/modules/coupon/services/individual-store-coupon.service.d.ts.map +1 -1
  260. package/dist/types/modules/coupon/services/shops-categories-coupon.service.d.ts +15 -3
  261. package/dist/types/modules/coupon/services/shops-categories-coupon.service.d.ts.map +1 -1
  262. package/dist/types/modules/coupon/validations/create-coupon.validation.d.ts.map +1 -1
  263. package/dist/types/modules/deal-setting/services/deal-setting.service.d.ts.map +1 -1
  264. package/dist/types/modules/featured-setting/services/featured-setting.service.d.ts.map +1 -1
  265. package/dist/types/modules/limited-time-offer/campaign/campaign.router.d.ts +54 -8
  266. package/dist/types/modules/limited-time-offer/campaign/campaign.router.d.ts.map +1 -1
  267. package/dist/types/modules/limited-time-offer/campaign/jobs/index.d.ts.map +1 -1
  268. package/dist/types/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.d.ts +0 -1
  269. package/dist/types/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.d.ts.map +1 -1
  270. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts +16 -3
  271. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts.map +1 -1
  272. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.d.ts +2 -0
  273. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.d.ts.map +1 -1
  274. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts +242 -35
  275. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts.map +1 -1
  276. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts +10 -1
  277. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts.map +1 -1
  278. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.d.ts +3 -0
  279. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.d.ts.map +1 -1
  280. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts +1 -1
  281. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts.map +1 -1
  282. package/dist/types/modules/limited-time-offer/limited-time-offer.router.d.ts +249 -18
  283. package/dist/types/modules/limited-time-offer/limited-time-offer.router.d.ts.map +1 -1
  284. package/dist/types/modules/limited-time-offer/limited-time-offer.service.d.ts +2 -0
  285. package/dist/types/modules/limited-time-offer/limited-time-offer.service.d.ts.map +1 -1
  286. package/dist/types/modules/limited-time-offer/notification/limited-time-offer-notification.constants.d.ts +1 -1
  287. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts +30 -3
  288. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts.map +1 -1
  289. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts +18 -0
  290. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts.map +1 -1
  291. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts +195 -10
  292. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts.map +1 -1
  293. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.service.d.ts +1 -0
  294. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.service.d.ts.map +1 -0
  295. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts +547 -148
  296. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts.map +1 -1
  297. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts +11 -4
  298. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts.map +1 -1
  299. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts +18 -5
  300. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts.map +1 -1
  301. package/dist/types/modules/limited-time-offer/session/limited-time-offer-campaign-session.repository.d.ts +13 -0
  302. package/dist/types/modules/limited-time-offer/session/limited-time-offer-campaign-session.repository.d.ts.map +1 -0
  303. package/dist/types/modules/limited-time-offer/session/limited-time-offer-campaign-session.service.d.ts +21 -0
  304. package/dist/types/modules/limited-time-offer/session/limited-time-offer-campaign-session.service.d.ts.map +1 -0
  305. package/dist/types/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts +2 -0
  306. package/dist/types/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts.map +1 -1
  307. package/dist/types/modules/marketing/routers/marketing.router.d.ts +16 -0
  308. package/dist/types/modules/marketing/routers/marketing.router.d.ts.map +1 -1
  309. package/dist/types/modules/marketing/services/index.d.ts +3 -0
  310. package/dist/types/modules/marketing/services/index.d.ts.map +1 -1
  311. package/dist/types/modules/marketing/services/marketing-conflict.repository.d.ts +9 -0
  312. package/dist/types/modules/marketing/services/marketing-conflict.repository.d.ts.map +1 -0
  313. package/dist/types/modules/marketing/services/marketing-conflict.service.d.ts +46 -0
  314. package/dist/types/modules/marketing/services/marketing-conflict.service.d.ts.map +1 -0
  315. package/dist/types/modules/marketing/services/marketing.service.d.ts +7 -2
  316. package/dist/types/modules/marketing/services/marketing.service.d.ts.map +1 -1
  317. package/dist/types/modules/marketing/services/product-marketing.service.d.ts +7 -3
  318. package/dist/types/modules/marketing/services/product-marketing.service.d.ts.map +1 -1
  319. package/dist/types/modules/marketing/services/spend-to-get-marketing.repository.d.ts +14 -0
  320. package/dist/types/modules/marketing/services/spend-to-get-marketing.repository.d.ts.map +1 -0
  321. package/dist/types/modules/marketing/services/spend-to-get-marketing.service.d.ts +20 -0
  322. package/dist/types/modules/marketing/services/spend-to-get-marketing.service.d.ts.map +1 -0
  323. package/dist/types/modules/marketing/services/spend-to-get-progress.repository.d.ts +9 -0
  324. package/dist/types/modules/marketing/services/spend-to-get-progress.repository.d.ts.map +1 -0
  325. package/dist/types/modules/marketing/services/spend-to-get-progress.service.d.ts +37 -0
  326. package/dist/types/modules/marketing/services/spend-to-get-progress.service.d.ts.map +1 -0
  327. package/dist/types/modules/marketing/services/synchronize-product-marketing.service.d.ts.map +1 -1
  328. package/dist/types/modules/marketing/validations/all-marketings.validation.d.ts.map +1 -1
  329. package/dist/types/modules/marketing/validations/buy1-get1-marketing.validation.d.ts +3 -3
  330. package/dist/types/modules/marketing/validations/discount-marketing.validation.d.ts +3 -3
  331. package/dist/types/modules/marketing/validations/index.d.ts +1 -0
  332. package/dist/types/modules/marketing/validations/index.d.ts.map +1 -1
  333. package/dist/types/modules/marketing/validations/marketing.validation.d.ts +23 -0
  334. package/dist/types/modules/marketing/validations/marketing.validation.d.ts.map +1 -1
  335. package/dist/types/modules/marketing/validations/product-marketing.validation.d.ts +2 -2
  336. package/dist/types/modules/marketing/validations/spend-to-get-marketing.validation.d.ts +630 -0
  337. package/dist/types/modules/marketing/validations/spend-to-get-marketing.validation.d.ts.map +1 -0
  338. package/dist/types/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +1 -1
  339. package/dist/types/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +2 -2
  340. package/dist/types/modules/spend-to-get-history/routers/index.d.ts +2 -0
  341. package/dist/types/modules/spend-to-get-history/routers/index.d.ts.map +1 -0
  342. package/dist/types/modules/spend-to-get-history/services/index.d.ts +2 -0
  343. package/dist/types/modules/spend-to-get-history/services/index.d.ts.map +1 -0
  344. package/dist/types/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts +56 -0
  345. package/dist/types/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts.map +1 -0
  346. package/dist/types/modules/spend-to-get-history/spend-to-get-history.repository.d.ts +24 -0
  347. package/dist/types/modules/spend-to-get-history/spend-to-get-history.repository.d.ts.map +1 -0
  348. package/dist/types/modules/spend-to-get-history/spend-to-get-history.router.d.ts +271 -0
  349. package/dist/types/modules/spend-to-get-history/spend-to-get-history.router.d.ts.map +1 -0
  350. package/dist/types/modules/spend-to-get-history/spend-to-get-history.service.d.ts +56 -0
  351. package/dist/types/modules/spend-to-get-history/spend-to-get-history.service.d.ts.map +1 -0
  352. package/dist/types/modules/spend-to-get-history/spend-to-get-history.validation.d.ts +241 -0
  353. package/dist/types/modules/spend-to-get-history/spend-to-get-history.validation.d.ts.map +1 -0
  354. package/dist/types/modules/spend-to-get-history/validations/index.d.ts +2 -0
  355. package/dist/types/modules/spend-to-get-history/validations/index.d.ts.map +1 -0
  356. package/dist/types/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts +241 -0
  357. package/dist/types/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts.map +1 -0
  358. package/dist/types/modules/tournament/config/tournament-config.validation.d.ts +201 -0
  359. package/dist/types/modules/tournament/config/tournament-config.validation.d.ts.map +1 -0
  360. package/dist/types/modules/tournament/match/events/match-ended.consumer.d.ts +2 -0
  361. package/dist/types/modules/tournament/match/events/match-ended.consumer.d.ts.map +1 -0
  362. package/dist/types/modules/tournament/match/events/match-ended.event.d.ts +14 -0
  363. package/dist/types/modules/tournament/match/events/match-ended.event.d.ts.map +1 -0
  364. package/dist/types/modules/tournament/notification/jobs/notification.producer.d.ts +10 -0
  365. package/dist/types/modules/tournament/notification/jobs/notification.producer.d.ts.map +1 -0
  366. package/dist/types/modules/tournament/notification/jobs/notification.worker.d.ts +9 -0
  367. package/dist/types/modules/tournament/notification/jobs/notification.worker.d.ts.map +1 -0
  368. package/dist/types/modules/tournament/notification/notification.schedule.config.d.ts +10 -0
  369. package/dist/types/modules/tournament/notification/notification.schedule.config.d.ts.map +1 -0
  370. package/dist/types/modules/tournament/notification/notification.scheduler.service.d.ts +10 -0
  371. package/dist/types/modules/tournament/notification/notification.scheduler.service.d.ts.map +1 -0
  372. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"event-initializations.d.ts","sourceRoot":"/","sources":["event/event-initializations.ts"],"names":[],"mappings":"AAQA,wBAAsB,kBAAkB,kBAMvC"}
1
+ {"version":3,"file":"event-initializations.d.ts","sourceRoot":"/","sources":["event/event-initializations.ts"],"names":[],"mappings":"AAUA,wBAAsB,kBAAkB,kBAQvC"}
@@ -7,7 +7,9 @@ const jobs_1 = require("../modules/limited-time-offer/campaign/jobs");
7
7
  async function initEventListeners() {
8
8
  (0, event_listeners_1.subscribeToSyncAllProductsProductMarketingInfoProcessEvent)();
9
9
  await (0, event_listeners_1.subscribeToMarketingEntireMenuSeedEvent)();
10
+ await (0, event_listeners_1.subscribeToMarketingProductSyncEvent)();
10
11
  await (0, event_listeners_1.subscribeToMarketingReturnPunchCouponEvent)();
12
+ await (0, event_listeners_1.subscribeToMarketingReturnSpendToGetRedemptionEvent)();
11
13
  await (0, evaluate_predictions_consumer_1.EvaluatePredictionsConsumer)();
12
14
  await (0, jobs_1.startBullMQWorkers)();
13
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event-initializations.js","sourceRoot":"/","sources":["event/event-initializations.ts"],"names":[],"mappings":";;AAQA,gDAMC;AAdD,uEAI2C;AAC3C,kHAA2G;AAC3G,oEAA+E;AAExE,KAAK,UAAU,kBAAkB;IACpC,IAAA,4EAA0D,GAAE,CAAC;IAC7D,MAAM,IAAA,yDAAuC,GAAE,CAAC;IAChD,MAAM,IAAA,4DAA0C,GAAE,CAAC;IACnD,MAAM,IAAA,2DAA2B,GAAE,CAAC;IACpC,MAAM,IAAA,yBAAkB,GAAE,CAAC;AAC/B,CAAC","sourcesContent":["import {\n subscribeToSyncAllProductsProductMarketingInfoProcessEvent,\n subscribeToMarketingEntireMenuSeedEvent,\n subscribeToMarketingReturnPunchCouponEvent,\n} from './event-listeners/event-listeners';\nimport {EvaluatePredictionsConsumer} from '@modules/tournament/match/events/evaluate-predictions.consumer';\nimport { startBullMQWorkers } from '@modules/limited-time-offer/campaign/jobs';\n\nexport async function initEventListeners() {\n subscribeToSyncAllProductsProductMarketingInfoProcessEvent();\n await subscribeToMarketingEntireMenuSeedEvent();\n await subscribeToMarketingReturnPunchCouponEvent();\n await EvaluatePredictionsConsumer();\n await startBullMQWorkers();\n}\n"]}
1
+ {"version":3,"file":"event-initializations.js","sourceRoot":"/","sources":["event/event-initializations.ts"],"names":[],"mappings":";;AAUA,gDAQC;AAlBD,uEAM2C;AAC3C,kHAA2G;AAC3G,oEAA+E;AAExE,KAAK,UAAU,kBAAkB;IACpC,IAAA,4EAA0D,GAAE,CAAC;IAC7D,MAAM,IAAA,yDAAuC,GAAE,CAAC;IAChD,MAAM,IAAA,sDAAoC,GAAE,CAAC;IAC7C,MAAM,IAAA,4DAA0C,GAAE,CAAC;IACnD,MAAM,IAAA,qEAAmD,GAAE,CAAC;IAC5D,MAAM,IAAA,2DAA2B,GAAE,CAAC;IACpC,MAAM,IAAA,yBAAkB,GAAE,CAAC;AAC/B,CAAC","sourcesContent":["import {\n subscribeToSyncAllProductsProductMarketingInfoProcessEvent,\n subscribeToMarketingEntireMenuSeedEvent,\n subscribeToMarketingProductSyncEvent,\n subscribeToMarketingReturnPunchCouponEvent,\n subscribeToMarketingReturnSpendToGetRedemptionEvent,\n} from './event-listeners/event-listeners';\nimport {EvaluatePredictionsConsumer} from '@modules/tournament/match/events/evaluate-predictions.consumer';\nimport { startBullMQWorkers } from '@modules/limited-time-offer/campaign/jobs';\n\nexport async function initEventListeners() {\n subscribeToSyncAllProductsProductMarketingInfoProcessEvent();\n await subscribeToMarketingEntireMenuSeedEvent();\n await subscribeToMarketingProductSyncEvent();\n await subscribeToMarketingReturnPunchCouponEvent();\n await subscribeToMarketingReturnSpendToGetRedemptionEvent();\n await EvaluatePredictionsConsumer();\n await startBullMQWorkers();\n}\n"]}
@@ -1,4 +1,6 @@
1
1
  export declare function subscribeToSyncAllProductsProductMarketingInfoProcessEvent(): Promise<void>;
2
2
  export declare function subscribeToMarketingEntireMenuSeedEvent(): Promise<void>;
3
+ export declare function subscribeToMarketingProductSyncEvent(): Promise<void>;
3
4
  export declare function subscribeToMarketingReturnPunchCouponEvent(): Promise<void>;
5
+ export declare function subscribeToMarketingReturnSpendToGetRedemptionEvent(): Promise<void>;
4
6
  //# sourceMappingURL=event-listeners.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-listeners.d.ts","sourceRoot":"/","sources":["event/event-listeners/event-listeners.ts"],"names":[],"mappings":"AAaA,wBAAsB,0DAA0D,kBAI/E;AAgBD,wBAAsB,uCAAuC,kBA4D5D;AAED,wBAAsB,0CAA0C,kBAI/D"}
1
+ {"version":3,"file":"event-listeners.d.ts","sourceRoot":"/","sources":["event/event-listeners/event-listeners.ts"],"names":[],"mappings":"AAeA,wBAAsB,0DAA0D,kBAI/E;AAgBD,wBAAsB,uCAAuC,kBA+D5D;AAED,wBAAsB,oCAAoC,kBAqDzD;AAED,wBAAsB,0CAA0C,kBAI/D;AAED,wBAAsB,mDAAmD,kBAIxE"}
@@ -2,7 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.subscribeToSyncAllProductsProductMarketingInfoProcessEvent = subscribeToSyncAllProductsProductMarketingInfoProcessEvent;
4
4
  exports.subscribeToMarketingEntireMenuSeedEvent = subscribeToMarketingEntireMenuSeedEvent;
5
+ exports.subscribeToMarketingProductSyncEvent = subscribeToMarketingProductSyncEvent;
5
6
  exports.subscribeToMarketingReturnPunchCouponEvent = subscribeToMarketingReturnPunchCouponEvent;
7
+ exports.subscribeToMarketingReturnSpendToGetRedemptionEvent = subscribeToMarketingReturnSpendToGetRedemptionEvent;
6
8
  const event_1 = require("@lyxa.ai/core/dist/libraries/event");
7
9
  const core_1 = require("@lyxa.ai/core");
8
10
  const services_1 = require("../../modules/marketing/services");
@@ -11,7 +13,9 @@ const typegoose_1 = require("@typegoose/typegoose");
11
13
  const mongo_stream_changes_batch_process_shops_event_1 = require("@lyxa.ai/core/dist/libraries/event/events/mongo-stream-changes-batch-process-shops-event");
12
14
  const events_common_methods_1 = require("@lyxa.ai/core/dist/utilities/events-common-methods");
13
15
  const marketing_product_seed_event_1 = require("../events/marketing-product-seed.event");
16
+ const marketing_product_sync_event_1 = require("../events/marketing-product-sync.event");
14
17
  const services_2 = require("../../modules/punch-marketing-history/services");
18
+ const spend_to_get_history_service_1 = require("../../modules/spend-to-get-history/spend-to-get-history.service");
15
19
  async function subscribeToSyncAllProductsProductMarketingInfoProcessEvent() {
16
20
  await (0, event_1.subscribeToEvent)(EventEnums_1.PublishEventEnums.SYNC_ALL_PRODUCTS_PRODUCT_MARKETING_INFO_EVENT, async (payload) => {
17
21
  services_1.synchronizeProductMarketingService.processAllProductsProductMarketingInfoEvent(payload);
@@ -30,40 +34,43 @@ const noRequeue = (label, handler) => async (payload) => {
30
34
  async function subscribeToMarketingEntireMenuSeedEvent() {
31
35
  await (0, event_1.subscribeToEvent)(marketing_product_seed_event_1.MARKETING_ENTIRE_MENU_SEED_EVENT, noRequeue('entire-menu-seed', async (payload) => {
32
36
  const logger = (0, core_1.getLibraries)().getLoggerKit();
33
- const { marketingId: mid, shopId: sid, page, pageSize } = payload;
37
+ const { marketingId: mid, shopId: sid } = payload;
34
38
  if (!typegoose_1.mongoose.isValidObjectId(mid) || !typegoose_1.mongoose.isValidObjectId(sid)) {
35
39
  logger.error('entire-menu seed: invalid ids — dropping message', null, {
36
40
  tag: 'marketing.seed.entire-menu',
37
- data: { marketingId: mid, shopId: sid, page, pageSize },
41
+ data: { marketingId: mid, shopId: sid },
38
42
  });
39
43
  return;
40
44
  }
41
45
  const marketingId = new typegoose_1.mongoose.Types.ObjectId(mid);
42
46
  const shopId = new typegoose_1.mongoose.Types.ObjectId(sid);
47
+ const productIds = (payload.productIds ?? [])
48
+ .filter(id => typegoose_1.mongoose.isValidObjectId(id))
49
+ .map(id => new typegoose_1.mongoose.Types.ObjectId(id));
50
+ if (!productIds.length)
51
+ return;
43
52
  const MAX_ATTEMPTS = 3;
44
53
  let lastError;
45
54
  for (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {
46
55
  try {
47
- const productIds = await services_1.productMarketingService.upsertProductMarketingsForPage({
48
- shop: shopId,
56
+ const upserted = await services_1.productMarketingService.upsertProductMarketingsForPage({
49
57
  marketingId,
50
- page,
51
- pageSize,
58
+ productIds,
52
59
  isAppliedByCompany: payload.isAppliedByCompany,
53
60
  isBuy1Get1: payload.isBuy1Get1,
54
61
  value: payload.value,
55
62
  valueType: payload.valueType,
56
63
  });
57
- if (productIds.length) {
58
- await services_1.synchronizeProductMarketingService.syncProductMarketingInfoByProductIds(productIds);
64
+ if (upserted.length) {
65
+ await services_1.synchronizeProductMarketingService.syncProductMarketingInfoByProductIds(upserted);
59
66
  }
60
67
  (0, events_common_methods_1.publishSyncSingleShopSectionsInCacheProcessEvent)({
61
68
  shopId,
62
69
  operation: mongo_stream_changes_batch_process_shops_event_1.ChangeStreamOperationTypes.UPDATE,
63
70
  });
64
- logger.debug(`page ${page} seeded — ${productIds.length} products updated`, {
71
+ logger.debug(`entire-menu seed done — ${upserted.length} products updated`, {
65
72
  tag: 'marketing.seed.entire-menu',
66
- data: { marketingId: mid, shopId: sid, page, count: productIds.length },
73
+ data: { marketingId: mid, shopId: sid, count: upserted.length },
67
74
  });
68
75
  return;
69
76
  }
@@ -74,9 +81,54 @@ async function subscribeToMarketingEntireMenuSeedEvent() {
74
81
  }
75
82
  }
76
83
  }
77
- logger.error(`page ${page} seed failed after ${MAX_ATTEMPTS} attempts — manual reseed required`, lastError, {
84
+ logger.error(`entire-menu seed failed after ${MAX_ATTEMPTS} attempts — manual reseed required`, lastError, {
78
85
  tag: 'marketing.seed.entire-menu',
79
- data: { marketingId: mid, shopId: sid, page, pageSize },
86
+ data: { marketingId: mid, shopId: sid, count: productIds.length },
87
+ });
88
+ }));
89
+ }
90
+ async function subscribeToMarketingProductSyncEvent() {
91
+ await (0, event_1.subscribeToEvent)(marketing_product_sync_event_1.MARKETING_PRODUCT_SYNC_EVENT, noRequeue('marketing-product-sync', async (payload) => {
92
+ const logger = (0, core_1.getLibraries)().getLoggerKit();
93
+ const { marketingId: mid, shopId: sid } = payload;
94
+ if (!typegoose_1.mongoose.isValidObjectId(mid) || !typegoose_1.mongoose.isValidObjectId(sid)) {
95
+ logger.error('marketing-product-sync: invalid ids — dropping message', null, {
96
+ tag: 'marketing.product-sync',
97
+ data: { marketingId: mid, shopId: sid },
98
+ });
99
+ return;
100
+ }
101
+ const shopId = new typegoose_1.mongoose.Types.ObjectId(sid);
102
+ const productIds = (payload.productIds ?? [])
103
+ .filter(id => typegoose_1.mongoose.isValidObjectId(id))
104
+ .map(id => new typegoose_1.mongoose.Types.ObjectId(id));
105
+ if (!productIds.length)
106
+ return;
107
+ const MAX_ATTEMPTS = 3;
108
+ let lastError;
109
+ for (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {
110
+ try {
111
+ await services_1.synchronizeProductMarketingService.syncProductMarketingInfoByProductIds(productIds);
112
+ (0, events_common_methods_1.publishSyncSingleShopSectionsInCacheProcessEvent)({
113
+ shopId,
114
+ operation: mongo_stream_changes_batch_process_shops_event_1.ChangeStreamOperationTypes.UPDATE,
115
+ });
116
+ logger.debug(`marketing-product-sync done — ${productIds.length} products`, {
117
+ tag: 'marketing.product-sync',
118
+ data: { marketingId: mid, shopId: sid, count: productIds.length },
119
+ });
120
+ return;
121
+ }
122
+ catch (error) {
123
+ lastError = error;
124
+ if (attempt < MAX_ATTEMPTS) {
125
+ await new Promise(resolve => setTimeout(resolve, 2000 * attempt));
126
+ }
127
+ }
128
+ }
129
+ logger.error(`marketing-product-sync failed after ${MAX_ATTEMPTS} attempts`, lastError, {
130
+ tag: 'marketing.product-sync',
131
+ data: { marketingId: mid, shopId: sid, count: productIds.length },
80
132
  });
81
133
  }));
82
134
  }
@@ -85,4 +137,9 @@ async function subscribeToMarketingReturnPunchCouponEvent() {
85
137
  services_2.punchMarketingHistoryService.returnPunchCoupon(payload.orderId);
86
138
  });
87
139
  }
140
+ async function subscribeToMarketingReturnSpendToGetRedemptionEvent() {
141
+ await (0, event_1.subscribeToEvent)(EventEnums_1.PublishEventEnums.MARKETING_RETURN_SPEND_TO_GET_REDEMPTION_EVENT, async (payload) => {
142
+ spend_to_get_history_service_1.spendToGetHistoryService.returnRedemption(payload.orderId);
143
+ });
144
+ }
88
145
  //# sourceMappingURL=event-listeners.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-listeners.js","sourceRoot":"/","sources":["event/event-listeners/event-listeners.ts"],"names":[],"mappings":"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","sourcesContent":["import { subscribeToEvent } from '@lyxa.ai/core/dist/libraries/event';\nimport { getLibraries } from '@lyxa.ai/core';\nimport { productMarketingService, synchronizeProductMarketingService } from '@modules/marketing/services';\nimport { PublishEventEnums } from '@lyxa.ai/core/dist/libraries/event/EventEnums';\nimport { mongoose } from '@typegoose/typegoose';\nimport { ChangeStreamOperationTypes } from '@lyxa.ai/core/dist/libraries/event/events/mongo-stream-changes-batch-process-shops-event';\nimport { publishSyncSingleShopSectionsInCacheProcessEvent } from '@lyxa.ai/core/dist/utilities/events-common-methods';\nimport {\n\tMARKETING_ENTIRE_MENU_SEED_EVENT,\n\tMarketingProductSeedPayload,\n} from '../events/marketing-product-seed.event';\nimport { punchMarketingHistoryService } from '@modules/punch-marketing-history/services';\n\nexport async function subscribeToSyncAllProductsProductMarketingInfoProcessEvent() {\n\tawait subscribeToEvent(PublishEventEnums.SYNC_ALL_PRODUCTS_PRODUCT_MARKETING_INFO_EVENT, async payload => {\n\t\tsynchronizeProductMarketingService.processAllProductsProductMarketingInfoEvent(payload);\n\t});\n}\n\n// subscribeToEvent nacks with requeue=true on a thrown handler, so a failing message\n// bounces back to the queue forever. Swallow throws here -> handler returns -> message acked.\nconst noRequeue =\n\t<T>(label: string, handler: (payload: T) => Promise<void>) =>\n\tasync (payload: T): Promise<void> => {\n\t\ttry {\n\t\t\tawait handler(payload);\n\t\t} catch (err) {\n\t\t\tgetLibraries().getLoggerKit().error(`${label}: handler failed — dropping (no requeue)`, err, {\n\t\t\t\ttag: 'event.no-requeue',\n\t\t\t});\n\t\t}\n\t};\n\nexport async function subscribeToMarketingEntireMenuSeedEvent() {\n\tawait subscribeToEvent(MARKETING_ENTIRE_MENU_SEED_EVENT, noRequeue('entire-menu-seed', async (payload: MarketingProductSeedPayload) => {\n\t\tconst logger = getLibraries().getLoggerKit();\n\t\tconst { marketingId: mid, shopId: sid, page, pageSize } = payload;\n\n\t\tif (!mongoose.isValidObjectId(mid) || !mongoose.isValidObjectId(sid)) {\n\t\t\tlogger.error('entire-menu seed: invalid ids — dropping message', null, {\n\t\t\t\ttag: 'marketing.seed.entire-menu',\n\t\t\t\tdata: { marketingId: mid, shopId: sid, page, pageSize },\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst marketingId = new mongoose.Types.ObjectId(mid);\n\t\tconst shopId = new mongoose.Types.ObjectId(sid);\n\n\t\tconst MAX_ATTEMPTS = 3;\n\t\tlet lastError: unknown;\n\n\t\tfor (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {\n\t\t\ttry {\n\t\t\t\tconst productIds = await productMarketingService.upsertProductMarketingsForPage({\n\t\t\t\t\tshop: shopId,\n\t\t\t\t\tmarketingId,\n\t\t\t\t\tpage,\n\t\t\t\t\tpageSize,\n\t\t\t\t\tisAppliedByCompany: payload.isAppliedByCompany,\n\t\t\t\t\tisBuy1Get1: payload.isBuy1Get1,\n\t\t\t\t\tvalue: payload.value,\n\t\t\t\t\tvalueType: payload.valueType,\n\t\t\t\t});\n\n\t\t\t\tif (productIds.length) {\n\t\t\t\t\tawait synchronizeProductMarketingService.syncProductMarketingInfoByProductIds(productIds);\n\t\t\t\t}\n\n\t\t\t\tpublishSyncSingleShopSectionsInCacheProcessEvent({\n\t\t\t\t\tshopId,\n\t\t\t\t\toperation: ChangeStreamOperationTypes.UPDATE,\n\t\t\t\t});\n\n\t\t\t\tlogger.debug(`page ${page} seeded — ${productIds.length} products updated`, {\n\t\t\t\t\ttag: 'marketing.seed.entire-menu',\n\t\t\t\t\tdata: { marketingId: mid, shopId: sid, page, count: productIds.length },\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t} catch (error) {\n\t\t\t\tlastError = error;\n\t\t\t\tif (attempt < MAX_ATTEMPTS) {\n\t\t\t\t\tawait new Promise(resolve => setTimeout(resolve, 2000 * attempt));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlogger.error(`page ${page} seed failed after ${MAX_ATTEMPTS} attempts — manual reseed required`, lastError, {\n\t\t\ttag: 'marketing.seed.entire-menu',\n\t\t\tdata: { marketingId: mid, shopId: sid, page, pageSize },\n\t\t});\n\t}));\n}\n\nexport async function subscribeToMarketingReturnPunchCouponEvent() {\n\tawait subscribeToEvent(PublishEventEnums.MARKETING_RETURN_PUNCH_COUPON_EVENT, async payload => {\n\t\tpunchMarketingHistoryService.returnPunchCoupon(payload.orderId);\n\t});\n}\n"]}
1
+ {"version":3,"file":"event-listeners.js","sourceRoot":"/","sources":["event/event-listeners/event-listeners.ts"],"names":[],"mappings":"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","sourcesContent":["import { subscribeToEvent } from '@lyxa.ai/core/dist/libraries/event';\nimport { getLibraries } from '@lyxa.ai/core';\nimport { productMarketingService, synchronizeProductMarketingService } from '@modules/marketing/services';\nimport { PublishEventEnums } from '@lyxa.ai/core/dist/libraries/event/EventEnums';\nimport { mongoose } from '@typegoose/typegoose';\nimport { ChangeStreamOperationTypes } from '@lyxa.ai/core/dist/libraries/event/events/mongo-stream-changes-batch-process-shops-event';\nimport { publishSyncSingleShopSectionsInCacheProcessEvent } from '@lyxa.ai/core/dist/utilities/events-common-methods';\nimport {\n\tMARKETING_ENTIRE_MENU_SEED_EVENT,\n\tMarketingProductSeedPayload,\n} from '../events/marketing-product-seed.event';\nimport { MARKETING_PRODUCT_SYNC_EVENT, MarketingProductSyncPayload } from '../events/marketing-product-sync.event';\nimport { punchMarketingHistoryService } from '@modules/punch-marketing-history/services';\nimport { spendToGetHistoryService } from '@modules/spend-to-get-history/spend-to-get-history.service';\n\nexport async function subscribeToSyncAllProductsProductMarketingInfoProcessEvent() {\n\tawait subscribeToEvent(PublishEventEnums.SYNC_ALL_PRODUCTS_PRODUCT_MARKETING_INFO_EVENT, async payload => {\n\t\tsynchronizeProductMarketingService.processAllProductsProductMarketingInfoEvent(payload);\n\t});\n}\n\n// subscribeToEvent nacks with requeue=true on a thrown handler, so a failing message\n// bounces back to the queue forever. Swallow throws here -> handler returns -> message acked.\nconst noRequeue =\n\t<T>(label: string, handler: (payload: T) => Promise<void>) =>\n\tasync (payload: T): Promise<void> => {\n\t\ttry {\n\t\t\tawait handler(payload);\n\t\t} catch (err) {\n\t\t\tgetLibraries().getLoggerKit().error(`${label}: handler failed — dropping (no requeue)`, err, {\n\t\t\t\ttag: 'event.no-requeue',\n\t\t\t});\n\t\t}\n\t};\n\nexport async function subscribeToMarketingEntireMenuSeedEvent() {\n\tawait subscribeToEvent(MARKETING_ENTIRE_MENU_SEED_EVENT, noRequeue('entire-menu-seed', async (payload: MarketingProductSeedPayload) => {\n\t\tconst logger = getLibraries().getLoggerKit();\n\t\tconst { marketingId: mid, shopId: sid } = payload;\n\n\t\tif (!mongoose.isValidObjectId(mid) || !mongoose.isValidObjectId(sid)) {\n\t\t\tlogger.error('entire-menu seed: invalid ids — dropping message', null, {\n\t\t\t\ttag: 'marketing.seed.entire-menu',\n\t\t\t\tdata: { marketingId: mid, shopId: sid },\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst marketingId = new mongoose.Types.ObjectId(mid);\n\t\tconst shopId = new mongoose.Types.ObjectId(sid);\n\t\tconst productIds = (payload.productIds ?? [])\n\t\t\t.filter(id => mongoose.isValidObjectId(id))\n\t\t\t.map(id => new mongoose.Types.ObjectId(id));\n\n\t\tif (!productIds.length) return;\n\n\t\tconst MAX_ATTEMPTS = 3;\n\t\tlet lastError: unknown;\n\n\t\tfor (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {\n\t\t\ttry {\n\t\t\t\tconst upserted = await productMarketingService.upsertProductMarketingsForPage({\n\t\t\t\t\tmarketingId,\n\t\t\t\t\tproductIds,\n\t\t\t\t\tisAppliedByCompany: payload.isAppliedByCompany,\n\t\t\t\t\tisBuy1Get1: payload.isBuy1Get1,\n\t\t\t\t\tvalue: payload.value,\n\t\t\t\t\tvalueType: payload.valueType,\n\t\t\t\t});\n\n\t\t\t\tif (upserted.length) {\n\t\t\t\t\tawait synchronizeProductMarketingService.syncProductMarketingInfoByProductIds(upserted);\n\t\t\t\t}\n\n\t\t\t\tpublishSyncSingleShopSectionsInCacheProcessEvent({\n\t\t\t\t\tshopId,\n\t\t\t\t\toperation: ChangeStreamOperationTypes.UPDATE,\n\t\t\t\t});\n\n\t\t\t\tlogger.debug(`entire-menu seed done — ${upserted.length} products updated`, {\n\t\t\t\t\ttag: 'marketing.seed.entire-menu',\n\t\t\t\t\tdata: { marketingId: mid, shopId: sid, count: upserted.length },\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t} catch (error) {\n\t\t\t\tlastError = error;\n\t\t\t\tif (attempt < MAX_ATTEMPTS) {\n\t\t\t\t\tawait new Promise(resolve => setTimeout(resolve, 2000 * attempt));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlogger.error(`entire-menu seed failed after ${MAX_ATTEMPTS} attempts — manual reseed required`, lastError, {\n\t\t\ttag: 'marketing.seed.entire-menu',\n\t\t\tdata: { marketingId: mid, shopId: sid, count: productIds.length },\n\t\t});\n\t}));\n}\n\nexport async function subscribeToMarketingProductSyncEvent() {\n\tawait subscribeToEvent(\n\t\tMARKETING_PRODUCT_SYNC_EVENT,\n\t\tnoRequeue('marketing-product-sync', async (payload: MarketingProductSyncPayload) => {\n\t\t\tconst logger = getLibraries().getLoggerKit();\n\t\t\tconst { marketingId: mid, shopId: sid } = payload;\n\n\t\t\tif (!mongoose.isValidObjectId(mid) || !mongoose.isValidObjectId(sid)) {\n\t\t\t\tlogger.error('marketing-product-sync: invalid ids — dropping message', null, {\n\t\t\t\t\ttag: 'marketing.product-sync',\n\t\t\t\t\tdata: { marketingId: mid, shopId: sid },\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst shopId = new mongoose.Types.ObjectId(sid);\n\t\t\tconst productIds = (payload.productIds ?? [])\n\t\t\t\t.filter(id => mongoose.isValidObjectId(id))\n\t\t\t\t.map(id => new mongoose.Types.ObjectId(id));\n\n\t\t\tif (!productIds.length) return;\n\n\t\t\tconst MAX_ATTEMPTS = 3;\n\t\t\tlet lastError: unknown;\n\n\t\t\tfor (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {\n\t\t\t\ttry {\n\t\t\t\t\tawait synchronizeProductMarketingService.syncProductMarketingInfoByProductIds(productIds);\n\n\t\t\t\t\tpublishSyncSingleShopSectionsInCacheProcessEvent({\n\t\t\t\t\t\tshopId,\n\t\t\t\t\t\toperation: ChangeStreamOperationTypes.UPDATE,\n\t\t\t\t\t});\n\n\t\t\t\t\tlogger.debug(`marketing-product-sync done — ${productIds.length} products`, {\n\t\t\t\t\t\ttag: 'marketing.product-sync',\n\t\t\t\t\t\tdata: { marketingId: mid, shopId: sid, count: productIds.length },\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlastError = error;\n\t\t\t\t\tif (attempt < MAX_ATTEMPTS) {\n\t\t\t\t\t\tawait new Promise(resolve => setTimeout(resolve, 2000 * attempt));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlogger.error(`marketing-product-sync failed after ${MAX_ATTEMPTS} attempts`, lastError, {\n\t\t\t\ttag: 'marketing.product-sync',\n\t\t\t\tdata: { marketingId: mid, shopId: sid, count: productIds.length },\n\t\t\t});\n\t\t})\n\t);\n}\n\nexport async function subscribeToMarketingReturnPunchCouponEvent() {\n\tawait subscribeToEvent(PublishEventEnums.MARKETING_RETURN_PUNCH_COUPON_EVENT, async payload => {\n\t\tpunchMarketingHistoryService.returnPunchCoupon(payload.orderId);\n\t});\n}\n\nexport async function subscribeToMarketingReturnSpendToGetRedemptionEvent() {\n\tawait subscribeToEvent(PublishEventEnums.MARKETING_RETURN_SPEND_TO_GET_REDEMPTION_EVENT, async payload => {\n\t\tspendToGetHistoryService.returnRedemption(payload.orderId);\n\t});\n}\n"]}
@@ -6,8 +6,7 @@ export interface MarketingProductSeedPayload {
6
6
  shopId: string;
7
7
  isAppliedByCompany: boolean;
8
8
  isBuy1Get1: boolean;
9
- page: number;
10
- pageSize: number;
9
+ productIds: string[];
11
10
  value?: number;
12
11
  valueType?: ValueType;
13
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"marketing-product-seed.event.d.ts","sourceRoot":"/","sources":["event/events/marketing-product-seed.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8CAA8C,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,eAAO,MAAM,gCAAgC,qCAAqC,CAAC;AAEnF,MAAM,WAAW,2BAA2B;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,qBAAa,4BAA6B,SAAQ,SAAS,CAAC,2BAA2B,CAAC;gBAC3E,OAAO,EAAE,2BAA2B;CAGhD"}
1
+ {"version":3,"file":"marketing-product-seed.event.d.ts","sourceRoot":"/","sources":["event/events/marketing-product-seed.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8CAA8C,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,eAAO,MAAM,gCAAgC,qCAAqC,CAAC;AAEnF,MAAM,WAAW,2BAA2B;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,qBAAa,4BAA6B,SAAQ,SAAS,CAAC,2BAA2B,CAAC;gBAC3E,OAAO,EAAE,2BAA2B;CAGhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"marketing-product-seed.event.js","sourceRoot":"/","sources":["event/events/marketing-product-seed.event.ts"],"names":[],"mappings":";;;AAAA,4EAAyE;AAG5D,QAAA,gCAAgC,GAAG,kCAAkC,CAAC;AAanF,MAAa,4BAA6B,SAAQ,qBAAsC;IACvF,YAAY,OAAoC;QAC/C,KAAK,CAAC,wCAAgC,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;CACD;AAJD,oEAIC","sourcesContent":["import { BaseEvent } from '@lyxa.ai/core/dist/libraries/event/BaseEvent';\nimport { ValueType } from '@lyxa.ai/core/dist/utilities/enum';\n\nexport const MARKETING_ENTIRE_MENU_SEED_EVENT = 'marketing_entire_menu_seed_event';\n\nexport interface MarketingProductSeedPayload {\n\tmarketingId: string;\n\tshopId: string;\n\tisAppliedByCompany: boolean;\n\tisBuy1Get1: boolean;\n\tpage: number;\n\tpageSize: number;\n\tvalue?: number;\n\tvalueType?: ValueType;\n}\n\nexport class MarketingEntireMenuSeedEvent extends BaseEvent<MarketingProductSeedPayload> {\n\tconstructor(payload: MarketingProductSeedPayload) {\n\t\tsuper(MARKETING_ENTIRE_MENU_SEED_EVENT, payload);\n\t}\n}\n"]}
1
+ {"version":3,"file":"marketing-product-seed.event.js","sourceRoot":"/","sources":["event/events/marketing-product-seed.event.ts"],"names":[],"mappings":";;;AAAA,4EAAyE;AAG5D,QAAA,gCAAgC,GAAG,kCAAkC,CAAC;AAYnF,MAAa,4BAA6B,SAAQ,qBAAsC;IACvF,YAAY,OAAoC;QAC/C,KAAK,CAAC,wCAAgC,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;CACD;AAJD,oEAIC","sourcesContent":["import { BaseEvent } from '@lyxa.ai/core/dist/libraries/event/BaseEvent';\nimport { ValueType } from '@lyxa.ai/core/dist/utilities/enum';\n\nexport const MARKETING_ENTIRE_MENU_SEED_EVENT = 'marketing_entire_menu_seed_event';\n\nexport interface MarketingProductSeedPayload {\n\tmarketingId: string;\n\tshopId: string;\n\tisAppliedByCompany: boolean;\n\tisBuy1Get1: boolean;\n\tproductIds: string[];\n\tvalue?: number;\n\tvalueType?: ValueType;\n}\n\nexport class MarketingEntireMenuSeedEvent extends BaseEvent<MarketingProductSeedPayload> {\n\tconstructor(payload: MarketingProductSeedPayload) {\n\t\tsuper(MARKETING_ENTIRE_MENU_SEED_EVENT, payload);\n\t}\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { BaseEvent } from '@lyxa.ai/core/dist/libraries/event/BaseEvent';
2
+ export declare const MARKETING_PRODUCT_SYNC_EVENT = "marketing_product_sync_event";
3
+ export interface MarketingProductSyncPayload {
4
+ marketingId: string;
5
+ shopId: string;
6
+ productIds: string[];
7
+ }
8
+ export declare class MarketingProductSyncEvent extends BaseEvent<MarketingProductSyncPayload> {
9
+ constructor(payload: MarketingProductSyncPayload);
10
+ }
11
+ //# sourceMappingURL=marketing-product-sync.event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketing-product-sync.event.d.ts","sourceRoot":"/","sources":["event/events/marketing-product-sync.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8CAA8C,CAAC;AAEzE,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAE3E,MAAM,WAAW,2BAA2B;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,qBAAa,yBAA0B,SAAQ,SAAS,CAAC,2BAA2B,CAAC;gBACxE,OAAO,EAAE,2BAA2B;CAGhD"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketingProductSyncEvent = exports.MARKETING_PRODUCT_SYNC_EVENT = void 0;
4
+ const BaseEvent_1 = require("@lyxa.ai/core/dist/libraries/event/BaseEvent");
5
+ exports.MARKETING_PRODUCT_SYNC_EVENT = 'marketing_product_sync_event';
6
+ class MarketingProductSyncEvent extends BaseEvent_1.BaseEvent {
7
+ constructor(payload) {
8
+ super(exports.MARKETING_PRODUCT_SYNC_EVENT, payload);
9
+ }
10
+ }
11
+ exports.MarketingProductSyncEvent = MarketingProductSyncEvent;
12
+ //# sourceMappingURL=marketing-product-sync.event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketing-product-sync.event.js","sourceRoot":"/","sources":["event/events/marketing-product-sync.event.ts"],"names":[],"mappings":";;;AAAA,4EAAyE;AAE5D,QAAA,4BAA4B,GAAG,8BAA8B,CAAC;AAQ3E,MAAa,yBAA0B,SAAQ,qBAAsC;IACpF,YAAY,OAAoC;QAC/C,KAAK,CAAC,oCAA4B,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACD;AAJD,8DAIC","sourcesContent":["import { BaseEvent } from '@lyxa.ai/core/dist/libraries/event/BaseEvent';\n\nexport const MARKETING_PRODUCT_SYNC_EVENT = 'marketing_product_sync_event';\n\nexport interface MarketingProductSyncPayload {\n\tmarketingId: string;\n\tshopId: string;\n\tproductIds: string[];\n}\n\nexport class MarketingProductSyncEvent extends BaseEvent<MarketingProductSyncPayload> {\n\tconstructor(payload: MarketingProductSyncPayload) {\n\t\tsuper(MARKETING_PRODUCT_SYNC_EVENT, payload);\n\t}\n}\n"]}