@lyxa.ai/marketing 1.0.59 → 1.0.61

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 (233) hide show
  1. package/dist/lib/event/event-initializations.d.ts.map +1 -1
  2. package/dist/lib/event/event-initializations.js +1 -0
  3. package/dist/lib/event/event-initializations.js.map +1 -1
  4. package/dist/lib/event/event-listeners/event-listeners.d.ts +1 -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 +7 -0
  7. package/dist/lib/event/event-listeners/event-listeners.js.map +1 -1
  8. package/dist/lib/index.d.ts +303 -19
  9. package/dist/lib/index.d.ts.map +1 -1
  10. package/dist/lib/index.js +2 -0
  11. package/dist/lib/index.js.map +1 -1
  12. package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts +12 -12
  13. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts +2 -0
  14. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts.map +1 -1
  15. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.js +22 -3
  16. package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.js.map +1 -1
  17. package/dist/lib/modules/limited-time-offer/limited-time-offer.router.d.ts +18 -18
  18. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts +14 -1
  19. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts.map +1 -1
  20. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.js +15 -0
  21. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.js.map +1 -1
  22. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts +18 -18
  23. package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts +57 -57
  24. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts.map +1 -1
  25. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.js +15 -5
  26. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.js.map +1 -1
  27. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts +1 -1
  28. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts +1 -0
  29. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts.map +1 -1
  30. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.js +29 -0
  31. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.js.map +1 -1
  32. package/dist/lib/modules/marketing/routers/marketing.router.d.ts +14 -0
  33. package/dist/lib/modules/marketing/routers/marketing.router.d.ts.map +1 -1
  34. package/dist/lib/modules/marketing/routers/marketing.router.js +5 -0
  35. package/dist/lib/modules/marketing/routers/marketing.router.js.map +1 -1
  36. package/dist/lib/modules/marketing/services/index.d.ts +3 -0
  37. package/dist/lib/modules/marketing/services/index.d.ts.map +1 -1
  38. package/dist/lib/modules/marketing/services/index.js +3 -0
  39. package/dist/lib/modules/marketing/services/index.js.map +1 -1
  40. package/dist/lib/modules/marketing/services/marketing-conflict.repository.d.ts +9 -0
  41. package/dist/lib/modules/marketing/services/marketing-conflict.repository.d.ts.map +1 -0
  42. package/dist/lib/modules/marketing/services/marketing-conflict.repository.js +63 -0
  43. package/dist/lib/modules/marketing/services/marketing-conflict.repository.js.map +1 -0
  44. package/dist/lib/modules/marketing/services/marketing-conflict.service.d.ts +27 -0
  45. package/dist/lib/modules/marketing/services/marketing-conflict.service.d.ts.map +1 -0
  46. package/dist/lib/modules/marketing/services/marketing-conflict.service.js +135 -0
  47. package/dist/lib/modules/marketing/services/marketing-conflict.service.js.map +1 -0
  48. package/dist/lib/modules/marketing/services/marketing.service.d.ts +6 -2
  49. package/dist/lib/modules/marketing/services/marketing.service.d.ts.map +1 -1
  50. package/dist/lib/modules/marketing/services/marketing.service.js +39 -7
  51. package/dist/lib/modules/marketing/services/marketing.service.js.map +1 -1
  52. package/dist/lib/modules/marketing/services/spend-to-get-marketing.repository.d.ts +14 -0
  53. package/dist/lib/modules/marketing/services/spend-to-get-marketing.repository.d.ts.map +1 -0
  54. package/dist/lib/modules/marketing/services/spend-to-get-marketing.repository.js +82 -0
  55. package/dist/lib/modules/marketing/services/spend-to-get-marketing.repository.js.map +1 -0
  56. package/dist/lib/modules/marketing/services/spend-to-get-marketing.service.d.ts +11 -0
  57. package/dist/lib/modules/marketing/services/spend-to-get-marketing.service.d.ts.map +1 -0
  58. package/dist/lib/modules/marketing/services/spend-to-get-marketing.service.js +99 -0
  59. package/dist/lib/modules/marketing/services/spend-to-get-marketing.service.js.map +1 -0
  60. package/dist/lib/modules/marketing/services/spend-to-get-progress.repository.d.ts +9 -0
  61. package/dist/lib/modules/marketing/services/spend-to-get-progress.repository.d.ts.map +1 -0
  62. package/dist/lib/modules/marketing/services/spend-to-get-progress.repository.js +69 -0
  63. package/dist/lib/modules/marketing/services/spend-to-get-progress.repository.js.map +1 -0
  64. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.d.ts +31 -0
  65. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.d.ts.map +1 -0
  66. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.js +123 -0
  67. package/dist/lib/modules/marketing/services/spend-to-get-progress.service.js.map +1 -0
  68. package/dist/lib/modules/marketing/validations/all-marketings.validation.d.ts.map +1 -1
  69. package/dist/lib/modules/marketing/validations/all-marketings.validation.js +3 -0
  70. package/dist/lib/modules/marketing/validations/all-marketings.validation.js.map +1 -1
  71. package/dist/lib/modules/marketing/validations/buy1-get1-marketing.validation.d.ts +3 -3
  72. package/dist/lib/modules/marketing/validations/discount-marketing.validation.d.ts +3 -3
  73. package/dist/lib/modules/marketing/validations/index.d.ts +1 -0
  74. package/dist/lib/modules/marketing/validations/index.d.ts.map +1 -1
  75. package/dist/lib/modules/marketing/validations/index.js +1 -0
  76. package/dist/lib/modules/marketing/validations/index.js.map +1 -1
  77. package/dist/lib/modules/marketing/validations/marketing.validation.d.ts +17 -0
  78. package/dist/lib/modules/marketing/validations/marketing.validation.d.ts.map +1 -1
  79. package/dist/lib/modules/marketing/validations/marketing.validation.js +7 -1
  80. package/dist/lib/modules/marketing/validations/marketing.validation.js.map +1 -1
  81. package/dist/lib/modules/marketing/validations/product-marketing.validation.d.ts +2 -2
  82. package/dist/lib/modules/marketing/validations/spend-to-get-marketing.validation.d.ts +617 -0
  83. package/dist/lib/modules/marketing/validations/spend-to-get-marketing.validation.d.ts.map +1 -0
  84. package/dist/lib/modules/marketing/validations/spend-to-get-marketing.validation.js +119 -0
  85. package/dist/lib/modules/marketing/validations/spend-to-get-marketing.validation.js.map +1 -0
  86. package/dist/lib/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +1 -1
  87. package/dist/lib/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +2 -2
  88. package/dist/lib/modules/spend-to-get-history/routers/index.d.ts +2 -0
  89. package/dist/lib/modules/spend-to-get-history/routers/index.d.ts.map +1 -0
  90. package/dist/lib/modules/spend-to-get-history/routers/index.js +18 -0
  91. package/dist/lib/modules/spend-to-get-history/routers/index.js.map +1 -0
  92. package/dist/lib/modules/spend-to-get-history/routers/spend-to-get-history.router.js +62 -0
  93. package/dist/lib/modules/spend-to-get-history/routers/spend-to-get-history.router.js.map +1 -0
  94. package/dist/lib/modules/spend-to-get-history/services/index.d.ts +2 -0
  95. package/dist/lib/modules/spend-to-get-history/services/index.d.ts.map +1 -0
  96. package/dist/lib/modules/spend-to-get-history/services/index.js +18 -0
  97. package/dist/lib/modules/spend-to-get-history/services/index.js.map +1 -0
  98. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts +24 -0
  99. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts.map +1 -0
  100. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.js +136 -0
  101. package/dist/lib/modules/spend-to-get-history/services/spend-to-get-history.service.js.map +1 -0
  102. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.d.ts +24 -0
  103. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.d.ts.map +1 -0
  104. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.js +97 -0
  105. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.repository.js.map +1 -0
  106. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.d.ts +271 -0
  107. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.d.ts.map +1 -0
  108. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.js +62 -0
  109. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.js.map +1 -0
  110. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.d.ts +24 -0
  111. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.d.ts.map +1 -0
  112. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.js +116 -0
  113. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.service.js.map +1 -0
  114. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.d.ts +232 -0
  115. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.d.ts.map +1 -0
  116. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.js +30 -0
  117. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.validation.js.map +1 -0
  118. package/dist/lib/modules/spend-to-get-history/validations/index.d.ts +2 -0
  119. package/dist/lib/modules/spend-to-get-history/validations/index.d.ts.map +1 -0
  120. package/dist/lib/modules/spend-to-get-history/validations/index.js +18 -0
  121. package/dist/lib/modules/spend-to-get-history/validations/index.js.map +1 -0
  122. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts +232 -0
  123. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts.map +1 -0
  124. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.js +30 -0
  125. package/dist/lib/modules/spend-to-get-history/validations/spend-to-get-history.validation.js.map +1 -0
  126. package/dist/lib/modules/tournament/match/events/match-ended.consumer.d.ts +2 -0
  127. package/dist/lib/modules/tournament/match/events/match-ended.consumer.d.ts.map +1 -0
  128. package/dist/lib/modules/tournament/match/events/match-ended.consumer.js +15 -0
  129. package/dist/lib/modules/tournament/match/events/match-ended.consumer.js.map +1 -0
  130. package/dist/lib/modules/tournament/match/events/match-ended.event.d.ts +14 -0
  131. package/dist/lib/modules/tournament/match/events/match-ended.event.d.ts.map +1 -0
  132. package/dist/lib/modules/tournament/match/events/match-ended.event.js +12 -0
  133. package/dist/lib/modules/tournament/match/events/match-ended.event.js.map +1 -0
  134. package/dist/lib/modules/tournament/notification/jobs/notification.producer.d.ts +10 -0
  135. package/dist/lib/modules/tournament/notification/jobs/notification.producer.d.ts.map +1 -0
  136. package/dist/lib/modules/tournament/notification/jobs/notification.producer.js +23 -0
  137. package/dist/lib/modules/tournament/notification/jobs/notification.producer.js.map +1 -0
  138. package/dist/lib/modules/tournament/notification/jobs/notification.worker.d.ts +9 -0
  139. package/dist/lib/modules/tournament/notification/jobs/notification.worker.d.ts.map +1 -0
  140. package/dist/lib/modules/tournament/notification/jobs/notification.worker.js +82 -0
  141. package/dist/lib/modules/tournament/notification/jobs/notification.worker.js.map +1 -0
  142. package/dist/lib/modules/tournament/notification/notification.schedule.config.d.ts +10 -0
  143. package/dist/lib/modules/tournament/notification/notification.schedule.config.d.ts.map +1 -0
  144. package/dist/lib/modules/tournament/notification/notification.schedule.config.js +15 -0
  145. package/dist/lib/modules/tournament/notification/notification.schedule.config.js.map +1 -0
  146. package/dist/lib/modules/tournament/notification/notification.scheduler.service.d.ts +10 -0
  147. package/dist/lib/modules/tournament/notification/notification.scheduler.service.d.ts.map +1 -0
  148. package/dist/lib/modules/tournament/notification/notification.scheduler.service.js +73 -0
  149. package/dist/lib/modules/tournament/notification/notification.scheduler.service.js.map +1 -0
  150. package/dist/types/event/event-initializations.d.ts.map +1 -1
  151. package/dist/types/event/event-listeners/event-listeners.d.ts +1 -0
  152. package/dist/types/event/event-listeners/event-listeners.d.ts.map +1 -1
  153. package/dist/types/events/event-initializations.d.ts +2 -0
  154. package/dist/types/events/event-initializations.d.ts.map +1 -0
  155. package/dist/types/index.d.ts +303 -19
  156. package/dist/types/index.d.ts.map +1 -1
  157. package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts +12 -12
  158. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts +2 -0
  159. package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts.map +1 -1
  160. package/dist/types/modules/limited-time-offer/limited-time-offer.router.d.ts +18 -18
  161. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts +14 -1
  162. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts.map +1 -1
  163. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts +18 -18
  164. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.service.d.ts +1 -0
  165. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.service.d.ts.map +1 -0
  166. package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts +57 -57
  167. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts.map +1 -1
  168. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts +1 -1
  169. package/dist/types/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts +1 -0
  170. package/dist/types/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts.map +1 -1
  171. package/dist/types/modules/marketing/routers/marketing.router.d.ts +14 -0
  172. package/dist/types/modules/marketing/routers/marketing.router.d.ts.map +1 -1
  173. package/dist/types/modules/marketing/services/index.d.ts +3 -0
  174. package/dist/types/modules/marketing/services/index.d.ts.map +1 -1
  175. package/dist/types/modules/marketing/services/marketing-conflict.repository.d.ts +9 -0
  176. package/dist/types/modules/marketing/services/marketing-conflict.repository.d.ts.map +1 -0
  177. package/dist/types/modules/marketing/services/marketing-conflict.service.d.ts +41 -0
  178. package/dist/types/modules/marketing/services/marketing-conflict.service.d.ts.map +1 -0
  179. package/dist/types/modules/marketing/services/marketing.service.d.ts +6 -2
  180. package/dist/types/modules/marketing/services/marketing.service.d.ts.map +1 -1
  181. package/dist/types/modules/marketing/services/spend-to-get-marketing.repository.d.ts +14 -0
  182. package/dist/types/modules/marketing/services/spend-to-get-marketing.repository.d.ts.map +1 -0
  183. package/dist/types/modules/marketing/services/spend-to-get-marketing.service.d.ts +20 -0
  184. package/dist/types/modules/marketing/services/spend-to-get-marketing.service.d.ts.map +1 -0
  185. package/dist/types/modules/marketing/services/spend-to-get-progress.repository.d.ts +9 -0
  186. package/dist/types/modules/marketing/services/spend-to-get-progress.repository.d.ts.map +1 -0
  187. package/dist/types/modules/marketing/services/spend-to-get-progress.service.d.ts +37 -0
  188. package/dist/types/modules/marketing/services/spend-to-get-progress.service.d.ts.map +1 -0
  189. package/dist/types/modules/marketing/validations/all-marketings.validation.d.ts.map +1 -1
  190. package/dist/types/modules/marketing/validations/buy1-get1-marketing.validation.d.ts +3 -3
  191. package/dist/types/modules/marketing/validations/discount-marketing.validation.d.ts +3 -3
  192. package/dist/types/modules/marketing/validations/index.d.ts +1 -0
  193. package/dist/types/modules/marketing/validations/index.d.ts.map +1 -1
  194. package/dist/types/modules/marketing/validations/marketing.validation.d.ts +17 -0
  195. package/dist/types/modules/marketing/validations/marketing.validation.d.ts.map +1 -1
  196. package/dist/types/modules/marketing/validations/product-marketing.validation.d.ts +2 -2
  197. package/dist/types/modules/marketing/validations/spend-to-get-marketing.validation.d.ts +630 -0
  198. package/dist/types/modules/marketing/validations/spend-to-get-marketing.validation.d.ts.map +1 -0
  199. package/dist/types/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +1 -1
  200. package/dist/types/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +2 -2
  201. package/dist/types/modules/spend-to-get-history/routers/index.d.ts +2 -0
  202. package/dist/types/modules/spend-to-get-history/routers/index.d.ts.map +1 -0
  203. package/dist/types/modules/spend-to-get-history/services/index.d.ts +2 -0
  204. package/dist/types/modules/spend-to-get-history/services/index.d.ts.map +1 -0
  205. package/dist/types/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts +56 -0
  206. package/dist/types/modules/spend-to-get-history/services/spend-to-get-history.service.d.ts.map +1 -0
  207. package/dist/types/modules/spend-to-get-history/spend-to-get-history.repository.d.ts +24 -0
  208. package/dist/types/modules/spend-to-get-history/spend-to-get-history.repository.d.ts.map +1 -0
  209. package/dist/types/modules/spend-to-get-history/spend-to-get-history.router.d.ts +271 -0
  210. package/dist/types/modules/spend-to-get-history/spend-to-get-history.router.d.ts.map +1 -0
  211. package/dist/types/modules/spend-to-get-history/spend-to-get-history.service.d.ts +56 -0
  212. package/dist/types/modules/spend-to-get-history/spend-to-get-history.service.d.ts.map +1 -0
  213. package/dist/types/modules/spend-to-get-history/spend-to-get-history.validation.d.ts +241 -0
  214. package/dist/types/modules/spend-to-get-history/spend-to-get-history.validation.d.ts.map +1 -0
  215. package/dist/types/modules/spend-to-get-history/validations/index.d.ts +2 -0
  216. package/dist/types/modules/spend-to-get-history/validations/index.d.ts.map +1 -0
  217. package/dist/types/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts +241 -0
  218. package/dist/types/modules/spend-to-get-history/validations/spend-to-get-history.validation.d.ts.map +1 -0
  219. package/dist/types/modules/tournament/config/tournament-config.validation.d.ts +201 -0
  220. package/dist/types/modules/tournament/config/tournament-config.validation.d.ts.map +1 -0
  221. package/dist/types/modules/tournament/match/events/match-ended.consumer.d.ts +2 -0
  222. package/dist/types/modules/tournament/match/events/match-ended.consumer.d.ts.map +1 -0
  223. package/dist/types/modules/tournament/match/events/match-ended.event.d.ts +14 -0
  224. package/dist/types/modules/tournament/match/events/match-ended.event.d.ts.map +1 -0
  225. package/dist/types/modules/tournament/notification/jobs/notification.producer.d.ts +10 -0
  226. package/dist/types/modules/tournament/notification/jobs/notification.producer.d.ts.map +1 -0
  227. package/dist/types/modules/tournament/notification/jobs/notification.worker.d.ts +9 -0
  228. package/dist/types/modules/tournament/notification/jobs/notification.worker.d.ts.map +1 -0
  229. package/dist/types/modules/tournament/notification/notification.schedule.config.d.ts +10 -0
  230. package/dist/types/modules/tournament/notification/notification.schedule.config.d.ts.map +1 -0
  231. package/dist/types/modules/tournament/notification/notification.scheduler.service.d.ts +10 -0
  232. package/dist/types/modules/tournament/notification/notification.scheduler.service.d.ts.map +1 -0
  233. package/package.json +2 -2
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReturnSpendToGetRedemptionSchema = exports.RecordSpendToGetRedemptionSchema = exports.SpendToGetHistoryResponseSchema = exports.UpdateSpendToGetHistorySchema = exports.SpendToGetHistoryIdValidationSchema = exports.SpendToGetHistorySchema = exports.SpendToGetHistoryValidationSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const global_validation_1 = require("@lyxa.ai/core/dist/utilities/validation/global-validation");
6
+ const validation_1 = require("@lyxa.ai/core/dist/utilities/validation");
7
+ const baseFields = {
8
+ user: global_validation_1.ZodValidation.objectId('User Id'),
9
+ marketing: global_validation_1.ZodValidation.objectId('Marketing Id'),
10
+ shop: global_validation_1.ZodValidation.objectId('Shop Id'),
11
+ redemptionCount: global_validation_1.ZodValidation.number('Redemption Count').optional(),
12
+ lastOrder: global_validation_1.ZodValidation.objectId('Last Order').optional().nullable(),
13
+ };
14
+ const schemaBuilder = (0, global_validation_1.createSchemaBuilder)(baseFields);
15
+ const { BaseSchema: SpendToGetHistoryValidationSchema, EntitySchema: SpendToGetHistorySchema, IdSchema: SpendToGetHistoryIdSchema, UpdateSchema: UpdateSpendToGetHistorySchema, } = schemaBuilder.getAllSchemas({ createdAt: true });
16
+ exports.SpendToGetHistoryValidationSchema = SpendToGetHistoryValidationSchema;
17
+ exports.SpendToGetHistorySchema = SpendToGetHistorySchema;
18
+ exports.SpendToGetHistoryIdValidationSchema = SpendToGetHistoryIdSchema;
19
+ exports.UpdateSpendToGetHistorySchema = UpdateSpendToGetHistorySchema;
20
+ exports.SpendToGetHistoryResponseSchema = (0, validation_1.createResponseSchema)(SpendToGetHistorySchema);
21
+ exports.RecordSpendToGetRedemptionSchema = zod_1.z.object({
22
+ user: global_validation_1.ZodValidation.objectId('User'),
23
+ shop: global_validation_1.ZodValidation.objectId('Shop'),
24
+ marketing: global_validation_1.ZodValidation.objectId('Marketing'),
25
+ order: global_validation_1.ZodValidation.objectId('Order'),
26
+ });
27
+ exports.ReturnSpendToGetRedemptionSchema = zod_1.z.object({
28
+ order: global_validation_1.ZodValidation.objectId('Order'),
29
+ });
30
+ //# sourceMappingURL=spend-to-get-history.validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spend-to-get-history.validation.js","sourceRoot":"/","sources":["modules/spend-to-get-history/validations/spend-to-get-history.validation.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,iGAImE;AACnE,wEAA+E;AAK/E,MAAM,UAAU,GAAG;IAClB,IAAI,EAAE,iCAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;IACvC,SAAS,EAAE,iCAAa,CAAC,QAAQ,CAAC,cAAc,CAAC;IACjD,IAAI,EAAE,iCAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;IACvC,eAAe,EAAE,iCAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACpE,SAAS,EAAE,iCAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACrE,CAAC;AAOF,MAAM,aAAa,GAAG,IAAA,uCAAmB,EAAC,UAAU,CAAC,CAAC;AAKtD,MAAM,EACL,UAAU,EAAE,iCAAiC,EAC7C,YAAY,EAAE,uBAAuB,EACrC,QAAQ,EAAE,yBAAyB,EACnC,YAAY,EAAE,6BAA6B,GAC3C,GAAG,aAAa,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAMpD,8EAAiC;AACjC,0DAAuB;AACM,wEAAmC;AAChE,sEAA6B;AAGjB,QAAA,+BAA+B,GAAG,IAAA,iCAAoB,EAAC,uBAAuB,CAAC,CAAC;AAEhF,QAAA,gCAAgC,GAAG,OAAC,CAAC,MAAM,CAAC;IACxD,IAAI,EAAE,iCAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,iCAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;IACpC,SAAS,EAAE,iCAAa,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC9C,KAAK,EAAE,iCAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;CACtC,CAAC,CAAC;AAEU,QAAA,gCAAgC,GAAG,OAAC,CAAC,MAAM,CAAC;IACxD,KAAK,EAAE,iCAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;CACtC,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport {\n\tZodValidation,\n\tcreateSchemaBuilder,\n\tDTO,\n} from '@lyxa.ai/core/dist/utilities/validation/global-validation';\nimport { createResponseSchema } from '@lyxa.ai/core/dist/utilities/validation';\n\n/**\n * Define the base parent schema fields\n */\nconst baseFields = {\n\tuser: ZodValidation.objectId('User Id'),\n\tmarketing: ZodValidation.objectId('Marketing Id'),\n\tshop: ZodValidation.objectId('Shop Id'),\n\tredemptionCount: ZodValidation.number('Redemption Count').optional(),\n\tlastOrder: ZodValidation.objectId('Last Order').optional().nullable(),\n};\n\n/**\n * Create schema builder for Parent entity\n * - Includes timestamps\n * - Excludes 'createdAt' from update operations\n */\nconst schemaBuilder = createSchemaBuilder(baseFields);\n\n/**\n * Get all schemas for the Parent entity\n */\nconst {\n\tBaseSchema: SpendToGetHistoryValidationSchema,\n\tEntitySchema: SpendToGetHistorySchema,\n\tIdSchema: SpendToGetHistoryIdSchema,\n\tUpdateSchema: UpdateSpendToGetHistorySchema,\n} = schemaBuilder.getAllSchemas({ createdAt: true });\n\n/**\n * Export schemas\n */\nexport {\n\tSpendToGetHistoryValidationSchema,\n\tSpendToGetHistorySchema,\n\tSpendToGetHistoryIdSchema as SpendToGetHistoryIdValidationSchema,\n\tUpdateSpendToGetHistorySchema,\n};\n\nexport const SpendToGetHistoryResponseSchema = createResponseSchema(SpendToGetHistorySchema);\n\nexport const RecordSpendToGetRedemptionSchema = z.object({\n\tuser: ZodValidation.objectId('User'),\n\tshop: ZodValidation.objectId('Shop'),\n\tmarketing: ZodValidation.objectId('Marketing'),\n\torder: ZodValidation.objectId('Order'),\n});\n\nexport const ReturnSpendToGetRedemptionSchema = z.object({\n\torder: ZodValidation.objectId('Order'),\n});\n\n/**\n * Export DTO types\n */\nexport type CreateSpendToGetHistoryDTO = DTO<typeof SpendToGetHistoryValidationSchema>;\nexport type SpendToGetHistoryDTO = DTO<typeof SpendToGetHistorySchema>;\nexport type UpdateSpendToGetHistoryDTO = DTO<typeof UpdateSpendToGetHistorySchema>;\nexport type RecordSpendToGetRedemptionDTO = DTO<typeof RecordSpendToGetRedemptionSchema>;\nexport type ReturnSpendToGetRedemptionDTO = DTO<typeof ReturnSpendToGetRedemptionSchema>;\n"]}
@@ -0,0 +1,2 @@
1
+ export declare function startTournamentEventConsumer(): Promise<void>;
2
+ //# sourceMappingURL=match-ended.consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match-ended.consumer.d.ts","sourceRoot":"/","sources":["modules/tournament/match/events/match-ended.consumer.ts"],"names":[],"mappings":"AAKA,wBAAsB,4BAA4B,kBAMjD"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startTournamentEventConsumer = startTournamentEventConsumer;
4
+ const typegoose_1 = require("@typegoose/typegoose");
5
+ const match_ended_event_1 = require("./match-ended.event");
6
+ const match_service_1 = require("../match.service");
7
+ const event_1 = require("@lyxa.ai/core/dist/libraries/event");
8
+ async function startTournamentEventConsumer() {
9
+ await (0, event_1.subscribeToEvent)(match_ended_event_1.TOURNAMENT_MATCH_ENDED_EVENT, async (payload) => {
10
+ const tournamentId = new typegoose_1.mongoose.Types.ObjectId(payload.tournamentId);
11
+ const matchId = new typegoose_1.mongoose.Types.ObjectId(payload.matchId);
12
+ await match_service_1.matchService.handleMatchEnded(tournamentId, matchId, payload.finalScore);
13
+ });
14
+ }
15
+ //# sourceMappingURL=match-ended.consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match-ended.consumer.js","sourceRoot":"/","sources":["modules/tournament/match/events/match-ended.consumer.ts"],"names":[],"mappings":";;AAKA,oEAMC;AAXD,oDAA8C;AAC9C,2DAAoF;AACpF,oDAA8C;AAC9C,8DAAoE;AAE7D,KAAK,UAAU,4BAA4B;IAC9C,MAAM,IAAA,wBAAgB,EAAC,gDAA4B,EAAE,KAAK,EAAE,OAA0B,EAAE,EAAE;QACtF,MAAM,YAAY,GAAG,IAAI,oBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,oBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,4BAAY,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACP,CAAC","sourcesContent":["import {mongoose} from '@typegoose/typegoose';\nimport {MatchEndedPayload, TOURNAMENT_MATCH_ENDED_EVENT} from './match-ended.event';\nimport {matchService} from '../match.service';\nimport {subscribeToEvent} from '@lyxa.ai/core/dist/libraries/event';\n\nexport async function startTournamentEventConsumer() {\n await subscribeToEvent(TOURNAMENT_MATCH_ENDED_EVENT, async (payload: MatchEndedPayload) => {\n const tournamentId = new mongoose.Types.ObjectId(payload.tournamentId);\n const matchId = new mongoose.Types.ObjectId(payload.matchId);\n await matchService.handleMatchEnded(tournamentId, matchId, payload.finalScore);\n });\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { BaseEvent } from '@lyxa.ai/core/dist/libraries/event/BaseEvent';
2
+ export declare const TOURNAMENT_MATCH_ENDED_EVENT = "tournament_match_ended_event";
3
+ export interface MatchEndedPayload {
4
+ tournamentId: string;
5
+ matchId: string;
6
+ finalScore: {
7
+ team1: number;
8
+ team2: number;
9
+ };
10
+ }
11
+ export declare class MatchEndedEvent extends BaseEvent<MatchEndedPayload> {
12
+ constructor(payload: MatchEndedPayload);
13
+ }
14
+ //# sourceMappingURL=match-ended.event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match-ended.event.d.ts","sourceRoot":"/","sources":["modules/tournament/match/events/match-ended.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8CAA8C,CAAC;AAEzE,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAE3E,MAAM,WAAW,iBAAiB;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED,qBAAa,eAAgB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;gBACjD,OAAO,EAAE,iBAAiB;CAGzC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MatchEndedEvent = exports.TOURNAMENT_MATCH_ENDED_EVENT = void 0;
4
+ const BaseEvent_1 = require("@lyxa.ai/core/dist/libraries/event/BaseEvent");
5
+ exports.TOURNAMENT_MATCH_ENDED_EVENT = 'tournament_match_ended_event';
6
+ class MatchEndedEvent extends BaseEvent_1.BaseEvent {
7
+ constructor(payload) {
8
+ super(exports.TOURNAMENT_MATCH_ENDED_EVENT, payload);
9
+ }
10
+ }
11
+ exports.MatchEndedEvent = MatchEndedEvent;
12
+ //# sourceMappingURL=match-ended.event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match-ended.event.js","sourceRoot":"/","sources":["modules/tournament/match/events/match-ended.event.ts"],"names":[],"mappings":";;;AAAA,4EAAyE;AAE5D,QAAA,4BAA4B,GAAG,8BAA8B,CAAC;AAQ3E,MAAa,eAAgB,SAAQ,qBAA4B;IAC7D,YAAY,OAA0B;QAClC,KAAK,CAAC,oCAA4B,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;CACJ;AAJD,0CAIC","sourcesContent":["import { BaseEvent } from '@lyxa.ai/core/dist/libraries/event/BaseEvent';\n\nexport const TOURNAMENT_MATCH_ENDED_EVENT = 'tournament_match_ended_event';\n\nexport interface MatchEndedPayload {\n tournamentId: string;\n matchId: string;\n finalScore: { team1: number; team2: number };\n}\n\nexport class MatchEndedEvent extends BaseEvent<MatchEndedPayload> {\n constructor(payload: MatchEndedPayload) {\n super(TOURNAMENT_MATCH_ENDED_EVENT, payload);\n }\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import { JobsOptions } from 'bullmq';
2
+ export declare const TOURNAMENT_NOTIFICATION_QUEUE = "tournament-match-notifications";
3
+ export interface TournamentNotificationJobData {
4
+ tournamentId: string;
5
+ matchId: string;
6
+ target: string;
7
+ }
8
+ export declare function addNotificationJob(name: string, data: TournamentNotificationJobData, options: JobsOptions): Promise<void>;
9
+ export declare function removeNotificationJob(jobId: string): Promise<void>;
10
+ //# sourceMappingURL=notification.producer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.producer.d.ts","sourceRoot":"/","sources":["modules/tournament/notification/jobs/notification.producer.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE5C,eAAO,MAAM,6BAA6B,mCAAmC,CAAC;AAE9E,MAAM,WAAW,6BAA6B;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAClB;AAYD,wBAAsB,kBAAkB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,6BAA6B,EACnC,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxE"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TOURNAMENT_NOTIFICATION_QUEUE = void 0;
4
+ exports.addNotificationJob = addNotificationJob;
5
+ exports.removeNotificationJob = removeNotificationJob;
6
+ const core_1 = require("@lyxa.ai/core");
7
+ exports.TOURNAMENT_NOTIFICATION_QUEUE = 'tournament-match-notifications';
8
+ let _queue = null;
9
+ function getQueue() {
10
+ if (!_queue) {
11
+ _queue = (0, core_1.getLibraries)().getBullMQService().createQueue(exports.TOURNAMENT_NOTIFICATION_QUEUE);
12
+ }
13
+ return _queue;
14
+ }
15
+ async function addNotificationJob(name, data, options) {
16
+ await getQueue().add(name, data, options);
17
+ }
18
+ async function removeNotificationJob(jobId) {
19
+ const job = await getQueue().getJob(jobId);
20
+ if (job)
21
+ await job.remove();
22
+ }
23
+ //# sourceMappingURL=notification.producer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.producer.js","sourceRoot":"/","sources":["modules/tournament/notification/jobs/notification.producer.ts"],"names":[],"mappings":";;;AAqBA,gDAMC;AAED,sDAGC;AAhCD,wCAA6C;AAGhC,QAAA,6BAA6B,GAAG,gCAAgC,CAAC;AAQ9E,IAAI,MAAM,GAAiB,IAAI,CAAC;AAEhC,SAAS,QAAQ;IACb,IAAI,CAAC,MAAM,EAAE,CAAC;QAEV,MAAM,GAAG,IAAA,mBAAY,GAAE,CAAC,gBAAgB,EAAE,CAAC,WAAW,CAAC,qCAA6B,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,MAAO,CAAC;AACnB,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACpC,IAAY,EACZ,IAAmC,EACnC,OAAoB;IAEpB,MAAM,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,KAAa;IACrD,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,GAAG;QAAE,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;AAChC,CAAC","sourcesContent":["import { getLibraries } from '@lyxa.ai/core';\nimport { Queue, JobsOptions } from 'bullmq';\n\nexport const TOURNAMENT_NOTIFICATION_QUEUE = 'tournament-match-notifications';\n\nexport interface TournamentNotificationJobData {\n tournamentId: string;\n matchId: string;\n target: string;\n}\n\nlet _queue: Queue | null = null;\n\nfunction getQueue(): Queue {\n if (!_queue) {\n // @ts-ignore\n _queue = getLibraries().getBullMQService().createQueue(TOURNAMENT_NOTIFICATION_QUEUE);\n }\n return _queue!;\n}\n\nexport async function addNotificationJob(\n name: string,\n data: TournamentNotificationJobData,\n options: JobsOptions\n): Promise<void> {\n await getQueue().add(name, data, options);\n}\n\nexport async function removeNotificationJob(jobId: string): Promise<void> {\n const job = await getQueue().getJob(jobId);\n if (job) await job.remove();\n}\n"]}
@@ -0,0 +1,9 @@
1
+ export declare class TournamentNotificationWorker {
2
+ private notificationService;
3
+ private templateRepository;
4
+ private matchRepository;
5
+ constructor();
6
+ startWorker(): void;
7
+ }
8
+ export declare const tournamentNotificationWorker: TournamentNotificationWorker;
9
+ //# sourceMappingURL=notification.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.worker.d.ts","sourceRoot":"/","sources":["modules/tournament/notification/jobs/notification.worker.ts"],"names":[],"mappings":"AAQA,qBACa,4BAA4B;IACrC,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,kBAAkB,CAAiC;IAC3D,OAAO,CAAC,eAAe,CAA4B;;IAQ5C,WAAW,IAAI,IAAI;CAe7B;AAED,eAAO,MAAM,4BAA4B,8BAA8C,CAAC"}
@@ -0,0 +1,82 @@
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.tournamentNotificationWorker = exports.TournamentNotificationWorker = void 0;
46
+ const typedi_1 = __importStar(require("typedi"));
47
+ const typegoose_1 = require("@typegoose/typegoose");
48
+ const core_1 = require("@lyxa.ai/core");
49
+ const notification_producer_1 = require("./notification.producer");
50
+ const notification_service_1 = require("../notification.service");
51
+ const notification_template_repository_1 = require("../notification-template.repository");
52
+ const match_repository_1 = require("../../match/match.repository");
53
+ let TournamentNotificationWorker = class TournamentNotificationWorker {
54
+ notificationService;
55
+ templateRepository;
56
+ matchRepository;
57
+ constructor() {
58
+ this.notificationService = typedi_1.default.get(notification_service_1.TournamentNotificationService);
59
+ this.templateRepository = typedi_1.default.get(notification_template_repository_1.NotificationTemplateRepository);
60
+ this.matchRepository = typedi_1.default.get(match_repository_1.TournamentMatchRepository);
61
+ }
62
+ startWorker() {
63
+ (0, core_1.getLibraries)().getBullMQService().createWorker(notification_producer_1.TOURNAMENT_NOTIFICATION_QUEUE, async (job) => {
64
+ const { tournamentId, matchId, target } = job.data;
65
+ const tournamentObjId = new typegoose_1.mongoose.Types.ObjectId(tournamentId);
66
+ const matchObjId = new typegoose_1.mongoose.Types.ObjectId(matchId);
67
+ const alreadySent = await this.matchRepository.getNotificationFlag(tournamentObjId, matchObjId, job.name);
68
+ if (alreadySent)
69
+ return;
70
+ const templates = await this.templateRepository.findTemplates(tournamentObjId);
71
+ await this.notificationService.dispatchScheduledJob(job.name, target, templates, tournamentObjId, matchObjId);
72
+ await this.matchRepository.setNotificationFlag(tournamentObjId, matchObjId, job.name);
73
+ });
74
+ }
75
+ };
76
+ exports.TournamentNotificationWorker = TournamentNotificationWorker;
77
+ exports.TournamentNotificationWorker = TournamentNotificationWorker = __decorate([
78
+ (0, typedi_1.Service)(),
79
+ __metadata("design:paramtypes", [])
80
+ ], TournamentNotificationWorker);
81
+ exports.tournamentNotificationWorker = typedi_1.default.get(TournamentNotificationWorker);
82
+ //# sourceMappingURL=notification.worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.worker.js","sourceRoot":"/","sources":["modules/tournament/notification/jobs/notification.worker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA0C;AAC1C,oDAA8C;AAC9C,wCAA2C;AAC3C,mEAAqG;AACrG,kEAAsE;AACtE,0FAAmF;AACnF,mEAAuE;AAGhE,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IAC7B,mBAAmB,CAAgC;IACnD,kBAAkB,CAAiC;IACnD,eAAe,CAA4B;IAEnD;QACI,IAAI,CAAC,mBAAmB,GAAG,gBAAS,CAAC,GAAG,CAAC,oDAA6B,CAAC,CAAC;QACxE,IAAI,CAAC,kBAAkB,GAAG,gBAAS,CAAC,GAAG,CAAC,iEAA8B,CAAC,CAAC;QACxE,IAAI,CAAC,eAAe,GAAG,gBAAS,CAAC,GAAG,CAAC,4CAAyB,CAAC,CAAC;IACpE,CAAC;IAEM,WAAW;QACd,IAAA,mBAAY,GAAE,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,qDAA6B,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE;YACtF,MAAM,EAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAC,GAAG,GAAG,CAAC,IAAqC,CAAC;YAClF,MAAM,eAAe,GAAG,IAAI,oBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,IAAI,oBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAExD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1G,IAAI,WAAW;gBAAE,OAAO;YAExB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YAC/E,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;YAE9G,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AA1BY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,gBAAO,GAAE;;GACG,4BAA4B,CA0BxC;AAEY,QAAA,4BAA4B,GAAG,gBAAS,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC","sourcesContent":["import Container, {Service} from 'typedi';\nimport {mongoose} from '@typegoose/typegoose';\nimport {getLibraries} from '@lyxa.ai/core';\nimport {TOURNAMENT_NOTIFICATION_QUEUE, TournamentNotificationJobData} from './notification.producer';\nimport {TournamentNotificationService} from '../notification.service';\nimport {NotificationTemplateRepository} from '../notification-template.repository';\nimport {TournamentMatchRepository} from '../../match/match.repository';\n\n@Service()\nexport class TournamentNotificationWorker {\n private notificationService: TournamentNotificationService;\n private templateRepository: NotificationTemplateRepository;\n private matchRepository: TournamentMatchRepository;\n\n constructor() {\n this.notificationService = Container.get(TournamentNotificationService);\n this.templateRepository = Container.get(NotificationTemplateRepository);\n this.matchRepository = Container.get(TournamentMatchRepository);\n }\n\n public startWorker(): void {\n getLibraries().getBullMQService().createWorker(TOURNAMENT_NOTIFICATION_QUEUE, async job => {\n const {tournamentId, matchId, target} = job.data as TournamentNotificationJobData;\n const tournamentObjId = new mongoose.Types.ObjectId(tournamentId);\n const matchObjId = new mongoose.Types.ObjectId(matchId);\n\n const alreadySent = await this.matchRepository.getNotificationFlag(tournamentObjId, matchObjId, job.name);\n if (alreadySent) return;\n\n const templates = await this.templateRepository.findTemplates(tournamentObjId);\n await this.notificationService.dispatchScheduledJob(job.name, target, templates, tournamentObjId, matchObjId);\n\n await this.matchRepository.setNotificationFlag(tournamentObjId, matchObjId, job.name);\n });\n }\n}\n\nexport const tournamentNotificationWorker = Container.get(TournamentNotificationWorker);\n"]}
@@ -0,0 +1,10 @@
1
+ export declare enum NotificationTag {
2
+ TOURNAMENT_ACTIVATION = "tournament-activation",
3
+ MATCH_RESULT_WINNER = "match-result-winner",
4
+ MATCH_RESULT_LOSER = "match-result-loser"
5
+ }
6
+ export declare enum ScheduledTarget {
7
+ GLOBAL = "global",
8
+ UNPREDICTED_PARTICIPANTS = "unpredicted-participants"
9
+ }
10
+ //# sourceMappingURL=notification.schedule.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.schedule.config.d.ts","sourceRoot":"/","sources":["modules/tournament/notification/notification.schedule.config.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe;IACvB,qBAAqB,0BAA0B;IAC/C,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;CAC5C;AAED,oBAAY,eAAe;IACvB,MAAM,WAAW;IACjB,wBAAwB,6BAA6B;CACxD"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScheduledTarget = exports.NotificationTag = void 0;
4
+ var NotificationTag;
5
+ (function (NotificationTag) {
6
+ NotificationTag["TOURNAMENT_ACTIVATION"] = "tournament-activation";
7
+ NotificationTag["MATCH_RESULT_WINNER"] = "match-result-winner";
8
+ NotificationTag["MATCH_RESULT_LOSER"] = "match-result-loser";
9
+ })(NotificationTag || (exports.NotificationTag = NotificationTag = {}));
10
+ var ScheduledTarget;
11
+ (function (ScheduledTarget) {
12
+ ScheduledTarget["GLOBAL"] = "global";
13
+ ScheduledTarget["UNPREDICTED_PARTICIPANTS"] = "unpredicted-participants";
14
+ })(ScheduledTarget || (exports.ScheduledTarget = ScheduledTarget = {}));
15
+ //# sourceMappingURL=notification.schedule.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.schedule.config.js","sourceRoot":"/","sources":["modules/tournament/notification/notification.schedule.config.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,kEAA+C,CAAA;IAC/C,8DAA2C,CAAA;IAC3C,4DAAyC,CAAA;AAC7C,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAED,IAAY,eAGX;AAHD,WAAY,eAAe;IACvB,oCAAiB,CAAA;IACjB,wEAAqD,CAAA;AACzD,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B","sourcesContent":["export enum NotificationTag {\n TOURNAMENT_ACTIVATION = 'tournament-activation',\n MATCH_RESULT_WINNER = 'match-result-winner',\n MATCH_RESULT_LOSER = 'match-result-loser',\n}\n\nexport enum ScheduledTarget {\n GLOBAL = 'global',\n UNPREDICTED_PARTICIPANTS = 'unpredicted-participants',\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import { mongoose } from '@typegoose/typegoose';
2
+ import { ScheduledNotificationConfig } from '@lyxa.ai/core/dist/libraries/mongo/models';
3
+ export declare class NotificationSchedulerService {
4
+ private jobId;
5
+ private buildJobData;
6
+ scheduleForMatch(matchId: mongoose.Types.ObjectId, tournamentId: mongoose.Types.ObjectId, startingDate: Date, scheduledNotifications: ScheduledNotificationConfig[]): Promise<void>;
7
+ cancelForMatch(matchId: mongoose.Types.ObjectId, scheduledNotifications: ScheduledNotificationConfig[]): Promise<void>;
8
+ }
9
+ export declare const notificationSchedulerService: NotificationSchedulerService;
10
+ //# sourceMappingURL=notification.scheduler.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.scheduler.service.d.ts","sourceRoot":"/","sources":["modules/tournament/notification/notification.scheduler.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAGxF,qBACa,4BAA4B;IACrC,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,YAAY;IAIP,gBAAgB,CACzB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAChC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EACrC,YAAY,EAAE,IAAI,EAClB,sBAAsB,EAAE,2BAA2B,EAAE,GACtD,OAAO,CAAC,IAAI,CAAC;IAcH,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAGtI;AAED,eAAO,MAAM,4BAA4B,8BAA8C,CAAC"}
@@ -0,0 +1,73 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.notificationSchedulerService = exports.NotificationSchedulerService = void 0;
43
+ const typedi_1 = __importStar(require("typedi"));
44
+ const notification_producer_1 = require("./jobs/notification.producer");
45
+ let NotificationSchedulerService = class NotificationSchedulerService {
46
+ jobId(type, matchId) {
47
+ return `tournament-${type}-${matchId}`;
48
+ }
49
+ buildJobData(tournamentId, matchId, target) {
50
+ return { tournamentId: tournamentId.toString(), matchId: matchId.toString(), target };
51
+ }
52
+ async scheduleForMatch(matchId, tournamentId, startingDate, scheduledNotifications) {
53
+ await Promise.all(scheduledNotifications.map(({ type, durationMins, target }) => {
54
+ const delay = startingDate.getTime() - durationMins * 60 * 1000 - Date.now();
55
+ if (delay <= 0)
56
+ return Promise.resolve();
57
+ return (0, notification_producer_1.addNotificationJob)(type, this.buildJobData(tournamentId, matchId, target), {
58
+ delay,
59
+ jobId: this.jobId(type, matchId),
60
+ removeOnComplete: true,
61
+ });
62
+ }));
63
+ }
64
+ async cancelForMatch(matchId, scheduledNotifications) {
65
+ await Promise.all(scheduledNotifications.map(({ type }) => (0, notification_producer_1.removeNotificationJob)(this.jobId(type, matchId))));
66
+ }
67
+ };
68
+ exports.NotificationSchedulerService = NotificationSchedulerService;
69
+ exports.NotificationSchedulerService = NotificationSchedulerService = __decorate([
70
+ (0, typedi_1.Service)()
71
+ ], NotificationSchedulerService);
72
+ exports.notificationSchedulerService = typedi_1.default.get(NotificationSchedulerService);
73
+ //# sourceMappingURL=notification.scheduler.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.scheduler.service.js","sourceRoot":"/","sources":["modules/tournament/notification/notification.scheduler.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA4C;AAG5C,wEAAwH;AAGjH,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IAC7B,KAAK,CAAC,IAAY,EAAE,OAAgC;QACxD,OAAO,cAAc,IAAI,IAAI,OAAO,EAAE,CAAC;IAC3C,CAAC;IAEO,YAAY,CAAC,YAAqC,EAAE,OAAgC,EAAE,MAAc;QACxG,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC;IAC1F,CAAC;IAEM,KAAK,CAAC,gBAAgB,CACzB,OAAgC,EAChC,YAAqC,EACrC,YAAkB,EAClB,sBAAqD;QAErD,MAAM,OAAO,CAAC,GAAG,CACb,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE;YAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7E,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YACzC,OAAO,IAAA,0CAAkB,EAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;gBAC9E,KAAK;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;gBAChC,gBAAgB,EAAE,IAAI;aACzB,CAAC,CAAC;QACP,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,OAAgC,EAAE,sBAAqD;QAC/G,MAAM,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAA,6CAAqB,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClH,CAAC;CACJ,CAAA;AA/BY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,gBAAO,GAAE;GACG,4BAA4B,CA+BxC;AAEY,QAAA,4BAA4B,GAAG,gBAAS,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC","sourcesContent":["import Container, { Service } from 'typedi';\nimport { mongoose } from '@typegoose/typegoose';\nimport { ScheduledNotificationConfig } from '@lyxa.ai/core/dist/libraries/mongo/models';\nimport { addNotificationJob, removeNotificationJob, TournamentNotificationJobData } from './jobs/notification.producer';\n\n@Service()\nexport class NotificationSchedulerService {\n private jobId(type: string, matchId: mongoose.Types.ObjectId): string {\n return `tournament-${type}-${matchId}`;\n }\n\n private buildJobData(tournamentId: mongoose.Types.ObjectId, matchId: mongoose.Types.ObjectId, target: string): TournamentNotificationJobData {\n return { tournamentId: tournamentId.toString(), matchId: matchId.toString(), target };\n }\n\n public async scheduleForMatch(\n matchId: mongoose.Types.ObjectId,\n tournamentId: mongoose.Types.ObjectId,\n startingDate: Date,\n scheduledNotifications: ScheduledNotificationConfig[]\n ): Promise<void> {\n await Promise.all(\n scheduledNotifications.map(({ type, durationMins, target }) => {\n const delay = startingDate.getTime() - durationMins * 60 * 1000 - Date.now();\n if (delay <= 0) return Promise.resolve();\n return addNotificationJob(type, this.buildJobData(tournamentId, matchId, target), {\n delay,\n jobId: this.jobId(type, matchId),\n removeOnComplete: true,\n });\n })\n );\n }\n\n public async cancelForMatch(matchId: mongoose.Types.ObjectId, scheduledNotifications: ScheduledNotificationConfig[]): Promise<void> {\n await Promise.all(scheduledNotifications.map(({ type }) => removeNotificationJob(this.jobId(type, matchId))));\n }\n}\n\nexport const notificationSchedulerService = Container.get(NotificationSchedulerService);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"event-initializations.d.ts","sourceRoot":"/","sources":["event/event-initializations.ts"],"names":[],"mappings":"AASA,wBAAsB,kBAAkB,kBAOvC"}
1
+ {"version":3,"file":"event-initializations.d.ts","sourceRoot":"/","sources":["event/event-initializations.ts"],"names":[],"mappings":"AAUA,wBAAsB,kBAAkB,kBAQvC"}
@@ -2,4 +2,5 @@ export declare function subscribeToSyncAllProductsProductMarketingInfoProcessEve
2
2
  export declare function subscribeToMarketingEntireMenuSeedEvent(): Promise<void>;
3
3
  export declare function subscribeToMarketingProductSyncEvent(): Promise<void>;
4
4
  export declare function subscribeToMarketingReturnPunchCouponEvent(): Promise<void>;
5
+ export declare function subscribeToMarketingReturnSpendToGetRedemptionEvent(): Promise<void>;
5
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":"AAcA,wBAAsB,0DAA0D,kBAI/E;AAgBD,wBAAsB,uCAAuC,kBA+D5D;AAED,wBAAsB,oCAAoC,kBAqDzD;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"}
@@ -0,0 +1,2 @@
1
+ export declare function initEventSystem(): Promise<void>;
2
+ //# sourceMappingURL=event-initializations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-initializations.d.ts","sourceRoot":"/","sources":["events/event-initializations.ts"],"names":[],"mappings":"AACA,wBAAsB,eAAe,kBAAK"}