@lyxa.ai/marketing 1.0.61 → 1.0.62

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 +0 -2
  3. package/dist/lib/event/event-initializations.js.map +1 -1
  4. package/dist/lib/event/event-listeners/event-listeners.d.ts +0 -2
  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 -69
  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 +194 -650
  12. package/dist/lib/index.d.ts.map +1 -1
  13. package/dist/lib/index.js +1 -5
  14. package/dist/lib/index.js.map +1 -1
  15. package/dist/lib/modules/coupon/routers/coupon.router.d.ts +59 -0
  16. package/dist/lib/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  17. package/dist/lib/modules/coupon/routers/coupon.router.js +7 -0
  18. package/dist/lib/modules/coupon/routers/coupon.router.js.map +1 -1
  19. package/dist/lib/modules/coupon/services/coupon.service.d.ts +1 -0
  20. package/dist/lib/modules/coupon/services/coupon.service.d.ts.map +1 -1
  21. package/dist/lib/modules/coupon/services/coupon.service.js +3 -0
  22. package/dist/lib/modules/coupon/services/coupon.service.js.map +1 -1
  23. package/dist/lib/modules/coupon/validations/create-coupon.validation.d.ts.map +1 -1
  24. package/dist/lib/modules/coupon/validations/create-coupon.validation.js +1 -4
  25. package/dist/lib/modules/coupon/validations/create-coupon.validation.js.map +1 -1
  26. package/dist/lib/modules/deal-setting/services/deal-setting.service.d.ts.map +1 -1
  27. package/dist/lib/modules/deal-setting/services/deal-setting.service.js +1 -4
  28. package/dist/lib/modules/deal-setting/services/deal-setting.service.js.map +1 -1
  29. package/dist/lib/modules/featured-setting/services/featured-setting.service.d.ts.map +1 -1
  30. package/dist/lib/modules/featured-setting/services/featured-setting.service.js +0 -3
  31. package/dist/lib/modules/featured-setting/services/featured-setting.service.js.map +1 -1
  32. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.d.ts +8 -54
  33. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.d.ts.map +1 -1
  34. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.js +0 -11
  35. package/dist/lib/modules/limited-time-offer/campaign/campaign.router.js.map +1 -1
  36. package/dist/lib/modules/limited-time-offer/campaign/jobs/index.d.ts.map +1 -1
  37. package/dist/lib/modules/limited-time-offer/campaign/jobs/index.js +0 -6
  38. package/dist/lib/modules/limited-time-offer/campaign/jobs/index.js.map +1 -1
  39. package/dist/lib/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.d.ts +1 -0
  40. package/dist/lib/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.d.ts.map +1 -1
  41. package/dist/lib/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.js +6 -2
  42. package/dist/lib/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.js.map +1 -1
  43. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts +3 -16
  44. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts.map +1 -1
  45. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.js +3 -22
  46. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.js.map +1 -1
  47. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.d.ts +0 -2
  48. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.d.ts.map +1 -1
  49. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.js +0 -12
  50. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.js.map +1 -1
  51. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts +35 -242
  52. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts.map +1 -1
  53. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.js +1 -19
  54. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.js.map +1 -1
  55. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts +1 -8
  56. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts.map +1 -1
  57. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.js +1 -64
  58. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.js.map +1 -1
  59. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.d.ts +0 -3
  60. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.d.ts.map +1 -1
  61. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.js +8 -66
  62. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.js.map +1 -1
  63. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts +1 -1
  64. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts.map +1 -1
  65. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.js +19 -37
  66. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.js.map +1 -1
  67. package/dist/lib/modules/limited-time-offer/limited-time-offer.router.d.ts +18 -249
  68. package/dist/lib/modules/limited-time-offer/limited-time-offer.router.d.ts.map +1 -1
  69. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.d.ts +0 -2
  70. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.d.ts.map +1 -1
  71. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.js +3 -15
  72. package/dist/lib/modules/limited-time-offer/limited-time-offer.service.js.map +1 -1
  73. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.constants.d.ts +1 -1
  74. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.constants.js +1 -1
  75. package/dist/lib/modules/limited-time-offer/notification/limited-time-offer-notification.constants.js.map +1 -1
  76. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts +3 -24
  77. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts.map +1 -1
  78. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.js +1 -19
  79. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.js.map +1 -1
  80. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts +0 -10
  81. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts.map +1 -1
  82. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.js +0 -43
  83. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.js.map +1 -1
  84. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts +10 -195
  85. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts.map +1 -1
  86. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.js +0 -29
  87. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.js.map +1 -1
  88. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts +33 -428
  89. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts.map +1 -1
  90. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.js +6 -16
  91. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.js.map +1 -1
  92. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts +4 -7
  93. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts.map +1 -1
  94. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.js +7 -42
  95. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.js.map +1 -1
  96. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts +3 -14
  97. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts.map +1 -1
  98. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.js +16 -76
  99. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.js.map +1 -1
  100. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts +0 -1
  101. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts.map +1 -1
  102. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.js +0 -29
  103. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.js.map +1 -1
  104. package/dist/lib/modules/marketing/routers/marketing.router.d.ts +0 -14
  105. package/dist/lib/modules/marketing/routers/marketing.router.d.ts.map +1 -1
  106. package/dist/lib/modules/marketing/routers/marketing.router.js +0 -5
  107. package/dist/lib/modules/marketing/routers/marketing.router.js.map +1 -1
  108. package/dist/lib/modules/marketing/services/index.d.ts +0 -3
  109. package/dist/lib/modules/marketing/services/index.d.ts.map +1 -1
  110. package/dist/lib/modules/marketing/services/index.js +0 -3
  111. package/dist/lib/modules/marketing/services/index.js.map +1 -1
  112. package/dist/lib/modules/marketing/services/marketing.service.d.ts +2 -7
  113. package/dist/lib/modules/marketing/services/marketing.service.d.ts.map +1 -1
  114. package/dist/lib/modules/marketing/services/marketing.service.js +51 -97
  115. package/dist/lib/modules/marketing/services/marketing.service.js.map +1 -1
  116. package/dist/lib/modules/marketing/services/product-marketing.service.d.ts +3 -2
  117. package/dist/lib/modules/marketing/services/product-marketing.service.d.ts.map +1 -1
  118. package/dist/lib/modules/marketing/services/product-marketing.service.js +13 -42
  119. package/dist/lib/modules/marketing/services/product-marketing.service.js.map +1 -1
  120. package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.d.ts.map +1 -1
  121. package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.js +27 -95
  122. package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.js.map +1 -1
  123. package/dist/lib/modules/marketing/validations/all-marketings.validation.d.ts.map +1 -1
  124. package/dist/lib/modules/marketing/validations/all-marketings.validation.js +0 -3
  125. package/dist/lib/modules/marketing/validations/all-marketings.validation.js.map +1 -1
  126. package/dist/lib/modules/marketing/validations/buy1-get1-marketing.validation.d.ts +3 -3
  127. package/dist/lib/modules/marketing/validations/discount-marketing.validation.d.ts +3 -3
  128. package/dist/lib/modules/marketing/validations/index.d.ts +0 -1
  129. package/dist/lib/modules/marketing/validations/index.d.ts.map +1 -1
  130. package/dist/lib/modules/marketing/validations/index.js +0 -1
  131. package/dist/lib/modules/marketing/validations/index.js.map +1 -1
  132. package/dist/lib/modules/marketing/validations/marketing.validation.d.ts +0 -17
  133. package/dist/lib/modules/marketing/validations/marketing.validation.d.ts.map +1 -1
  134. package/dist/lib/modules/marketing/validations/marketing.validation.js +1 -7
  135. package/dist/lib/modules/marketing/validations/marketing.validation.js.map +1 -1
  136. package/dist/lib/modules/marketing/validations/product-marketing.validation.d.ts +2 -2
  137. package/dist/lib/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +1 -1
  138. package/dist/lib/modules/punch-marketing-history/services/punch-marketing-history.service.d.ts +1 -0
  139. package/dist/lib/modules/punch-marketing-history/services/punch-marketing-history.service.d.ts.map +1 -1
  140. package/dist/lib/modules/punch-marketing-history/services/punch-marketing-history.service.js +49 -2
  141. package/dist/lib/modules/punch-marketing-history/services/punch-marketing-history.service.js.map +1 -1
  142. package/dist/lib/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +2 -2
  143. package/dist/types/event/event-initializations.d.ts.map +1 -1
  144. package/dist/types/event/event-listeners/event-listeners.d.ts +0 -2
  145. package/dist/types/event/event-listeners/event-listeners.d.ts.map +1 -1
  146. package/dist/types/event/events/marketing-product-seed.event.d.ts +2 -1
  147. package/dist/types/event/events/marketing-product-seed.event.d.ts.map +1 -1
  148. package/dist/types/index.d.ts +194 -650
  149. package/dist/types/index.d.ts.map +1 -1
  150. package/dist/types/modules/coupon/routers/coupon.router.d.ts +59 -0
  151. package/dist/types/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  152. package/dist/types/modules/coupon/services/coupon.service.d.ts +1 -0
  153. package/dist/types/modules/coupon/services/coupon.service.d.ts.map +1 -1
  154. package/dist/types/modules/coupon/validations/create-coupon.validation.d.ts.map +1 -1
  155. package/dist/types/modules/deal-setting/services/deal-setting.service.d.ts.map +1 -1
  156. package/dist/types/modules/featured-setting/services/featured-setting.service.d.ts.map +1 -1
  157. package/dist/types/modules/limited-time-offer/campaign/campaign.router.d.ts +8 -54
  158. package/dist/types/modules/limited-time-offer/campaign/campaign.router.d.ts.map +1 -1
  159. package/dist/types/modules/limited-time-offer/campaign/jobs/index.d.ts.map +1 -1
  160. package/dist/types/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.d.ts +1 -0
  161. package/dist/types/modules/limited-time-offer/campaign/jobs/limited-time-offer-campaign.worker.d.ts.map +1 -1
  162. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts +3 -16
  163. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts.map +1 -1
  164. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.d.ts +0 -2
  165. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.d.ts.map +1 -1
  166. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts +35 -242
  167. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts.map +1 -1
  168. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts +1 -8
  169. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts.map +1 -1
  170. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.d.ts +0 -3
  171. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-scheduler.service.d.ts.map +1 -1
  172. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts +1 -1
  173. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts.map +1 -1
  174. package/dist/types/modules/limited-time-offer/limited-time-offer.router.d.ts +18 -249
  175. package/dist/types/modules/limited-time-offer/limited-time-offer.router.d.ts.map +1 -1
  176. package/dist/types/modules/limited-time-offer/limited-time-offer.service.d.ts +0 -2
  177. package/dist/types/modules/limited-time-offer/limited-time-offer.service.d.ts.map +1 -1
  178. package/dist/types/modules/limited-time-offer/notification/limited-time-offer-notification.constants.d.ts +1 -1
  179. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts +3 -24
  180. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts.map +1 -1
  181. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts +0 -10
  182. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts.map +1 -1
  183. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts +10 -195
  184. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts.map +1 -1
  185. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts +33 -428
  186. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts.map +1 -1
  187. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts +4 -7
  188. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts.map +1 -1
  189. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts +3 -14
  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/patterns/repository/MarketingMetricsRepository.d.ts +0 -1
  192. package/dist/types/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts.map +1 -1
  193. package/dist/types/modules/marketing/routers/marketing.router.d.ts +0 -14
  194. package/dist/types/modules/marketing/routers/marketing.router.d.ts.map +1 -1
  195. package/dist/types/modules/marketing/services/index.d.ts +0 -3
  196. package/dist/types/modules/marketing/services/index.d.ts.map +1 -1
  197. package/dist/types/modules/marketing/services/marketing.service.d.ts +2 -7
  198. package/dist/types/modules/marketing/services/marketing.service.d.ts.map +1 -1
  199. package/dist/types/modules/marketing/services/product-marketing.service.d.ts +3 -7
  200. package/dist/types/modules/marketing/services/product-marketing.service.d.ts.map +1 -1
  201. package/dist/types/modules/marketing/services/synchronize-product-marketing.service.d.ts.map +1 -1
  202. package/dist/types/modules/marketing/validations/all-marketings.validation.d.ts.map +1 -1
  203. package/dist/types/modules/marketing/validations/buy1-get1-marketing.validation.d.ts +3 -3
  204. package/dist/types/modules/marketing/validations/discount-marketing.validation.d.ts +3 -3
  205. package/dist/types/modules/marketing/validations/index.d.ts +0 -1
  206. package/dist/types/modules/marketing/validations/index.d.ts.map +1 -1
  207. package/dist/types/modules/marketing/validations/marketing.validation.d.ts +0 -17
  208. package/dist/types/modules/marketing/validations/marketing.validation.d.ts.map +1 -1
  209. package/dist/types/modules/marketing/validations/product-marketing.validation.d.ts +2 -2
  210. package/dist/types/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +1 -1
  211. package/dist/types/modules/punch-marketing-history/services/punch-marketing-history.service.d.ts +5 -0
  212. package/dist/types/modules/punch-marketing-history/services/punch-marketing-history.service.d.ts.map +1 -1
  213. package/dist/types/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +2 -2
  214. package/package.json +2 -2
  215. package/dist/lib/event/events/marketing-product-sync.event.d.ts +0 -11
  216. package/dist/lib/event/events/marketing-product-sync.event.d.ts.map +0 -1
  217. package/dist/lib/event/events/marketing-product-sync.event.js +0 -12
  218. package/dist/lib/event/events/marketing-product-sync.event.js.map +0 -1
  219. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.repository.d.ts +0 -13
  220. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.repository.d.ts.map +0 -1
  221. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.repository.js +0 -75
  222. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.repository.js.map +0 -1
  223. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.service.d.ts +0 -21
  224. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.service.d.ts.map +0 -1
  225. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.service.js +0 -83
  226. package/dist/lib/modules/limited-time-offer/session/limited-time-offer-campaign-session.service.js.map +0 -1
  227. package/dist/lib/modules/marketing/services/marketing-conflict.repository.d.ts +0 -9
  228. package/dist/lib/modules/marketing/services/marketing-conflict.repository.d.ts.map +0 -1
  229. package/dist/lib/modules/marketing/services/marketing-conflict.repository.js +0 -63
  230. package/dist/lib/modules/marketing/services/marketing-conflict.repository.js.map +0 -1
  231. package/dist/lib/modules/marketing/services/marketing-conflict.service.d.ts +0 -27
  232. package/dist/lib/modules/marketing/services/marketing-conflict.service.d.ts.map +0 -1
  233. package/dist/lib/modules/marketing/services/marketing-conflict.service.js +0 -135
  234. package/dist/lib/modules/marketing/services/marketing-conflict.service.js.map +0 -1
  235. package/dist/lib/modules/marketing/services/spend-to-get-marketing.repository.d.ts +0 -14
  236. package/dist/lib/modules/marketing/services/spend-to-get-marketing.repository.d.ts.map +0 -1
  237. package/dist/lib/modules/marketing/services/spend-to-get-marketing.repository.js +0 -82
  238. package/dist/lib/modules/marketing/services/spend-to-get-marketing.repository.js.map +0 -1
  239. package/dist/lib/modules/marketing/services/spend-to-get-marketing.service.d.ts +0 -11
  240. package/dist/lib/modules/marketing/services/spend-to-get-marketing.service.d.ts.map +0 -1
  241. package/dist/lib/modules/marketing/services/spend-to-get-marketing.service.js +0 -99
  242. package/dist/lib/modules/marketing/services/spend-to-get-marketing.service.js.map +0 -1
  243. package/dist/lib/modules/marketing/services/spend-to-get-progress.repository.d.ts +0 -9
  244. package/dist/lib/modules/marketing/services/spend-to-get-progress.repository.d.ts.map +0 -1
  245. package/dist/lib/modules/marketing/services/spend-to-get-progress.repository.js +0 -69
  246. package/dist/lib/modules/marketing/services/spend-to-get-progress.repository.js.map +0 -1
  247. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.d.ts +0 -31
  248. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.d.ts.map +0 -1
  249. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.js +0 -123
  250. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.js.map +0 -1
  251. package/dist/lib/modules/marketing/validations/spend-to-get-marketing.validation.d.ts +0 -617
  252. package/dist/lib/modules/marketing/validations/spend-to-get-marketing.validation.d.ts.map +0 -1
  253. package/dist/lib/modules/marketing/validations/spend-to-get-marketing.validation.js +0 -119
  254. package/dist/lib/modules/marketing/validations/spend-to-get-marketing.validation.js.map +0 -1
  255. package/dist/lib/modules/spend-to-get-history/routers/index.d.ts +0 -2
  256. package/dist/lib/modules/spend-to-get-history/routers/index.d.ts.map +0 -1
  257. package/dist/lib/modules/spend-to-get-history/routers/index.js +0 -18
  258. package/dist/lib/modules/spend-to-get-history/routers/index.js.map +0 -1
  259. package/dist/lib/modules/spend-to-get-history/routers/spend-to-get-history.router.js +0 -62
  260. package/dist/lib/modules/spend-to-get-history/routers/spend-to-get-history.router.js.map +0 -1
  261. package/dist/lib/modules/spend-to-get-history/services/index.d.ts +0 -2
  262. package/dist/lib/modules/spend-to-get-history/services/index.d.ts.map +0 -1
  263. package/dist/lib/modules/spend-to-get-history/services/index.js +0 -18
  264. package/dist/lib/modules/spend-to-get-history/services/index.js.map +0 -1
  265. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts +0 -24
  266. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts.map +0 -1
  267. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.js +0 -136
  268. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.js.map +0 -1
  269. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.d.ts +0 -24
  270. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.d.ts.map +0 -1
  271. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.js +0 -97
  272. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.js.map +0 -1
  273. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.d.ts +0 -271
  274. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.d.ts.map +0 -1
  275. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.js +0 -62
  276. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.js.map +0 -1
  277. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.d.ts +0 -24
  278. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.d.ts.map +0 -1
  279. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.js +0 -116
  280. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.js.map +0 -1
  281. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.d.ts +0 -232
  282. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.d.ts.map +0 -1
  283. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.js +0 -30
  284. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.js.map +0 -1
  285. package/dist/lib/modules/spend-to-get-history/validations/index.d.ts +0 -2
  286. package/dist/lib/modules/spend-to-get-history/validations/index.d.ts.map +0 -1
  287. package/dist/lib/modules/spend-to-get-history/validations/index.js +0 -18
  288. package/dist/lib/modules/spend-to-get-history/validations/index.js.map +0 -1
  289. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts +0 -232
  290. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts.map +0 -1
  291. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.js +0 -30
  292. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.js.map +0 -1
  293. package/dist/lib/modules/tournament/match/events/match-ended.consumer.d.ts +0 -2
  294. package/dist/lib/modules/tournament/match/events/match-ended.consumer.d.ts.map +0 -1
  295. package/dist/lib/modules/tournament/match/events/match-ended.consumer.js +0 -15
  296. package/dist/lib/modules/tournament/match/events/match-ended.consumer.js.map +0 -1
  297. package/dist/lib/modules/tournament/match/events/match-ended.event.d.ts +0 -14
  298. package/dist/lib/modules/tournament/match/events/match-ended.event.d.ts.map +0 -1
  299. package/dist/lib/modules/tournament/match/events/match-ended.event.js +0 -12
  300. package/dist/lib/modules/tournament/match/events/match-ended.event.js.map +0 -1
  301. package/dist/lib/modules/tournament/notification/jobs/notification.producer.d.ts +0 -10
  302. package/dist/lib/modules/tournament/notification/jobs/notification.producer.d.ts.map +0 -1
  303. package/dist/lib/modules/tournament/notification/jobs/notification.producer.js +0 -23
  304. package/dist/lib/modules/tournament/notification/jobs/notification.producer.js.map +0 -1
  305. package/dist/lib/modules/tournament/notification/jobs/notification.worker.d.ts +0 -9
  306. package/dist/lib/modules/tournament/notification/jobs/notification.worker.d.ts.map +0 -1
  307. package/dist/lib/modules/tournament/notification/jobs/notification.worker.js +0 -82
  308. package/dist/lib/modules/tournament/notification/jobs/notification.worker.js.map +0 -1
  309. package/dist/lib/modules/tournament/notification/notification.schedule.config.d.ts +0 -10
  310. package/dist/lib/modules/tournament/notification/notification.schedule.config.d.ts.map +0 -1
  311. package/dist/lib/modules/tournament/notification/notification.schedule.config.js +0 -15
  312. package/dist/lib/modules/tournament/notification/notification.schedule.config.js.map +0 -1
  313. package/dist/lib/modules/tournament/notification/notification.scheduler.service.d.ts +0 -10
  314. package/dist/lib/modules/tournament/notification/notification.scheduler.service.d.ts.map +0 -1
  315. package/dist/lib/modules/tournament/notification/notification.scheduler.service.js +0 -73
  316. package/dist/lib/modules/tournament/notification/notification.scheduler.service.js.map +0 -1
  317. package/dist/types/event/events/marketing-product-sync.event.d.ts +0 -11
  318. package/dist/types/event/events/marketing-product-sync.event.d.ts.map +0 -1
  319. package/dist/types/events/event-initializations.d.ts +0 -2
  320. package/dist/types/events/event-initializations.d.ts.map +0 -1
  321. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.service.d.ts +0 -1
  322. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.service.d.ts.map +0 -1
  323. package/dist/types/modules/limited-time-offer/session/limited-time-offer-campaign-session.repository.d.ts +0 -13
  324. package/dist/types/modules/limited-time-offer/session/limited-time-offer-campaign-session.repository.d.ts.map +0 -1
  325. package/dist/types/modules/limited-time-offer/session/limited-time-offer-campaign-session.service.d.ts +0 -21
  326. package/dist/types/modules/limited-time-offer/session/limited-time-offer-campaign-session.service.d.ts.map +0 -1
  327. package/dist/types/modules/marketing/services/marketing-conflict.repository.d.ts +0 -9
  328. package/dist/types/modules/marketing/services/marketing-conflict.repository.d.ts.map +0 -1
  329. package/dist/types/modules/marketing/services/marketing-conflict.service.d.ts +0 -41
  330. package/dist/types/modules/marketing/services/marketing-conflict.service.d.ts.map +0 -1
  331. package/dist/types/modules/marketing/services/spend-to-get-marketing.repository.d.ts +0 -14
  332. package/dist/types/modules/marketing/services/spend-to-get-marketing.repository.d.ts.map +0 -1
  333. package/dist/types/modules/marketing/services/spend-to-get-marketing.service.d.ts +0 -20
  334. package/dist/types/modules/marketing/services/spend-to-get-marketing.service.d.ts.map +0 -1
  335. package/dist/types/modules/marketing/services/spend-to-get-progress.repository.d.ts +0 -9
  336. package/dist/types/modules/marketing/services/spend-to-get-progress.repository.d.ts.map +0 -1
  337. package/dist/types/modules/marketing/services/spend-to-get-progress.service.d.ts +0 -37
  338. package/dist/types/modules/marketing/services/spend-to-get-progress.service.d.ts.map +0 -1
  339. package/dist/types/modules/marketing/validations/spend-to-get-marketing.validation.d.ts +0 -630
  340. package/dist/types/modules/marketing/validations/spend-to-get-marketing.validation.d.ts.map +0 -1
  341. package/dist/types/modules/spend-to-get-history/routers/index.d.ts +0 -2
  342. package/dist/types/modules/spend-to-get-history/routers/index.d.ts.map +0 -1
  343. package/dist/types/modules/spend-to-get-history/services/index.d.ts +0 -2
  344. package/dist/types/modules/spend-to-get-history/services/index.d.ts.map +0 -1
  345. package/dist/types/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts +0 -56
  346. package/dist/types/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts.map +0 -1
  347. package/dist/types/modules/spend-to-get-history/spend-to-get-history.repository.d.ts +0 -24
  348. package/dist/types/modules/spend-to-get-history/spend-to-get-history.repository.d.ts.map +0 -1
  349. package/dist/types/modules/spend-to-get-history/spend-to-get-history.router.d.ts +0 -271
  350. package/dist/types/modules/spend-to-get-history/spend-to-get-history.router.d.ts.map +0 -1
  351. package/dist/types/modules/spend-to-get-history/spend-to-get-history.service.d.ts +0 -56
  352. package/dist/types/modules/spend-to-get-history/spend-to-get-history.service.d.ts.map +0 -1
  353. package/dist/types/modules/spend-to-get-history/spend-to-get-history.validation.d.ts +0 -241
  354. package/dist/types/modules/spend-to-get-history/spend-to-get-history.validation.d.ts.map +0 -1
  355. package/dist/types/modules/spend-to-get-history/validations/index.d.ts +0 -2
  356. package/dist/types/modules/spend-to-get-history/validations/index.d.ts.map +0 -1
  357. package/dist/types/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts +0 -241
  358. package/dist/types/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts.map +0 -1
  359. package/dist/types/modules/tournament/config/tournament-config.validation.d.ts +0 -201
  360. package/dist/types/modules/tournament/config/tournament-config.validation.d.ts.map +0 -1
  361. package/dist/types/modules/tournament/match/events/match-ended.consumer.d.ts +0 -2
  362. package/dist/types/modules/tournament/match/events/match-ended.consumer.d.ts.map +0 -1
  363. package/dist/types/modules/tournament/match/events/match-ended.event.d.ts +0 -14
  364. package/dist/types/modules/tournament/match/events/match-ended.event.d.ts.map +0 -1
  365. package/dist/types/modules/tournament/notification/jobs/notification.producer.d.ts +0 -10
  366. package/dist/types/modules/tournament/notification/jobs/notification.producer.d.ts.map +0 -1
  367. package/dist/types/modules/tournament/notification/jobs/notification.worker.d.ts +0 -9
  368. package/dist/types/modules/tournament/notification/jobs/notification.worker.d.ts.map +0 -1
  369. package/dist/types/modules/tournament/notification/notification.schedule.config.d.ts +0 -10
  370. package/dist/types/modules/tournament/notification/notification.schedule.config.d.ts.map +0 -1
  371. package/dist/types/modules/tournament/notification/notification.scheduler.service.d.ts +0 -10
  372. package/dist/types/modules/tournament/notification/notification.scheduler.service.d.ts.map +0 -1
