@lyxa.ai/marketing 1.0.24 → 1.0.26-test-01

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 (177) hide show
  1. package/dist/lib/index.d.ts +1302 -38
  2. package/dist/lib/index.d.ts.map +1 -1
  3. package/dist/lib/modules/coupon/routers/coupon.router.d.ts +1307 -43
  4. package/dist/lib/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  5. package/dist/lib/modules/coupon/routers/coupon.router.js +21 -0
  6. package/dist/lib/modules/coupon/routers/coupon.router.js.map +1 -1
  7. package/dist/lib/modules/coupon/services/coupon.service.d.ts +7 -1
  8. package/dist/lib/modules/coupon/services/coupon.service.d.ts.map +1 -1
  9. package/dist/lib/modules/coupon/services/coupon.service.js +229 -41
  10. package/dist/lib/modules/coupon/services/coupon.service.js.map +1 -1
  11. package/dist/lib/modules/coupon/services/custom-coupon.service.d.ts.map +1 -1
  12. package/dist/lib/modules/coupon/services/custom-coupon.service.js +6 -2
  13. package/dist/lib/modules/coupon/services/custom-coupon.service.js.map +1 -1
  14. package/dist/lib/modules/coupon/services/global-coupon.service.d.ts.map +1 -1
  15. package/dist/lib/modules/coupon/services/global-coupon.service.js +6 -2
  16. package/dist/lib/modules/coupon/services/global-coupon.service.js.map +1 -1
  17. package/dist/lib/modules/coupon/services/index.d.ts +1 -0
  18. package/dist/lib/modules/coupon/services/index.d.ts.map +1 -1
  19. package/dist/lib/modules/coupon/services/index.js +1 -0
  20. package/dist/lib/modules/coupon/services/index.js.map +1 -1
  21. package/dist/lib/modules/coupon/services/individual-store-coupon.service.d.ts.map +1 -1
  22. package/dist/lib/modules/coupon/services/individual-store-coupon.service.js +7 -3
  23. package/dist/lib/modules/coupon/services/individual-store-coupon.service.js.map +1 -1
  24. package/dist/lib/modules/coupon/services/individual-user-coupon.service.d.ts.map +1 -1
  25. package/dist/lib/modules/coupon/services/individual-user-coupon.service.js +6 -2
  26. package/dist/lib/modules/coupon/services/individual-user-coupon.service.js.map +1 -1
  27. package/dist/lib/modules/coupon/services/referral-code-coupon.service.d.ts +1 -0
  28. package/dist/lib/modules/coupon/services/referral-code-coupon.service.d.ts.map +1 -1
  29. package/dist/lib/modules/coupon/services/referral-code-coupon.service.js +11 -0
  30. package/dist/lib/modules/coupon/services/referral-code-coupon.service.js.map +1 -1
  31. package/dist/lib/modules/coupon/services/referral-reward-coupon.service.d.ts.map +1 -1
  32. package/dist/lib/modules/coupon/services/referral-reward-coupon.service.js +6 -2
  33. package/dist/lib/modules/coupon/services/referral-reward-coupon.service.js.map +1 -1
  34. package/dist/lib/modules/coupon/services/shops-categories-coupon.service.d.ts +14 -0
  35. package/dist/lib/modules/coupon/services/shops-categories-coupon.service.d.ts.map +1 -0
  36. package/dist/lib/modules/coupon/services/shops-categories-coupon.service.js +139 -0
  37. package/dist/lib/modules/coupon/services/shops-categories-coupon.service.js.map +1 -0
  38. package/dist/lib/modules/coupon/transformers/coupon.transformer.d.ts +51 -1
  39. package/dist/lib/modules/coupon/transformers/coupon.transformer.d.ts.map +1 -1
  40. package/dist/lib/modules/coupon/validations/all-coupons.validation.d.ts +973 -27
  41. package/dist/lib/modules/coupon/validations/all-coupons.validation.d.ts.map +1 -1
  42. package/dist/lib/modules/coupon/validations/all-coupons.validation.js +2 -0
  43. package/dist/lib/modules/coupon/validations/all-coupons.validation.js.map +1 -1
  44. package/dist/lib/modules/coupon/validations/coupon.validation.d.ts +11 -0
  45. package/dist/lib/modules/coupon/validations/coupon.validation.d.ts.map +1 -1
  46. package/dist/lib/modules/coupon/validations/coupon.validation.js +5 -1
  47. package/dist/lib/modules/coupon/validations/coupon.validation.js.map +1 -1
  48. package/dist/lib/modules/coupon/validations/index.d.ts +1 -0
  49. package/dist/lib/modules/coupon/validations/index.d.ts.map +1 -1
  50. package/dist/lib/modules/coupon/validations/index.js +1 -0
  51. package/dist/lib/modules/coupon/validations/index.js.map +1 -1
  52. package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.d.ts +10 -19
  53. package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.d.ts.map +1 -1
  54. package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.js +2 -3
  55. package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.js.map +1 -1
  56. package/dist/lib/modules/coupon/validations/shops-categories-coupon.validation.d.ts +439 -0
  57. package/dist/lib/modules/coupon/validations/shops-categories-coupon.validation.d.ts.map +1 -0
  58. package/dist/lib/modules/coupon/validations/shops-categories-coupon.validation.js +22 -0
  59. package/dist/lib/modules/coupon/validations/shops-categories-coupon.validation.js.map +1 -0
  60. package/dist/lib/modules/marketing/services/marketing.service.d.ts.map +1 -1
  61. package/dist/lib/modules/marketing/services/marketing.service.js +2 -1
  62. package/dist/lib/modules/marketing/services/marketing.service.js.map +1 -1
  63. package/dist/types/index.d.ts +1302 -38
  64. package/dist/types/index.d.ts.map +1 -1
  65. package/dist/types/modules/coupon/routers/coupon.router.d.ts +1307 -43
  66. package/dist/types/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  67. package/dist/types/modules/coupon/services/coupon.service.d.ts +7 -1
  68. package/dist/types/modules/coupon/services/coupon.service.d.ts.map +1 -1
  69. package/dist/types/modules/coupon/services/custom-coupon.service.d.ts.map +1 -1
  70. package/dist/types/modules/coupon/services/global-coupon.service.d.ts.map +1 -1
  71. package/dist/types/modules/coupon/services/index.d.ts +1 -0
  72. package/dist/types/modules/coupon/services/index.d.ts.map +1 -1
  73. package/dist/types/modules/coupon/services/individual-store-coupon.service.d.ts.map +1 -1
  74. package/dist/types/modules/coupon/services/individual-user-coupon.service.d.ts.map +1 -1
  75. package/dist/types/modules/coupon/services/referral-code-coupon.service.d.ts +1 -0
  76. package/dist/types/modules/coupon/services/referral-code-coupon.service.d.ts.map +1 -1
  77. package/dist/types/modules/coupon/services/referral-reward-coupon.service.d.ts.map +1 -1
  78. package/dist/types/modules/coupon/services/shops-categories-coupon.service.d.ts +23 -0
  79. package/dist/types/modules/coupon/services/shops-categories-coupon.service.d.ts.map +1 -0
  80. package/dist/types/modules/coupon/transformers/coupon.transformer.d.ts +51 -1
  81. package/dist/types/modules/coupon/transformers/coupon.transformer.d.ts.map +1 -1
  82. package/dist/types/modules/coupon/validations/all-coupons.validation.d.ts +973 -27
  83. package/dist/types/modules/coupon/validations/all-coupons.validation.d.ts.map +1 -1
  84. package/dist/types/modules/coupon/validations/coupon.validation.d.ts +11 -0
  85. package/dist/types/modules/coupon/validations/coupon.validation.d.ts.map +1 -1
  86. package/dist/types/modules/coupon/validations/index.d.ts +1 -0
  87. package/dist/types/modules/coupon/validations/index.d.ts.map +1 -1
  88. package/dist/types/modules/coupon/validations/individual-store-coupon.validation.d.ts +10 -19
  89. package/dist/types/modules/coupon/validations/individual-store-coupon.validation.d.ts.map +1 -1
  90. package/dist/types/modules/coupon/validations/shops-categories-coupon.validation.d.ts +448 -0
  91. package/dist/types/modules/coupon/validations/shops-categories-coupon.validation.d.ts.map +1 -0
  92. package/dist/types/modules/marketing/services/marketing.service.d.ts.map +1 -1
  93. package/package.json +2 -2
  94. package/dist/lib/modules/loyalty-point-setting/routers/index.d.ts +0 -2
  95. package/dist/lib/modules/loyalty-point-setting/routers/index.d.ts.map +0 -1
  96. package/dist/lib/modules/loyalty-point-setting/routers/index.js +0 -18
  97. package/dist/lib/modules/loyalty-point-setting/routers/index.js.map +0 -1
  98. package/dist/lib/modules/loyalty-point-setting/routers/loyalty-point-setting.router.d.ts +0 -321
  99. package/dist/lib/modules/loyalty-point-setting/routers/loyalty-point-setting.router.d.ts.map +0 -1
  100. package/dist/lib/modules/loyalty-point-setting/routers/loyalty-point-setting.router.js +0 -82
  101. package/dist/lib/modules/loyalty-point-setting/routers/loyalty-point-setting.router.js.map +0 -1
  102. package/dist/lib/modules/loyalty-point-setting/services/index.d.ts +0 -3
  103. package/dist/lib/modules/loyalty-point-setting/services/index.d.ts.map +0 -1
  104. package/dist/lib/modules/loyalty-point-setting/services/index.js +0 -19
  105. package/dist/lib/modules/loyalty-point-setting/services/index.js.map +0 -1
  106. package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-category.service.d.ts +0 -16
  107. package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-category.service.d.ts.map +0 -1
  108. package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-category.service.js +0 -133
  109. package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-category.service.js.map +0 -1
  110. package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-setting.service.d.ts +0 -16
  111. package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-setting.service.d.ts.map +0 -1
  112. package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-setting.service.js +0 -156
  113. package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-setting.service.js.map +0 -1
  114. package/dist/lib/modules/loyalty-point-setting/transformers/index.d.ts +0 -3
  115. package/dist/lib/modules/loyalty-point-setting/transformers/index.d.ts.map +0 -1
  116. package/dist/lib/modules/loyalty-point-setting/transformers/index.js +0 -19
  117. package/dist/lib/modules/loyalty-point-setting/transformers/index.js.map +0 -1
  118. package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-category.transformer.d.ts +0 -8
  119. package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-category.transformer.d.ts.map +0 -1
  120. package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-category.transformer.js +0 -7
  121. package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-category.transformer.js.map +0 -1
  122. package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-setting.transformer.d.ts +0 -9
  123. package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-setting.transformer.d.ts.map +0 -1
  124. package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-setting.transformer.js +0 -7
  125. package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-setting.transformer.js.map +0 -1
  126. package/dist/lib/modules/loyalty-point-setting/validations/index.d.ts +0 -3
  127. package/dist/lib/modules/loyalty-point-setting/validations/index.d.ts.map +0 -1
  128. package/dist/lib/modules/loyalty-point-setting/validations/index.js +0 -19
  129. package/dist/lib/modules/loyalty-point-setting/validations/index.js.map +0 -1
  130. package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-category.validation.d.ts +0 -170
  131. package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-category.validation.d.ts.map +0 -1
  132. package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-category.validation.js +0 -19
  133. package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-category.validation.js.map +0 -1
  134. package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-setting.validation.d.ts +0 -188
  135. package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-setting.validation.d.ts.map +0 -1
  136. package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-setting.validation.js +0 -19
  137. package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-setting.validation.js.map +0 -1
  138. package/dist/lib/modules/marketing/services/loyalty-point-marketing.service.d.ts +0 -12
  139. package/dist/lib/modules/marketing/services/loyalty-point-marketing.service.d.ts.map +0 -1
  140. package/dist/lib/modules/marketing/services/loyalty-point-marketing.service.js +0 -149
  141. package/dist/lib/modules/marketing/services/loyalty-point-marketing.service.js.map +0 -1
  142. package/dist/lib/modules/marketing/transformers/loyalty-point-marketing.transformer.d.ts +0 -47
  143. package/dist/lib/modules/marketing/transformers/loyalty-point-marketing.transformer.d.ts.map +0 -1
  144. package/dist/lib/modules/marketing/transformers/loyalty-point-marketing.transformer.js +0 -7
  145. package/dist/lib/modules/marketing/transformers/loyalty-point-marketing.transformer.js.map +0 -1
  146. package/dist/lib/modules/marketing/validations/loyalty-point-marketing.validation.d.ts +0 -504
  147. package/dist/lib/modules/marketing/validations/loyalty-point-marketing.validation.d.ts.map +0 -1
  148. package/dist/lib/modules/marketing/validations/loyalty-point-marketing.validation.js +0 -34
  149. package/dist/lib/modules/marketing/validations/loyalty-point-marketing.validation.js.map +0 -1
  150. package/dist/types/modules/loyalty-point-setting/routers/index.d.ts +0 -2
  151. package/dist/types/modules/loyalty-point-setting/routers/index.d.ts.map +0 -1
  152. package/dist/types/modules/loyalty-point-setting/routers/loyalty-point-setting.router.d.ts +0 -321
  153. package/dist/types/modules/loyalty-point-setting/routers/loyalty-point-setting.router.d.ts.map +0 -1
  154. package/dist/types/modules/loyalty-point-setting/services/index.d.ts +0 -3
  155. package/dist/types/modules/loyalty-point-setting/services/index.d.ts.map +0 -1
  156. package/dist/types/modules/loyalty-point-setting/services/loyalty-point-category.service.d.ts +0 -37
  157. package/dist/types/modules/loyalty-point-setting/services/loyalty-point-category.service.d.ts.map +0 -1
  158. package/dist/types/modules/loyalty-point-setting/services/loyalty-point-setting.service.d.ts +0 -34
  159. package/dist/types/modules/loyalty-point-setting/services/loyalty-point-setting.service.d.ts.map +0 -1
  160. package/dist/types/modules/loyalty-point-setting/transformers/index.d.ts +0 -3
  161. package/dist/types/modules/loyalty-point-setting/transformers/index.d.ts.map +0 -1
  162. package/dist/types/modules/loyalty-point-setting/transformers/loyalty-point-category.transformer.d.ts +0 -8
  163. package/dist/types/modules/loyalty-point-setting/transformers/loyalty-point-category.transformer.d.ts.map +0 -1
  164. package/dist/types/modules/loyalty-point-setting/transformers/loyalty-point-setting.transformer.d.ts +0 -9
  165. package/dist/types/modules/loyalty-point-setting/transformers/loyalty-point-setting.transformer.d.ts.map +0 -1
  166. package/dist/types/modules/loyalty-point-setting/validations/index.d.ts +0 -3
  167. package/dist/types/modules/loyalty-point-setting/validations/index.d.ts.map +0 -1
  168. package/dist/types/modules/loyalty-point-setting/validations/loyalty-point-category.validation.d.ts +0 -179
  169. package/dist/types/modules/loyalty-point-setting/validations/loyalty-point-category.validation.d.ts.map +0 -1
  170. package/dist/types/modules/loyalty-point-setting/validations/loyalty-point-setting.validation.d.ts +0 -197
  171. package/dist/types/modules/loyalty-point-setting/validations/loyalty-point-setting.validation.d.ts.map +0 -1
  172. package/dist/types/modules/marketing/services/loyalty-point-marketing.service.d.ts +0 -21
  173. package/dist/types/modules/marketing/services/loyalty-point-marketing.service.d.ts.map +0 -1
  174. package/dist/types/modules/marketing/transformers/loyalty-point-marketing.transformer.d.ts +0 -47
  175. package/dist/types/modules/marketing/transformers/loyalty-point-marketing.transformer.d.ts.map +0 -1
  176. package/dist/types/modules/marketing/validations/loyalty-point-marketing.validation.d.ts +0 -513
  177. package/dist/types/modules/marketing/validations/loyalty-point-marketing.validation.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"coupon.router.d.ts","sourceRoot":"/","sources":["modules/coupon/routers/coupon.router.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAOC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2IqlzB,CAAC;;;;;;;;;;GAD/mzB,CAAC"}
1
+ {"version":3,"file":"coupon.router.d.ts","sourceRoot":"/","sources":["modules/coupon/routers/coupon.router.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAOrB,CAAJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAI,CAAJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAwKs4xB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;GADr4xB,CAAC"}
@@ -11,6 +11,7 @@ const response_1 = require("@lyxa.ai/core/dist/utilities/response");
11
11
  const auth_1 = require("@lyxa.ai/core/dist/libraries/trpc/middlewares/auth");
12
12
  const auth_2 = require("@lyxa.ai/core/dist/libraries/auth");
13
13
  const typegoose_1 = require("@typegoose/typegoose");
14
+ const zod_1 = require("zod");
14
15
  exports.couponRouter = (0, trpc_1.createTRPCRouter)({
15
16
  create: (0, auth_1.createAuthenticatedProcedure)({ entityTypes: [auth_2.AuthEntityType.CRM] })
16
17
  .input(validations_1.AllCouponsValidationSchema)
@@ -42,6 +43,14 @@ exports.couponRouter = (0, trpc_1.createTRPCRouter)({
42
43
  await services_1.couponService.update(String(_id), data);
43
44
  return (0, response_1.response)('Coupon updated successfully');
44
45
  })),
46
+ updateStatus: trpc_1.publicProcedure
47
+ .input(validations_1.UpdateCouponStatusSchema)
48
+ .output(validations_1.CouponResponseSchema)
49
+ .mutation(async ({ input }) => error_handler_1.ErrorHandler.wrapAsync(async () => {
50
+ const { _id, status } = input;
51
+ await services_1.couponService.updateStatus(String(_id), status);
52
+ return (0, response_1.response)('Coupon updated successfully');
53
+ })),
45
54
  deleteById: trpc_1.publicProcedure
46
55
  .input(validation_1.DeleteSchema)
47
56
  .output(validations_1.CouponResponseSchema)
@@ -109,5 +118,17 @@ exports.couponRouter = (0, trpc_1.createTRPCRouter)({
109
118
  const result = await services_1.couponService.getShareableLink(input);
110
119
  return (0, response_1.response)('Invite friend shareable link fetched successfully', result);
111
120
  })),
121
+ handleCouponExpiry: trpc_1.publicProcedure
122
+ .input(zod_1.z.object({ couponCode: zod_1.z.string() }))
123
+ .mutation(async ({ input }) => error_handler_1.ErrorHandler.wrapAsync(async () => {
124
+ const result = await services_1.couponService.handleCouponExpiry(input.couponCode);
125
+ return result;
126
+ })),
127
+ addExistingCouponsToNewUser: trpc_1.publicProcedure
128
+ .input(zod_1.z.object({ userId: zod_1.z.string() }))
129
+ .mutation(async ({ input }) => error_handler_1.ErrorHandler.wrapAsync(async () => {
130
+ const result = await services_1.couponService.addExistingCouponsToNewUser(new typegoose_1.mongoose.Types.ObjectId(input.userId));
131
+ return result;
132
+ })),
112
133
  });