@@ -1,99 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- var __metadata = (this && this.__metadata) || function (k, v) {
42
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
- };
44
- Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.spendToGetMarketingService = exports.SpendToGetMarketingService = void 0;
46
- const typedi_1 = __importStar(require("typedi"));
47
- const server_1 = require("@trpc/server");
48
- const enum_1 = require("@lyxa.ai/core/dist/utilities/enum");
49
- const marketing_conflict_service_1 = require("./marketing-conflict.service");
50
- const spend_to_get_marketing_repository_1 = require("./spend-to-get-marketing.repository");
51
- let SpendToGetMarketingService = class SpendToGetMarketingService {
52
- repository;
53
- constructor() {
54
- this.repository = typedi_1.default.get(spend_to_get_marketing_repository_1.SpendToGetMarketingRepository);
55
- }
56
- async create(data) {
57
- const shop = await this.repository.findShopById(data.shop);
58
- if (!shop) {
59
- throw new server_1.TRPCError({
60
- code: 'NOT_FOUND',
61
- message: `Shop not found`,
62
- });
63
- }
64
- return await this.repository.create(data);
65
- }
66
- async update(_id, data) {
67
- if (data.tiers) {
68
- const existing = await this.repository.findById(_id);
69
- if (existing && existing.status === enum_1.MarketingStatus.ACTIVE) {
70
- const oldGroups = marketing_conflict_service_1.marketingConflictService.getRewardTypeGroups(existing.marketingType, existing.tiers);
71
- const newGroups = marketing_conflict_service_1.marketingConflictService.getRewardTypeGroups(existing.marketingType, data.tiers);
72
- const addedGroups = newGroups.filter(group => !oldGroups.includes(group));
73
- if (addedGroups.length > 0) {
74
- await marketing_conflict_service_1.marketingConflictService.assertNoConflict({
75
- shop: existing.shop,
76
- duration: data.duration ?? existing.duration,
77
- rewardTypeGroups: addedGroups,
78
- excludeMarketingId: _id,
79
- });
80
- }
81
- }
82
- }
83
- const record = await this.repository.updateById(_id, data);
84
- if (!record) {
85
- throw new server_1.TRPCError({
86
- code: 'NOT_FOUND',
87
- message: `Record not found`,
88
- });
89
- }
90
- return record;
91
- }
92
- };
93
- exports.SpendToGetMarketingService = SpendToGetMarketingService;
94
- exports.SpendToGetMarketingService = SpendToGetMarketingService = __decorate([
95
- (0, typedi_1.Service)(),
96
- __metadata("design:paramtypes", [])
97
- ], SpendToGetMarketingService);
98
- exports.spendToGetMarketingService = typedi_1.default.get(SpendToGetMarketingService);
99
- //# sourceMappingURL=spend-to-get-marketing.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spend-to-get-marketing.service.js","sourceRoot":"/","sources":["modules/marketing/services/spend-to-get-marketing.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA4C;AAC5C,yCAAyC;AAGzC,4DAAoE;AAKpE,6EAAwE;AACxE,2FAAoF;AAG7E,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAC9B,UAAU,CAAgC;IAElD;QACC,IAAI,CAAC,UAAU,GAAG,gBAAS,CAAC,GAAG,CAAC,iEAA6B,CAAC,CAAC;IAChE,CAAC;IAMM,KAAK,CAAC,MAAM,CAAC,IAAe;QAClC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,IAAI,kBAAS,CAAC;gBACnB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,gBAAgB;aACzB,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAOM,KAAK,CAAC,MAAM,CAAC,GAA4B,EAAE,IAAe;QAChE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAErD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,sBAAe,CAAC,MAAM,EAAE,CAAC;gBAC5D,MAAM,SAAS,GAAG,qDAAwB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACvG,MAAM,SAAS,GAAG,qDAAwB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnG,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE1E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,qDAAwB,CAAC,gBAAgB,CAAC;wBAC/C,IAAI,EAAE,QAAQ,CAAC,IAA+B;wBAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ;wBAC5C,gBAAgB,EAAE,WAAW;wBAC7B,kBAAkB,EAAE,GAAG;qBACvB,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE3D,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,kBAAS,CAAC;gBACnB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,kBAAkB;aAC3B,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;CACD,CAAA;AA1DY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,gBAAO,GAAE;;GACG,0BAA0B,CA0DtC;AAEY,QAAA,0BAA0B,GAAG,gBAAS,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC","sourcesContent":["import Container, { Service } from 'typedi';\nimport { TRPCError } from '@trpc/server';\nimport { DocumentType, mongoose } from '@typegoose/typegoose';\nimport { SpendToGetMarketing as Model } from '@lyxa.ai/core/dist/libraries/mongo/models/';\nimport { MarketingStatus } from '@lyxa.ai/core/dist/utilities/enum';\nimport {\n\tCreateSpendToGetMarketingDTO as CreateDTO,\n\tUpdateSpendToGetMarketingDTO as UpdateDTO,\n} from '@modules/marketing/validations';\nimport { marketingConflictService } from './marketing-conflict.service';\nimport { SpendToGetMarketingRepository } from './spend-to-get-marketing.repository';\n\n@Service()\nexport class SpendToGetMarketingService {\n\tprivate repository: SpendToGetMarketingRepository;\n\n\tconstructor() {\n\t\tthis.repository = Container.get(SpendToGetMarketingRepository);\n\t}\n\n\t/**\n\t * Create a new record\n\t * @param data Data for the new record\n\t */\n\tpublic async create(data: CreateDTO): Promise<DocumentType<Model>> {\n\t\tconst shop = await this.repository.findShopById(data.shop);\n\t\tif (!shop) {\n\t\t\tthrow new TRPCError({\n\t\t\t\tcode: 'NOT_FOUND',\n\t\t\t\tmessage: `Shop not found`,\n\t\t\t});\n\t\t}\n\t\treturn await this.repository.create(data);\n\t}\n\n\t/**\n\t * Update record\n\t * @param id ID of the record\n\t * @param data Data to update\n\t */\n\tpublic async update(_id: mongoose.Types.ObjectId, data: UpdateDTO): Promise<DocumentType<Model>> {\n\t\tif (data.tiers) {\n\t\t\tconst existing = await this.repository.findById(_id);\n\n\t\t\tif (existing && existing.status === MarketingStatus.ACTIVE) {\n\t\t\t\tconst oldGroups = marketingConflictService.getRewardTypeGroups(existing.marketingType, existing.tiers);\n\t\t\t\tconst newGroups = marketingConflictService.getRewardTypeGroups(existing.marketingType, data.tiers);\n\t\t\t\tconst addedGroups = newGroups.filter(group => !oldGroups.includes(group));\n\n\t\t\t\tif (addedGroups.length > 0) {\n\t\t\t\t\tawait marketingConflictService.assertNoConflict({\n\t\t\t\t\t\tshop: existing.shop as mongoose.Types.ObjectId,\n\t\t\t\t\t\tduration: data.duration ?? existing.duration,\n\t\t\t\t\t\trewardTypeGroups: addedGroups,\n\t\t\t\t\t\texcludeMarketingId: _id,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst record = await this.repository.updateById(_id, data);\n\n\t\tif (!record) {\n\t\t\tthrow new TRPCError({\n\t\t\t\tcode: 'NOT_FOUND',\n\t\t\t\tmessage: `Record not found`,\n\t\t\t});\n\t\t}\n\n\t\treturn record;\n\t}\n}\n\nexport const spendToGetMarketingService = Container.get(SpendToGetMarketingService);\n"]}
@@ -1,9 +0,0 @@
1
- import { DocumentType, mongoose } from '@typegoose/typegoose';
2
- import { SpendToGetMarketing } from '@lyxa.ai/core/dist/libraries/mongo/models';
3
- export declare class SpendToGetProgressRepository {
4
- private model;
5
- constructor();
6
- findActiveByShop(shop: mongoose.Types.ObjectId, now: Date): Promise<DocumentType<SpendToGetMarketing> | null>;
7
- }
8
- export declare const spendToGetProgressRepository: SpendToGetProgressRepository;
9
- //# sourceMappingURL=spend-to-get-progress.repository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spend-to-get-progress.repository.d.ts","sourceRoot":"/","sources":["modules/marketing/services/spend-to-get-progress.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAA4B,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAI1G,qBACa,4BAA4B;IACxC,OAAO,CAAC,KAAK,CAAyE;;IAOhF,gBAAgB,CACrB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC7B,GAAG,EAAE,IAAI,GACP,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;CAQpD;AAED,eAAO,MAAM,4BAA4B,8BAA8C,CAAC"}
@@ -1,69 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- var __metadata = (this && this.__metadata) || function (k, v) {
42
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
- };
44
- Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.spendToGetProgressRepository = exports.SpendToGetProgressRepository = void 0;
46
- const typedi_1 = __importStar(require("typedi"));
47
- const models_1 = require("@lyxa.ai/core/dist/libraries/mongo/models");
48
- const enum_1 = require("@lyxa.ai/core/dist/utilities/enum");
49
- let SpendToGetProgressRepository = class SpendToGetProgressRepository {
50
- model;
51
- constructor() {
52
- this.model = models_1.SpendToGetMarketingModel;
53
- }
54
- async findActiveByShop(shop, now) {
55
- return this.model.findOne({
56
- shop,
57
- status: enum_1.MarketingStatus.ACTIVE,
58
- 'duration.start': { $lte: now },
59
- $or: [{ 'duration.end': { $exists: false } }, { 'duration.end': { $gt: now } }],
60
- });
61
- }
62
- };
63
- exports.SpendToGetProgressRepository = SpendToGetProgressRepository;
64
- exports.SpendToGetProgressRepository = SpendToGetProgressRepository = __decorate([
65
- (0, typedi_1.Service)(),
66
- __metadata("design:paramtypes", [])
67
- ], SpendToGetProgressRepository);
68
- exports.spendToGetProgressRepository = typedi_1.default.get(SpendToGetProgressRepository);
69
- //# sourceMappingURL=spend-to-get-progress.repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spend-to-get-progress.repository.js","sourceRoot":"/","sources":["modules/marketing/services/spend-to-get-progress.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA4C;AAE5C,sEAA0G;AAC1G,4DAAoE;AAI7D,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IAChC,KAAK,CAAyE;IAEtF;QACC,IAAI,CAAC,KAAK,GAAG,iCACwB,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,gBAAgB,CACrB,IAA6B,EAC7B,GAAS;QAET,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACzB,IAAI;YACJ,MAAM,EAAE,sBAAe,CAAC,MAAM;YAC9B,gBAAgB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;YAC/B,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;SAC/E,CAAC,CAAC;IACJ,CAAC;CACD,CAAA;AAnBY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,gBAAO,GAAE;;GACG,4BAA4B,CAmBxC;AAEY,QAAA,4BAA4B,GAAG,gBAAS,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC","sourcesContent":["import Container, { Service } from 'typedi';\nimport { DocumentType, mongoose } from '@typegoose/typegoose';\nimport { SpendToGetMarketingModel, SpendToGetMarketing } from '@lyxa.ai/core/dist/libraries/mongo/models';\nimport { MarketingStatus } from '@lyxa.ai/core/dist/utilities/enum';\nimport { SoftDeleteModel } from '@lyxa.ai/core/dist/libraries/mongo/plugins/soft-delete-plugin';\n\n@Service()\nexport class SpendToGetProgressRepository {\n\tprivate model: typeof SpendToGetMarketingModel & SoftDeleteModel<SpendToGetMarketing>;\n\n\tconstructor() {\n\t\tthis.model = SpendToGetMarketingModel as typeof SpendToGetMarketingModel &\n\t\t\tSoftDeleteModel<SpendToGetMarketing>;\n\t}\n\n\tasync findActiveByShop(\n\t\tshop: mongoose.Types.ObjectId,\n\t\tnow: Date\n\t): Promise<DocumentType<SpendToGetMarketing> | null> {\n\t\treturn this.model.findOne({\n\t\t\tshop,\n\t\t\tstatus: MarketingStatus.ACTIVE,\n\t\t\t'duration.start': { $lte: now },\n\t\t\t$or: [{ 'duration.end': { $exists: false } }, { 'duration.end': { $gt: now } }],\n\t\t});\n\t}\n}\n\nexport const spendToGetProgressRepository = Container.get(SpendToGetProgressRepository);\n"]}
@@ -1,31 +0,0 @@
1
- import { mongoose } from '@typegoose/typegoose';
2
- import { SpendToGetRewardType } from '@lyxa.ai/core/dist/utilities/enum';
3
- export interface SpendToGetTierProgress {
4
- minSpend: number;
5
- rewardType: SpendToGetRewardType;
6
- rewardValue?: number;
7
- maxDiscountCap?: number;
8
- isMaxDiscountCapEnabled?: boolean;
9
- isUnlocked: boolean;
10
- }
11
- export interface SpendToGetProgressResult {
12
- marketing?: mongoose.Types.ObjectId;
13
- tiers: SpendToGetTierProgress[];
14
- appliedTier?: SpendToGetTierProgress;
15
- discountAmount: number;
16
- nextTier?: SpendToGetTierProgress;
17
- amountToNextTier?: number;
18
- isRedeemable: boolean;
19
- }
20
- export declare class SpendToGetProgressService {
21
- private repository;
22
- constructor();
23
- getProgress(params: {
24
- shop: mongoose.Types.ObjectId;
25
- basketTotal: number;
26
- userId?: mongoose.Types.ObjectId;
27
- }): Promise<SpendToGetProgressResult>;
28
- private calculateDiscountAmount;
29
- }
30
- export declare const spendToGetProgressService: SpendToGetProgressService;
31
- //# sourceMappingURL=spend-to-get-progress.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spend-to-get-progress.service.d.ts","sourceRoot":"/","sources":["modules/marketing/services/spend-to-get-progress.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAKzE,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,oBAAoB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACxC,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IACpC,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;CACtB;AAQD,qBACa,yBAAyB;IACrC,OAAO,CAAC,UAAU,CAA+B;;IAYpC,WAAW,CAAC,MAAM,EAAE;QAChC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC9B,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;KACjC,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA2DrC,OAAO,CAAC,uBAAuB;CAgB/B;AAED,eAAO,MAAM,yBAAyB,2BAA2C,CAAC"}
@@ -1,123 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- var __metadata = (this && this.__metadata) || function (k, v) {
42
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
- };
44
- Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.spendToGetProgressService = exports.SpendToGetProgressService = void 0;
46
- const typedi_1 = __importStar(require("typedi"));
47
- const enum_1 = require("@lyxa.ai/core/dist/utilities/enum");
48
- const dayjs_1 = require("@lyxa.ai/core/dist/utilities/dayjs");
49
- const spend_to_get_history_service_1 = require("../../spend-to-get-history/spend-to-get-history.service");
50
- const spend_to_get_progress_repository_1 = require("./spend-to-get-progress.repository");
51
- const EMPTY_PROGRESS = {
52
- tiers: [],
53
- discountAmount: 0,
54
- isRedeemable: false,
55
- };
56
- let SpendToGetProgressService = class SpendToGetProgressService {
57
- repository;
58
- constructor() {
59
- this.repository = typedi_1.default.get(spend_to_get_progress_repository_1.SpendToGetProgressRepository);
60
- }
61
- async getProgress(params) {
62
- const now = (0, dayjs_1.dayjs)().toDate();
63
- const marketing = await this.repository.findActiveByShop(params.shop, now);
64
- if (!marketing || marketing.tiers.length === 0) {
65
- return EMPTY_PROGRESS;
66
- }
67
- const budgetExhausted = Boolean(marketing.isSpendLimitEnabled && marketing.spendLimit && (marketing.amountSpent ?? 0) >= marketing.spendLimit);
68
- const userLimitReached = Boolean(params.userId) && Boolean(marketing.isPerUserLimitEnabled) && Boolean(marketing.perUserLimit)
69
- ? await spend_to_get_history_service_1.spendToGetHistoryService.hasUserReachedLimit(params.userId, marketing._id, marketing.perUserLimit)
70
- : false;
71
- const isRedeemable = !budgetExhausted && !userLimitReached;
72
- const tierProgressList = [...marketing.tiers]
73
- .sort((a, b) => a.minSpend - b.minSpend)
74
- .map(tier => ({
75
- minSpend: tier.minSpend,
76
- rewardType: tier.rewardType,
77
- rewardValue: tier.rewardValue,
78
- maxDiscountCap: tier.maxDiscountCap,
79
- isMaxDiscountCapEnabled: tier.isMaxDiscountCapEnabled,
80
- isUnlocked: params.basketTotal >= tier.minSpend,
81
- }));
82
- let appliedTier;
83
- let nextTier;
84
- for (const tier of tierProgressList) {
85
- if (tier.isUnlocked) {
86
- appliedTier = tier;
87
- }
88
- else if (!nextTier) {
89
- nextTier = tier;
90
- }
91
- }
92
- const discountAmount = isRedeemable && appliedTier ? this.calculateDiscountAmount(appliedTier, params.basketTotal) : 0;
93
- return {
94
- marketing: marketing._id,
95
- tiers: tierProgressList,
96
- appliedTier: isRedeemable ? appliedTier : undefined,
97
- discountAmount,
98
- nextTier,
99
- amountToNextTier: nextTier ? Math.max(nextTier.minSpend - params.basketTotal, 0) : undefined,
100
- isRedeemable: isRedeemable && Boolean(appliedTier),
101
- };
102
- }
103
- calculateDiscountAmount(tier, basketTotal) {
104
- if (tier.rewardType === enum_1.SpendToGetRewardType.FREE_DELIVERY) {
105
- return 0;
106
- }
107
- if (tier.rewardType === enum_1.SpendToGetRewardType.FIXED) {
108
- return tier.rewardValue ?? 0;
109
- }
110
- let amount = ((tier.rewardValue ?? 0) / 100) * basketTotal;
111
- if (tier.isMaxDiscountCapEnabled && tier.maxDiscountCap) {
112
- amount = Math.min(amount, tier.maxDiscountCap);
113
- }
114
- return amount;
115
- }
116
- };
117
- exports.SpendToGetProgressService = SpendToGetProgressService;
118
- exports.SpendToGetProgressService = SpendToGetProgressService = __decorate([
119
- (0, typedi_1.Service)(),
120
- __metadata("design:paramtypes", [])
121
- ], SpendToGetProgressService);
122
- exports.spendToGetProgressService = typedi_1.default.get(SpendToGetProgressService);
123
- //# sourceMappingURL=spend-to-get-progress.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spend-to-get-progress.service.js","sourceRoot":"/","sources":["modules/marketing/services/spend-to-get-progress.service.ts"],"names":[],"mappings":"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","sourcesContent":["import Container, { Service } from 'typedi';\nimport { mongoose } from '@typegoose/typegoose';\nimport { SpendToGetRewardType } from '@lyxa.ai/core/dist/utilities/enum';\nimport { dayjs } from '@lyxa.ai/core/dist/utilities/dayjs';\nimport { spendToGetHistoryService } from '../../spend-to-get-history/spend-to-get-history.service';\nimport { SpendToGetProgressRepository } from './spend-to-get-progress.repository';\n\nexport interface SpendToGetTierProgress {\n\tminSpend: number;\n\trewardType: SpendToGetRewardType;\n\trewardValue?: number;\n\tmaxDiscountCap?: number;\n\tisMaxDiscountCapEnabled?: boolean;\n\tisUnlocked: boolean;\n}\n\nexport interface SpendToGetProgressResult {\n\tmarketing?: mongoose.Types.ObjectId;\n\ttiers: SpendToGetTierProgress[];\n\tappliedTier?: SpendToGetTierProgress;\n\tdiscountAmount: number;\n\tnextTier?: SpendToGetTierProgress;\n\tamountToNextTier?: number;\n\tisRedeemable: boolean;\n}\n\nconst EMPTY_PROGRESS: SpendToGetProgressResult = {\n\ttiers: [],\n\tdiscountAmount: 0,\n\tisRedeemable: false,\n};\n\n@Service()\nexport class SpendToGetProgressService {\n\tprivate repository: SpendToGetProgressRepository;\n\n\tconstructor() {\n\t\tthis.repository = Container.get(SpendToGetProgressRepository);\n\t}\n\n\t/**\n\t * Live progress + eligibility for a shop's active Spend-to-Get promotion, given a basket total.\n\t * Only the highest qualifying tier's reward ever applies (no stacking). Global spend-limit\n\t * exhaustion is read off the existing amountSpent/spendLimit status-flip fields (Marketing base\n\t * model), same source of truth the checkout path uses — no separate live aggregation here.\n\t */\n\tpublic async getProgress(params: {\n\t\tshop: mongoose.Types.ObjectId;\n\t\tbasketTotal: number;\n\t\tuserId?: mongoose.Types.ObjectId;\n\t}): Promise<SpendToGetProgressResult> {\n\t\tconst now = dayjs().toDate();\n\n\t\tconst marketing = await this.repository.findActiveByShop(params.shop, now);\n\n\t\tif (!marketing || marketing.tiers.length === 0) {\n\t\t\treturn EMPTY_PROGRESS;\n\t\t}\n\n\t\tconst budgetExhausted = Boolean(\n\t\t\tmarketing.isSpendLimitEnabled && marketing.spendLimit && (marketing.amountSpent ?? 0) >= marketing.spendLimit\n\t\t);\n\n\t\tconst userLimitReached =\n\t\t\tBoolean(params.userId) && Boolean(marketing.isPerUserLimitEnabled) && Boolean(marketing.perUserLimit)\n\t\t\t\t? await spendToGetHistoryService.hasUserReachedLimit(\n\t\t\t\t\t\tparams.userId as mongoose.Types.ObjectId,\n\t\t\t\t\t\tmarketing._id,\n\t\t\t\t\t\tmarketing.perUserLimit as number\n\t\t\t\t\t)\n\t\t\t\t: false;\n\n\t\tconst isRedeemable = !budgetExhausted && !userLimitReached;\n\n\t\tconst tierProgressList: SpendToGetTierProgress[] = [...marketing.tiers]\n\t\t\t.sort((a, b) => a.minSpend - b.minSpend)\n\t\t\t.map(tier => ({\n\t\t\t\tminSpend: tier.minSpend,\n\t\t\t\trewardType: tier.rewardType,\n\t\t\t\trewardValue: tier.rewardValue,\n\t\t\t\tmaxDiscountCap: tier.maxDiscountCap,\n\t\t\t\tisMaxDiscountCapEnabled: tier.isMaxDiscountCapEnabled,\n\t\t\t\tisUnlocked: params.basketTotal >= tier.minSpend,\n\t\t\t}));\n\n\t\tlet appliedTier: SpendToGetTierProgress | undefined;\n\t\tlet nextTier: SpendToGetTierProgress | undefined;\n\t\tfor (const tier of tierProgressList) {\n\t\t\tif (tier.isUnlocked) {\n\t\t\t\tappliedTier = tier;\n\t\t\t} else if (!nextTier) {\n\t\t\t\tnextTier = tier;\n\t\t\t}\n\t\t}\n\n\t\tconst discountAmount =\n\t\t\tisRedeemable && appliedTier ? this.calculateDiscountAmount(appliedTier, params.basketTotal) : 0;\n\n\t\treturn {\n\t\t\tmarketing: marketing._id,\n\t\t\ttiers: tierProgressList,\n\t\t\tappliedTier: isRedeemable ? appliedTier : undefined,\n\t\t\tdiscountAmount,\n\t\t\tnextTier,\n\t\t\tamountToNextTier: nextTier ? Math.max(nextTier.minSpend - params.basketTotal, 0) : undefined,\n\t\t\tisRedeemable: isRedeemable && Boolean(appliedTier),\n\t\t};\n\t}\n\n\tprivate calculateDiscountAmount(tier: SpendToGetTierProgress, basketTotal: number): number {\n\t\tif (tier.rewardType === SpendToGetRewardType.FREE_DELIVERY) {\n\t\t\t// Free delivery isn't a basket discount amount — the caller applies it as a delivery-fee override.\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (tier.rewardType === SpendToGetRewardType.FIXED) {\n\t\t\treturn tier.rewardValue ?? 0;\n\t\t}\n\n\t\tlet amount = ((tier.rewardValue ?? 0) / 100) * basketTotal;\n\t\tif (tier.isMaxDiscountCapEnabled && tier.maxDiscountCap) {\n\t\t\tamount = Math.min(amount, tier.maxDiscountCap);\n\t\t}\n\t\treturn amount;\n\t}\n}\n\nexport const spendToGetProgressService = Container.get(SpendToGetProgressService);\n"]}