113
134
  //# sourceMappingURL=coupon.router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coupon.router.js","sourceRoot":"/","sources":["modules/coupon/routers/coupon.router.ts"],"names":[],"mappings":"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","sourcesContent":["import { createTRPCRouter, publicProcedure } from '@lyxa.ai/core/dist/libraries/trpc';\nimport { referralCodeCouponService, couponService as service } from '@modules/coupon/services';\nimport {\n\tCouponSchema as Schema,\n\tCouponIdValidationSchema as IdSchema,\n\tAllCouponsUpdateSchema as UpdateSchema,\n\tAllCouponsValidationSchema,\n\tCouponResponseSchema as ResponseSchema,\n\tGetUserCouponSchema,\n\tValidateCouponSchema,\n\tCouponValidationResponseSchema,\n\tCouponCodeSchema,\n} from '@modules/coupon/validations';\nimport { allCouponTransformer as transformer } from '@modules/coupon/transformers';\nimport {\n\tDeleteSchema,\n\tFilterSchema,\n\tShareableLinkResponseSchema,\n\tStringSchema,\n} from '@lyxa.ai/core/dist/utilities/validation';\nimport { ErrorHandler } from '@lyxa.ai/core/dist/utilities/error-handler';\nimport { response } from '@lyxa.ai/core/dist/utilities/response';\nimport { createAuthenticatedProcedure } from '@lyxa.ai/core/dist/libraries/trpc/middlewares/auth';\nimport { AuthEntityType } from '@lyxa.ai/core/dist/libraries/auth';\nimport { mongoose } from '@typegoose/typegoose';\nimport { z } from 'zod';\n\nexport const couponRouter = createTRPCRouter({\n\tcreate: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM] })\n\t\t.input(AllCouponsValidationSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tawait service.create({ ...input, createdBy: new mongoose.Types.ObjectId(ctx.entity?.id) });\n\t\t\t\treturn response('Coupon created successfully');\n\t\t\t})\n\t\t),\n\n\tgetById: publicProcedure\n\t\t.input(IdSchema)\n\t\t.output(ResponseSchema)\n\t\t.query(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.findById(input);\n\t\t\t\tconst transformedResult = transformer.transformToBasicView(result);\n\t\t\t\treturn response('Coupon fetched successfully', transformedResult);\n\t\t\t})\n\t\t),\n\n\tget: publicProcedure\n\t\t.input(FilterSchema)\n\t\t.output(ResponseSchema)\n\t\t.query(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.find(input);\n\t\t\t\treturn response('Coupons fetched successfully', result);\n\t\t\t})\n\t\t),\n\n\tupdate: publicProcedure\n\t\t.input(UpdateSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst { _id, data } = input;\n\t\t\t\tawait service.update(String(_id), data);\n\t\t\t\treturn response('Coupon updated successfully');\n\t\t\t})\n\t\t),\n\n\tdeleteById: publicProcedure\n\t\t.input(DeleteSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tawait service.deleteById(input);\n\t\t\t\treturn response('Coupon deleted successfully');\n\t\t\t})\n\t\t),\n\n\tgetUserCoupons: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM, AuthEntityType.USER] })\n\t\t.input(GetUserCouponSchema)\n\t\t// .output(ResponseSchema)\n\t\t.query(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst isAdmin = ctx.entity?.type == AuthEntityType.CRM;\n\t\t\t\tconst id = new mongoose.Types.ObjectId(ctx.entity?.id);\n\t\t\t\tconst result = await service.getUserCoupons(\n\t\t\t\t\tisAdmin ? input.user : id,\n\t\t\t\t\tinput.shop,\n\t\t\t\t\tinput.page,\n\t\t\t\t\tinput.size\n\t\t\t\t);\n\t\t\t\treturn result;\n\t\t\t\t// return response('Coupons fetched successfully', result);\n\t\t\t})\n\t\t),\n\n\tgetUserCouponList: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM] })\n\t\t.input(FilterSchema)\n\t\t// .output(ResponseSchema)\n\t\t.query(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.getUserCouponList(input);\n\t\t\t\treturn result;\n\t\t\t\t// return response('Coupons fetched successfully', result);\n\t\t\t})\n\t\t),\n\n\tvalidateCoupon: publicProcedure\n\t\t.input(ValidateCouponSchema)\n\t\t.output(CouponValidationResponseSchema)\n\t\t.query(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.validateCoupon(input);\n\t\t\t\treturn response('Coupon validated successfully', result);\n\t\t\t})\n\t\t),\n\n\tvalidateCouponMutation: publicProcedure\n\t\t.input(ValidateCouponSchema)\n\t\t.output(CouponValidationResponseSchema)\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.validateCoupon(input);\n\t\t\t\treturn response('Coupon validated successfully', result);\n\t\t\t})\n\t\t),\n\n\tcreateReferralCodeForUser: createAuthenticatedProcedure({\n\t\tentityTypes: [AuthEntityType.CRM, AuthEntityType.USER],\n\t})\n\t\t.input(GetUserCouponSchema)\n\t\t.mutation(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst isAdmin = ctx.entity?.type == AuthEntityType.CRM;\n\t\t\t\tconst id = new mongoose.Types.ObjectId(ctx.entity?.id);\n\t\t\t\tconst result = await referralCodeCouponService.createReferralCodeForUser(isAdmin ? input.user : id);\n\t\t\t\treturn result;\n\t\t\t})\n\t\t),\n\n\tgetReferralCodeCoupon: createAuthenticatedProcedure({\n\t\tentityTypes: [AuthEntityType.USER],\n\t}).query(async ({ ctx, input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst id = new mongoose.Types.ObjectId(ctx.entity?.id);\n\t\t\tconst result = await referralCodeCouponService.getReferralCodeCoupon(id);\n\t\t\treturn result;\n\t\t})\n\t),\n\n\taddCouponToUser: createAuthenticatedProcedure({\n\t\tentityTypes: [AuthEntityType.USER],\n\t})\n\t\t.input(CouponCodeSchema)\n\t\t.mutation(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.addCouponToUser(ctx.entity?.id as string, input.couponCode);\n\t\t\t\treturn result;\n\t\t\t})\n\t\t),\n\n\tgetShareableLink: publicProcedure\n\t\t.input(StringSchema)\n\t\t.output(ShareableLinkResponseSchema)\n\t\t.query(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.getShareableLink(input);\n\t\t\t\treturn response('Invite friend shareable link fetched successfully', result);\n\t\t\t})\n\t\t),\n});\n"]}
1
+ {"version":3,"file":"coupon.router.js","sourceRoot":"/","sources":["modules/coupon/routers/coupon.router.ts"],"names":[],"mappings":";;;AAAA,4DAAsF;AACtF,uDAA+F;AAC/F,6DAWqC;AACrC,+DAAmF;AACnF,wEAKiD;AACjD,8EAA0E;AAC1E,oEAAiE;AACjE,6EAAkG;AAClG,4DAAmE;AACnE,oDAAgD;AAChD,6BAAwB;AAEX,QAAA,YAAY,GAAG,IAAA,uBAAgB,EAAC;IAC5C,MAAM,EAAE,IAAA,mCAA4B,EAAC,EAAE,WAAW,EAAE,CAAC,qBAAc,CAAC,GAAG,CAAC,EAAE,CAAC;SACzE,KAAK,CAAC,wCAA0B,CAAC;SACjC,MAAM,CAAC,kCAAc,CAAC;SACtB,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAClC,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,wBAAO,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,oBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAA,mBAAQ,EAAC,6BAA6B,CAAC,CAAC;IAChD,CAAC,CAAC,CACF;IAEF,OAAO,EAAE,sBAAe;SACtB,KAAK,CAAC,sCAAQ,CAAC;SACf,MAAM,CAAC,kCAAc,CAAC;SACtB,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,wBAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,iBAAiB,GAAG,mCAAW,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACnE,OAAO,IAAA,mBAAQ,EAAC,6BAA6B,EAAE,iBAAiB,CAAC,CAAC;IACnE,CAAC,CAAC,CACF;IAEF,GAAG,EAAE,sBAAe;SAClB,KAAK,CAAC,yBAAY,CAAC;SACnB,MAAM,CAAC,kCAAc,CAAC;SACtB,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,wBAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,IAAA,mBAAQ,EAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC,CAAC,CACF;IAEF,MAAM,EAAE,sBAAe;SACrB,KAAK,CAAC,oCAAY,CAAC;SACnB,MAAM,CAAC,kCAAc,CAAC;SACtB,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC7B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAC5B,MAAM,wBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,IAAA,mBAAQ,EAAC,6BAA6B,CAAC,CAAC;IAChD,CAAC,CAAC,CACF;IAEF,YAAY,EAAE,sBAAe;SAC3B,KAAK,CAAC,sCAAwB,CAAC;SAC/B,MAAM,CAAC,kCAAc,CAAC;SACtB,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC7B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAC9B,MAAM,wBAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QAChD,OAAO,IAAA,mBAAQ,EAAC,6BAA6B,CAAC,CAAC;IAChD,CAAC,CAAC,CACF;IAEF,UAAU,EAAE,sBAAe;SACzB,KAAK,CAAC,yBAAY,CAAC;SACnB,MAAM,CAAC,kCAAc,CAAC;SACtB,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC7B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,wBAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,IAAA,mBAAQ,EAAC,6BAA6B,CAAC,CAAC;IAChD,CAAC,CAAC,CACF;IAEF,cAAc,EAAE,IAAA,mCAA4B,EAAC,EAAE,WAAW,EAAE,CAAC,qBAAc,CAAC,GAAG,EAAE,qBAAc,CAAC,IAAI,CAAC,EAAE,CAAC;SACtG,KAAK,CAAC,iCAAmB,CAAC;SAE1B,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAC/B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,qBAAc,CAAC,GAAG,CAAC;QACvD,MAAM,EAAE,GAAG,IAAI,oBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,wBAAO,CAAC,cAAc,CAC1C,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EACzB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,CACV,CAAC;QACF,OAAO,MAAM,CAAC;IAEf,CAAC,CAAC,CACF;IAEF,iBAAiB,EAAE,IAAA,mCAA4B,EAAC,EAAE,WAAW,EAAE,CAAC,qBAAc,CAAC,GAAG,CAAC,EAAE,CAAC;SACpF,KAAK,CAAC,yBAAY,CAAC;SAEnB,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAC/B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,wBAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC;IAEf,CAAC,CAAC,CACF;IAEF,cAAc,EAAE,sBAAe;SAC7B,KAAK,CAAC,kCAAoB,CAAC;SAC3B,MAAM,CAAC,4CAA8B,CAAC;SACtC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,wBAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO,IAAA,mBAAQ,EAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC,CAAC,CACF;IAEF,sBAAsB,EAAE,sBAAe;SACrC,KAAK,CAAC,kCAAoB,CAAC;SAC3B,MAAM,CAAC,4CAA8B,CAAC;SACtC,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC7B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,wBAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO,IAAA,mBAAQ,EAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC,CAAC,CACF;IAEF,yBAAyB,EAAE,IAAA,mCAA4B,EAAC;QACvD,WAAW,EAAE,CAAC,qBAAc,CAAC,GAAG,EAAE,qBAAc,CAAC,IAAI,CAAC;KACtD,CAAC;SACA,KAAK,CAAC,iCAAmB,CAAC;SAC1B,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAClC,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,qBAAc,CAAC,GAAG,CAAC;QACvD,MAAM,EAAE,GAAG,IAAI,oBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,oCAAyB,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpG,OAAO,MAAM,CAAC;IACf,CAAC,CAAC,CACF;IAEF,qBAAqB,EAAE,IAAA,mCAA4B,EAAC;QACnD,WAAW,EAAE,CAAC,qBAAc,CAAC,IAAI,CAAC;KAClC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CACjC,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,EAAE,GAAG,IAAI,oBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,oCAAyB,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC;IACf,CAAC,CAAC,CACF;IAED,eAAe,EAAE,IAAA,mCAA4B,EAAC;QAC7C,WAAW,EAAE,CAAC,qBAAc,CAAC,IAAI,CAAC;KAClC,CAAC;SACA,KAAK,CAAC,8BAAgB,CAAC;SACvB,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAClC,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,wBAAO,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,EAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACzF,OAAO,MAAM,CAAC;IACf,CAAC,CAAC,CACF;IAEF,gBAAgB,EAAE,sBAAe;SAC/B,KAAK,CAAC,yBAAY,CAAC;SACnB,MAAM,CAAC,wCAA2B,CAAC;SACnC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,wBAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,IAAA,mBAAQ,EAAC,mDAAmD,EAAE,MAAM,CAAC,CAAC;IAC9E,CAAC,CAAC,CACF;IAEF,kBAAkB,EAAE,sBAAe;SACjC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SAC3C,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC7B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,wBAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC;IACf,CAAC,CAAC,CACF;IAEF,2BAA2B,EAAE,sBAAe;SAC1C,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SACvC,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC7B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,wBAAO,CAAC,2BAA2B,CAAC,IAAI,oBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACpG,OAAO,MAAM,CAAC;IACf,CAAC,CAAC,CACF;CACF,CAAC,CAAC","sourcesContent":["import { createTRPCRouter, publicProcedure } from '@lyxa.ai/core/dist/libraries/trpc';\nimport { referralCodeCouponService, couponService as service } from '@modules/coupon/services';\nimport {\n\tCouponSchema as Schema,\n\tCouponIdValidationSchema as IdSchema,\n\tAllCouponsUpdateSchema as UpdateSchema,\n\tAllCouponsValidationSchema,\n\tCouponResponseSchema as ResponseSchema,\n\tGetUserCouponSchema,\n\tValidateCouponSchema,\n\tCouponValidationResponseSchema,\n\tCouponCodeSchema,\n\tUpdateCouponStatusSchema,\n} from '@modules/coupon/validations';\nimport { allCouponTransformer as transformer } from '@modules/coupon/transformers';\nimport {\n\tDeleteSchema,\n\tFilterSchema,\n\tShareableLinkResponseSchema,\n\tStringSchema,\n} from '@lyxa.ai/core/dist/utilities/validation';\nimport { ErrorHandler } from '@lyxa.ai/core/dist/utilities/error-handler';\nimport { response } from '@lyxa.ai/core/dist/utilities/response';\nimport { createAuthenticatedProcedure } from '@lyxa.ai/core/dist/libraries/trpc/middlewares/auth';\nimport { AuthEntityType } from '@lyxa.ai/core/dist/libraries/auth';\nimport { mongoose } from '@typegoose/typegoose';\nimport { z } from 'zod';\n\nexport const couponRouter = createTRPCRouter({\n\tcreate: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM] })\n\t\t.input(AllCouponsValidationSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tawait service.create({ ...input, createdBy: new mongoose.Types.ObjectId(ctx.entity?.id) });\n\t\t\t\treturn response('Coupon created successfully');\n\t\t\t})\n\t\t),\n\n\tgetById: publicProcedure\n\t\t.input(IdSchema)\n\t\t.output(ResponseSchema)\n\t\t.query(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.findById(input);\n\t\t\t\tconst transformedResult = transformer.transformToBasicView(result);\n\t\t\t\treturn response('Coupon fetched successfully', transformedResult);\n\t\t\t})\n\t\t),\n\n\tget: publicProcedure\n\t\t.input(FilterSchema)\n\t\t.output(ResponseSchema)\n\t\t.query(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.find(input);\n\t\t\t\treturn response('Coupons fetched successfully', result);\n\t\t\t})\n\t\t),\n\n\tupdate: publicProcedure\n\t\t.input(UpdateSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst { _id, data } = input;\n\t\t\t\tawait service.update(String(_id), data);\n\t\t\t\treturn response('Coupon updated successfully');\n\t\t\t})\n\t\t),\n\n\tupdateStatus: publicProcedure\n\t\t.input(UpdateCouponStatusSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst { _id, status } = input;\n\t\t\t\tawait service.updateStatus(String(_id), status);\n\t\t\t\treturn response('Coupon updated successfully');\n\t\t\t})\n\t\t),\n\n\tdeleteById: publicProcedure\n\t\t.input(DeleteSchema)\n\t\t.output(ResponseSchema)\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tawait service.deleteById(input);\n\t\t\t\treturn response('Coupon deleted successfully');\n\t\t\t})\n\t\t),\n\n\tgetUserCoupons: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM, AuthEntityType.USER] })\n\t\t.input(GetUserCouponSchema)\n\t\t// .output(ResponseSchema)\n\t\t.query(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst isAdmin = ctx.entity?.type == AuthEntityType.CRM;\n\t\t\t\tconst id = new mongoose.Types.ObjectId(ctx.entity?.id);\n\t\t\t\tconst result = await service.getUserCoupons(\n\t\t\t\t\tisAdmin ? input.user : id,\n\t\t\t\t\tinput.shop,\n\t\t\t\t\tinput.page,\n\t\t\t\t\tinput.size\n\t\t\t\t);\n\t\t\t\treturn result;\n\t\t\t\t// return response('Coupons fetched successfully', result);\n\t\t\t})\n\t\t),\n\n\tgetUserCouponList: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM] })\n\t\t.input(FilterSchema)\n\t\t// .output(ResponseSchema)\n\t\t.query(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.getUserCouponList(input);\n\t\t\t\treturn result;\n\t\t\t\t// return response('Coupons fetched successfully', result);\n\t\t\t})\n\t\t),\n\n\tvalidateCoupon: publicProcedure\n\t\t.input(ValidateCouponSchema)\n\t\t.output(CouponValidationResponseSchema)\n\t\t.query(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.validateCoupon(input);\n\t\t\t\treturn response('Coupon validated successfully', result);\n\t\t\t})\n\t\t),\n\n\tvalidateCouponMutation: publicProcedure\n\t\t.input(ValidateCouponSchema)\n\t\t.output(CouponValidationResponseSchema)\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.validateCoupon(input);\n\t\t\t\treturn response('Coupon validated successfully', result);\n\t\t\t})\n\t\t),\n\n\tcreateReferralCodeForUser: createAuthenticatedProcedure({\n\t\tentityTypes: [AuthEntityType.CRM, AuthEntityType.USER],\n\t})\n\t\t.input(GetUserCouponSchema)\n\t\t.mutation(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst isAdmin = ctx.entity?.type == AuthEntityType.CRM;\n\t\t\t\tconst id = new mongoose.Types.ObjectId(ctx.entity?.id);\n\t\t\t\tconst result = await referralCodeCouponService.createReferralCodeForUser(isAdmin ? input.user : id);\n\t\t\t\treturn result;\n\t\t\t})\n\t\t),\n\n\tgetReferralCodeCoupon: createAuthenticatedProcedure({\n\t\tentityTypes: [AuthEntityType.USER],\n\t}).query(async ({ ctx, input }) =>\n\t\tErrorHandler.wrapAsync(async () => {\n\t\t\tconst id = new mongoose.Types.ObjectId(ctx.entity?.id);\n\t\t\tconst result = await referralCodeCouponService.getReferralCodeCoupon(id);\n\t\t\treturn result;\n\t\t})\n\t),\n\n\taddCouponToUser: createAuthenticatedProcedure({\n\t\tentityTypes: [AuthEntityType.USER],\n\t})\n\t\t.input(CouponCodeSchema)\n\t\t.mutation(async ({ ctx, input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.addCouponToUser(ctx.entity?.id as string, input.couponCode);\n\t\t\t\treturn result;\n\t\t\t})\n\t\t),\n\n\tgetShareableLink: publicProcedure\n\t\t.input(StringSchema)\n\t\t.output(ShareableLinkResponseSchema)\n\t\t.query(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.getShareableLink(input);\n\t\t\t\treturn response('Invite friend shareable link fetched successfully', result);\n\t\t\t})\n\t\t),\n\n\thandleCouponExpiry: publicProcedure\n\t\t.input(z.object({ couponCode: z.string() }))\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.handleCouponExpiry(input.couponCode);\n\t\t\t\treturn result;\n\t\t\t})\n\t\t),\n\n\taddExistingCouponsToNewUser: publicProcedure\n\t\t.input(z.object({ userId: z.string() }))\n\t\t.mutation(async ({ input }) =>\n\t\t\tErrorHandler.wrapAsync(async () => {\n\t\t\t\tconst result = await service.addExistingCouponsToNewUser(new mongoose.Types.ObjectId(input.userId));\n\t\t\t\treturn result;\n\t\t\t})\n\t\t),\n});\n"]}
@@ -3,17 +3,22 @@ import { Coupon as Model } from '@lyxa.ai/core/dist/libraries/mongo/models';
3
3
  import { AllCouponsValidationDTO, CouponValidationOutputDTO, ValidateCouponDTO, AllCouponsDTO } from '../../coupon/validations';
4
4
  import { FilterDTO, PaginatedResponse, DeleteDTO, ShareableLinkDTO } from '@lyxa.ai/core/dist/utilities/validation';
5
5
  import { ModelType } from '@typegoose/typegoose/lib/types';
6
+ import { Status } from '@lyxa.ai/core/dist/utilities/enum';
6
7
  export declare class CouponService {
7
8
  private model;
9
+ private baseCouponModel;
8
10
  private userModel;
9
11
  private orderModel;
10
12
  private referralRewardModel;
11
13
  private punchHistoryService;
14
+ private _coreUserModel;
12
15
  constructor();
16
+ private get coreUserModel();
13
17
  create(data: AllCouponsValidationDTO): Promise<DocumentType<Model>>;
14
18
  findById(id: string | mongoose.Types.ObjectId): Promise<DocumentType<Model>>;
15
19
  find(data?: Partial<FilterDTO>): Promise<PaginatedResponse<DocumentType<ModelType<Model>>>>;
16
20
  update(id: string, data: AllCouponsValidationDTO): Promise<DocumentType<Model>>;
21
+ updateStatus(id: string, status: Status): Promise<DocumentType<Model>>;
17
22
  deleteById(data: DeleteDTO): Promise<string>;
18
23
  getUserCoupons(user: mongoose.Types.ObjectId | undefined, shop: mongoose.Types.ObjectId | undefined, page?: number, size?: number): Promise<{
19
24
  available: Array<DocumentType<Model>>;
@@ -25,7 +30,7 @@ export declare class CouponService {
25
30
  private validateBaseCoupon;
26
31
  private checkIfNewUser;
27
32
  private getCouponOrdersForUser;
28
- private updateCouponExpiry;
33
+ handleCouponExpiry(couponCode: string): Promise<void>;
29
34
  private findCouponByCode;
30
35
  private getCouponDiscountTotals;
31
36
  private assignCouponToUser;
@@ -39,6 +44,7 @@ export declare class CouponService {
39
44
  private exchangeCouponForMultipleUser;
40
45
  getShareableLink: (code: string) => Promise<ShareableLinkDTO>;
41
46
  getUserCouponList(data?: Partial<FilterDTO>): Promise<PaginatedResponse<AllCouponsDTO>>;
47
+ addExistingCouponsToNewUser(userId: mongoose.Types.ObjectId): Promise<void>;
42
48
  }
43
49
  export declare const couponService: CouponService;
44
50
  //# sourceMappingURL=coupon.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"coupon.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/coupon.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAgC,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAMN,MAAM,IAAI,KAAK,EAOf,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACN,uBAAuB,EAIvB,yBAAyB,EACzB,iBAAiB,EACjB,aAAa,EACb,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACN,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,MAAM,yCAAyC,CAAC;AAMjD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAqB3D,qBACa,aAAa;IACzB,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,UAAU,CAA2D;IAC7E,OAAO,CAAC,mBAAmB,CAA2E;IACtG,OAAO,CAAC,mBAAmB,CAA+B;;IAe7C,MAAM,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IA4FnE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAwB5E,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IA0B3F,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IA8I/E,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB5C,cAAc,CAC1B,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,EACzC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,EACzC,IAAI,GAAE,MAAU,EAChB,IAAI,GAAE,MAAU,GACd,OAAO,CAAC;QACV,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;KACpC,CAAC;IAcW,cAAc,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAkExF,OAAO,CAAC,eAAe;YAeT,kBAAkB;YAiBlB,cAAc;YAQd,sBAAsB;YAUtB,kBAAkB;YA8ClB,gBAAgB;YAWhB,uBAAuB;YAqCvB,kBAAkB;YAelB,0BAA0B;YAW1B,oBAAoB;YAepB,4BAA4B;YAW5B,YAAY;IAK1B,OAAO,CAAC,eAAe;IAOV,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YA8B3E,2BAA2B;YAoB3B,6BAA6B;IASpC,gBAAgB,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,gBAAgB,CAAC,CAUvE;IAEW,iBAAiB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;CAsHpG;AAED,eAAO,MAAM,aAAa,eAA+B,CAAC"}
1
+ {"version":3,"file":"coupon.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/coupon.service.ts"],"names":[],"mappings":"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"}
@@ -49,24 +49,34 @@ const models_1 = require("@lyxa.ai/core/dist/libraries/mongo/models");
49
49
  const pagination_1 = require("@lyxa.ai/core/dist/utilities/pagination");
50
50
  const _1 = require(".");
51
51
  const enum_1 = require("@lyxa.ai/core/dist/utilities/enum");
52
+ const models_2 = require("@lyxa.ai/core/dist/libraries/mongo/models");
52
53
  const services_1 = require("../../punch-marketing-history/services");
53
54
  const core_1 = require("@lyxa.ai/core");
54
55
  const CouponRepository_1 = require("./patterns/repository/CouponRepository");
55
- const normalize_1 = require("@lyxa.ai/core/dist/utilities/normalize");
56
56
  const error_common_1 = require("@lyxa.ai/core/dist/utilities/error-common");
57
+ const shops_categories_coupon_service_1 = require("./shops-categories-coupon.service");
57
58
  let CouponService = class CouponService {
58
59
  model;
60
+ baseCouponModel;
59
61
  userModel;
60
62
  orderModel;
61
63
  referralRewardModel;
62
64
  punchHistoryService;
65
+ _coreUserModel = null;
63
66
  constructor() {
64
67
  this.model = models_1.CouponModel;
68
+ this.baseCouponModel = models_2.BaseCouponModel;
65
69
  this.userModel = models_1.UserModel;
66
70
  this.orderModel = models_1.RegularOrderModel;
67
71
  this.referralRewardModel = models_1.ReferralRewardCouponModel;
68
72
  this.punchHistoryService = services_1.punchMarketingHistoryService;
69
73
  }
74
+ get coreUserModel() {
75
+ if (!this._coreUserModel) {
76
+ this._coreUserModel = (0, models_1.getCoreUserModel)();
77
+ }
78
+ return this._coreUserModel;
79
+ }
70
80
  async create(data) {
71
81
  let coupon;
72
82
  const checkCoupon = await this.model.findOne({
@@ -98,6 +108,16 @@ let CouponService = class CouponService {
98
108
  coupon = await _1.referralRewardCouponService.create(data);
99
109
  break;
100
110
  }
111
+ case enum_1.CouponType.SHOPS_CATEGORIES: {
112
+ coupon = await shops_categories_coupon_service_1.shopsCategoriesCouponService.create(data);
113
+ if (coupon) {
114
+ const shopsCategoriesCoupon = coupon;
115
+ if (!shopsCategoriesCoupon.forNewUserOnly) {
116
+ await this.assignCouponToMultipleUser({}, coupon._id);
117
+ }
118
+ }
119
+ break;
120
+ }
101
121
  case enum_1.CouponType.INDIVIDUAL_STORE: {
102
122
  coupon = await _1.individualStoreCouponService.create(data);
103
123
  if (coupon) {
@@ -160,6 +180,64 @@ let CouponService = class CouponService {
160
180
  }
161
181
  async find(data) {
162
182
  try {
183
+ const populate = [
184
+ ...data?.populate,
185
+ {
186
+ path: 'users',
187
+ populate: [
188
+ {
189
+ path: 'coreUser',
190
+ model: this.coreUserModel,
191
+ select: 'name profilePhoto -_id',
192
+ },
193
+ ],
194
+ select: 'coreUser phoneNumber',
195
+ },
196
+ {
197
+ path: 'influencer',
198
+ populate: [
199
+ {
200
+ path: 'coreUser',
201
+ model: this.coreUserModel,
202
+ select: 'name profilePhoto -_id',
203
+ },
204
+ ],
205
+ select: 'coreUser phoneNumber',
206
+ },
207
+ {
208
+ path: 'referralUser',
209
+ populate: [
210
+ {
211
+ path: 'coreUser',
212
+ model: this.coreUserModel,
213
+ select: 'name profilePhoto -_id',
214
+ },
215
+ ],
216
+ select: 'coreUser phoneNumber',
217
+ },
218
+ {
219
+ path: 'user',
220
+ populate: [
221
+ {
222
+ path: 'coreUser',
223
+ model: this.coreUserModel,
224
+ select: 'name profilePhoto -_id',
225
+ },
226
+ ],
227
+ select: 'coreUser phoneNumber',
228
+ },
229
+ {
230
+ path: 'referralCodeUsedBy',
231
+ populate: [
232
+ {
233
+ path: 'coreUser',
234
+ model: this.coreUserModel,
235
+ select: 'name profilePhoto -_id',
236
+ },
237
+ ],
238
+ select: 'coreUser phoneNumber',
239
+ },
240
+ ];
163
241
  const paginate = (0, pagination_1.createRawDocumentPaginatorObject)(this.model);
164
242
  const options = {
165
243
  page: data?.page,
@@ -167,7 +245,7 @@ let CouponService = class CouponService {
167
245
  sort: data?.sort,
168
246
  query: { ...data?.query, updatedVersion: { $exists: false } },
169
247
  select: data?.select,
170
- populate: data?.populate,
248
+ populate: populate,
171
249
  };
172
250
  const paginatedResult = await paginate(options);
173
251
  return paginatedResult;
@@ -191,6 +269,7 @@ let CouponService = class CouponService {
191
269
  this.model.findOne({
192
270
  code: data.code,
193
271
  _id: { $ne: id },
272
+ updatedVersion: { $exists: false },
194
273
  }),
195
274
  ]);
196
275
  if (!oldCoupon) {
@@ -220,6 +299,19 @@ let CouponService = class CouponService {
220
299
  }
221
300
  break;
222
301
  }
302
+ case enum_1.CouponType.SHOPS_CATEGORIES: {
303
+ coupon = await shops_categories_coupon_service_1.shopsCategoriesCouponService.create(data);
304
+ if (coupon) {
305
+ const shopsCategoriesCoupon = coupon;
306
+ if (!shopsCategoriesCoupon.forNewUserOnly) {
307
+ await this.exchangeCouponForMultipleUser({ _id: { $nin: oldCouponUsers } }, oldCoupon._id, coupon._id);
308
+ }
309
+ else {
310
+ await this.removeCouponFromMultipleUser({ _id: { $nin: oldCouponUsers } }, oldCoupon._id);
311
+ }
312
+ }
313
+ break;
314
+ }
223
315
  case enum_1.CouponType.INDIVIDUAL_STORE: {
224
316
  coupon = await _1.individualStoreCouponService.create(data);
225
317
  if (coupon) {
@@ -287,6 +379,21 @@ let CouponService = class CouponService {
287
379
  });
288
380
  return updatedCoupon;
289
381
  }
382
+ async updateStatus(id, status) {
383
+ const coupon = await this.baseCouponModel.findByIdAndUpdate(id, {
384
+ $set: { status },
385
+ }, {
386
+ new: true,
387
+ runValidators: true,
388
+ });
389
+ if (!coupon) {
390
+ throw new server_1.TRPCError({
391
+ code: 'NOT_FOUND',
392
+ message: 'Coupon not found',
393
+ });
394
+ }
395
+ return coupon;
396
+ }
290
397
  async deleteById(data) {
291
398
  const { _id, softDelete } = data;
292
399
  const result = await this.model.deleteRecord({ _id, deletedAt: null }, softDelete);
@@ -316,7 +423,7 @@ let CouponService = class CouponService {
316
423
  }
317
424
  const [user, coupon] = await Promise.all([
318
425
  this.userModel.findById(data.user),
319
- this.model.findOne({ code: data.coupon }),
426
+ this.model.findOne({ code: data.coupon, updatedVersion: { $exists: false } }),
320
427
  ]);
321
428
  if (!user) {
322
429
  throw new server_1.TRPCError({
@@ -345,6 +452,8 @@ let CouponService = class CouponService {
345
452
  return await _1.referralRewardCouponService.validateCoupon(data, coupon);
346
453
  case enum_1.CouponType.GLOBAL:
347
454
  return await _1.globalCouponService.validateCoupon(data, coupon);
455
+ case enum_1.CouponType.SHOPS_CATEGORIES:
456
+ return await shops_categories_coupon_service_1.shopsCategoriesCouponService.validateCoupon(data, coupon);
348
457
  case enum_1.CouponType.INDIVIDUAL_STORE:
349
458
  return await _1.individualStoreCouponService.validateCoupon(data, coupon);
350
459
  case enum_1.CouponType.INDIVIDUAL_USER:
@@ -368,56 +477,89 @@ let CouponService = class CouponService {
368
477
  const invalidConditions = [
369
478
  this.isCouponExpired(coupon),
370
479
  coupon.duration.start > new Date(),
371
- coupon.minOrderValue && orderAmount < coupon.minOrderValue,
480
+ coupon.isMinOrderValueEnabled && coupon.minOrderValue && orderAmount < coupon.minOrderValue,
372
481
  coupon.forNewUserOnly && !(await this.checkIfNewUser(user)),
373
- coupon.orderLimitPerUser &&
374
- (await this.getCouponOrdersForUser(user, coupon._id)) >= coupon.orderLimitPerUser,
482
+ coupon.isOrderLimitPerUserEnabled &&
483
+ coupon.orderLimitPerUser &&
484
+ (await this.getCouponOrdersForUser(user, coupon.code)) >= coupon.orderLimitPerUser,
375
485
  ];
376
- return invalidConditions.every(value => value == false);
486
+ return invalidConditions.every(value => Boolean(value) == false);
377
487
  }
378
488
  async checkIfNewUser(user) {
379
489
  const order = await this.orderModel.findOne({
380
490
  user,
381
- status: { ne: enum_1.RegularOrderStatus.CANCELLED },
491
+ status: { $ne: enum_1.RegularOrderStatus.CANCELLED },
382
492
  });
383
493
  return order ? false : true;
384
494
  }
385
- async getCouponOrdersForUser(user, coupon) {
386
- return await this.orderModel.countDocuments({
495
+ async getCouponOrdersForUser(user, couponCode) {
496
+ const orders = (await this.orderModel
497
+ .find({
498
+ user: user,
387
499
  status: { $ne: enum_1.RegularOrderStatus.CANCELLED },
388
- 'finance.coupon.coupon': coupon,
389
- });
500
+ orderType: enum_1.OrderType.REGULAR,
501
+ })
502
+ .populate([{ path: 'cart' }]));
503
+ const count = orders.filter(order => order.cart.couponCode == couponCode).length;
504
+ return count;
390
505
  }
391
- async updateCouponExpiry(coupon) {
392
- if (coupon.totalOrderLimit) {
393
- const orderCount = await this.orderModel.countDocuments({
394
- status: { $ne: enum_1.RegularOrderStatus.CANCELLED },
395
- 'finance.coupon.coupon': coupon._id,
396
- });
397
- if (orderCount > coupon.totalOrderLimit) {
398
- await this.model.findByIdAndUpdate(coupon._id, {
399
- $set: {
400
- expirationReason: enum_1.CouponExpirationReason.TOTAL_ORDER_LIMIT,
506
+ async handleCouponExpiry(couponCode) {
507
+ const coupon = await this.model.findOne({ code: couponCode, updatedVersion: { $exists: false } });
508
+ if (!coupon ||
509
+ coupon.couponType == enum_1.CouponType.REFERRAL_CODE ||
510
+ coupon.couponType == enum_1.CouponType.REFERRAL_REWARD) {
511
+ return;
512
+ }
513
+ const typedCoupon = coupon;
514
+ let expirationReason = null;
515
+ if (typedCoupon.isTotalOrderLimitEnabled && typedCoupon.totalOrderLimit) {
516
+ const pipeline = [
517
+ {
518
+ $match: {
519
+ status: { $ne: enum_1.RegularOrderStatus.CANCELLED },
520
+ 'adjustedFinance.pricing.couponDiscount': { $gt: 0 },
401
521
  },
402
- }, {
403
- new: true,
404
- runValidators: true,
405
- });
522
+ },
523
+ {
524
+ $lookup: {
525
+ from: 'carts',
526
+ localField: 'cart',
527
+ foreignField: '_id',
528
+ as: 'cart',
529
+ },
530
+ },
531
+ {
532
+ $unwind: '$cart',
533
+ },
534
+ {
535
+ $match: {
536
+ 'cart.couponCode': typedCoupon.code,
537
+ },
538
+ },
539
+ {
540
+ $count: 'orderCount',
541
+ },
542
+ ];
543
+ const result = await this.orderModel.aggregate(pipeline);
544
+ const orderCount = result[0]?.orderCount ?? 0;
545
+ if (orderCount > typedCoupon.totalOrderLimit) {
546
+ expirationReason = enum_1.CouponExpirationReason.TOTAL_ORDER_LIMIT;
406
547
  }
407
548
  }
408
- if (coupon.spendLimit) {
409
- const { totalCouponDiscount, totalSecondaryCouponDiscount } = await this.getCouponDiscountTotals(coupon._id);
410
- if (totalCouponDiscount >= coupon.spendLimit) {
411
- await this.model.findByIdAndUpdate(coupon._id, {
412
- $set: {
413
- expirationReason: enum_1.CouponExpirationReason.SPEND_LIMIT,
414
- },
415
- }, {
416
- new: true,
417
- runValidators: true,
418
- });
549
+ if (typedCoupon.isSpendLimitEnabled && typedCoupon.spendLimit) {
550
+ const { totalCouponDiscount, totalSecondaryCouponDiscount } = await this.getCouponDiscountTotals(typedCoupon.code);
551
+ if (totalCouponDiscount >= typedCoupon.spendLimit) {
552
+ expirationReason = enum_1.CouponExpirationReason.SPEND_LIMIT;
419
553
  }
420
554
  }
555
+ await this.baseCouponModel.findByIdAndUpdate(typedCoupon._id, {
556
+ $set: {
557
+ expirationReason,
558
+ },
559
+ }, {
560
+ new: true,
561
+ runValidators: true,
562
+ });
421
563
  }
422
564
  async findCouponByCode(code) {
423
565
  const coupon = await this.model.findOne({ code: code });
@@ -429,12 +571,28 @@ let CouponService = class CouponService {
429
571
  }
430
572
  return coupon;
431
573
  }
432
- async getCouponDiscountTotals(coupon) {
574
+ async getCouponDiscountTotals(couponCode) {
433
575
  const pipeline = [
434
576
  {
435
577
  $match: {
436
578
  status: { $ne: enum_1.RegularOrderStatus.CANCELLED },
437
- 'finance.coupon.coupon': coupon,
579
+ 'adjustedFinance.pricing.couponDiscount': { $gt: 0 },
580
+ },
581
+ },
582
+ {
583
+ $lookup: {
584
+ from: 'carts',
585
+ localField: 'cart',
586
+ foreignField: '_id',
587
+ as: 'cart',
588
+ },
589
+ },
590
+ {
591
+ $unwind: '$cart',
592
+ },
593
+ {
594
+ $match: {
595
+ 'cart.couponCode': couponCode,
438
596
  },
439
597
  },
440
598
  {
@@ -512,11 +670,14 @@ let CouponService = class CouponService {
512
670
  if (!coupon) {
513
671
  this.throwBadRequest('Coupon not found');
514
672
  }
673
+ const isNewUser = await this.newUserCheck(user);
674
+ if (coupon.couponType == enum_1.CouponType.REFERRAL_CODE && !isNewUser) {
675
+ this.throwBadRequest('This coupon is valid for new users only');
676
+ }
515
677
  const typedCoupon = coupon;
516
678
  if (this.isCouponExpired(typedCoupon)) {
517
679
  this.throwBadRequest('This coupon has expired and cannot be added');
518
680
  }
519
- const isNewUser = await this.newUserCheck(user);
520
681
  if (typedCoupon.forNewUserOnly && !isNewUser) {
521
682
  this.throwBadRequest('This coupon is valid for new users only');
522
683
  }
@@ -524,6 +685,11 @@ let CouponService = class CouponService {
524
685
  if (alreadyApplied) {
525
686
  this.throwBadRequest('Coupon already applied to user');
526
687
  }
688
+ if (typedCoupon.couponType == enum_1.CouponType.INDIVIDUAL_USER) {
689
+ if (!typedCoupon.users?.includes(user)) {
690
+ this.throwBadRequest('This coupon is not assigned to this user');
691
+ }
692
+ }
527
693
  await this.userModel.findByIdAndUpdate(user, { $push: { coupons: typedCoupon._id } }, { new: true, runValidators: true });
528
694
  return coupon;
529
695
  }
@@ -638,7 +804,7 @@ let CouponService = class CouponService {
638
804
  },
639
805
  ];
640
806
  if (data?.search?.searchKey) {
641
- const searchKey = (0, normalize_1.normalizeName)(data.search.searchKey);
807
+ const searchKey = data.search.searchKey;
642
808
  const regex = new RegExp(searchKey, 'i');
643
809
  const fields = data.search.searchFields?.length ? data.search.searchFields : ['code'];
644
810
  pipeline.push({
@@ -657,6 +823,28 @@ let CouponService = class CouponService {
657
823
  });
658
824
  }
659
825
  }
826
+ async addExistingCouponsToNewUser(userId) {
827
+ const coupons = await this.baseCouponModel.find({
828
+ couponType: enum_1.CouponType.GLOBAL,
829
+ deletedAt: null,
830
+ expirationReason: null,
831
+ $or: [
832
+ { 'duration.end': { $gt: new Date() } },
833
+ { 'duration.end': { $exists: false } },
834
+ { 'duration.end': null },
835
+ ],
836
+ updatedVersion: { $exists: false },
837
+ });
838
+ const couponIds = coupons.map(coupon => coupon._id);
839
+ await this.userModel.findByIdAndUpdate(userId, {
840
+ $addToSet: {
841
+ coupons: { $each: couponIds },
842
+ },
843
+ }, {
844
+ new: true,
845
+ runValidators: true,
846
+ });
847
+ }
660
848
  };
661
849
  exports.CouponService = CouponService;
662
850
  exports.CouponService = CouponService = __decorate([