@lyxa.ai/marketing 1.0.38 → 1.0.41

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 (107) hide show
  1. package/dist/lib/index.d.ts +89 -9
  2. package/dist/lib/index.d.ts.map +1 -1
  3. package/dist/lib/modules/coupon/routers/coupon.router.d.ts +4 -0
  4. package/dist/lib/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  5. package/dist/lib/modules/coupon/services/coupon.service.d.ts +3 -0
  6. package/dist/lib/modules/coupon/services/coupon.service.d.ts.map +1 -1
  7. package/dist/lib/modules/coupon/services/coupon.service.js +111 -6
  8. package/dist/lib/modules/coupon/services/coupon.service.js.map +1 -1
  9. package/dist/lib/modules/coupon/services/custom-coupon.service.d.ts +28 -2
  10. package/dist/lib/modules/coupon/services/custom-coupon.service.d.ts.map +1 -1
  11. package/dist/lib/modules/coupon/services/custom-coupon.service.js +13 -33
  12. package/dist/lib/modules/coupon/services/custom-coupon.service.js.map +1 -1
  13. package/dist/lib/modules/coupon/services/helper.service.d.ts +30 -2
  14. package/dist/lib/modules/coupon/services/helper.service.d.ts.map +1 -1
  15. package/dist/lib/modules/coupon/services/helper.service.js +112 -4
  16. package/dist/lib/modules/coupon/services/helper.service.js.map +1 -1
  17. package/dist/lib/modules/coupon/services/individual-store-coupon.service.d.ts +29 -3
  18. package/dist/lib/modules/coupon/services/individual-store-coupon.service.d.ts.map +1 -1
  19. package/dist/lib/modules/coupon/services/individual-store-coupon.service.js +10 -62
  20. package/dist/lib/modules/coupon/services/individual-store-coupon.service.js.map +1 -1
  21. package/dist/lib/modules/coupon/services/patterns/repository/CouponRepository.d.ts.map +1 -1
  22. package/dist/lib/modules/coupon/services/patterns/repository/CouponRepository.js +16 -6
  23. package/dist/lib/modules/coupon/services/patterns/repository/CouponRepository.js.map +1 -1
  24. package/dist/lib/modules/coupon/services/referral-code-coupon.service.d.ts +9 -0
  25. package/dist/lib/modules/coupon/services/referral-code-coupon.service.d.ts.map +1 -1
  26. package/dist/lib/modules/coupon/services/referral-code-coupon.service.js +96 -29
  27. package/dist/lib/modules/coupon/services/referral-code-coupon.service.js.map +1 -1
  28. package/dist/lib/modules/coupon/services/shops-categories-coupon.service.d.ts +29 -3
  29. package/dist/lib/modules/coupon/services/shops-categories-coupon.service.d.ts.map +1 -1
  30. package/dist/lib/modules/coupon/services/shops-categories-coupon.service.js +10 -63
  31. package/dist/lib/modules/coupon/services/shops-categories-coupon.service.js.map +1 -1
  32. package/dist/lib/modules/coupon/validations/coupon.validation.d.ts +13 -0
  33. package/dist/lib/modules/coupon/validations/coupon.validation.d.ts.map +1 -1
  34. package/dist/lib/modules/coupon/validations/coupon.validation.js +6 -14
  35. package/dist/lib/modules/coupon/validations/coupon.validation.js.map +1 -1
  36. package/dist/lib/modules/deal-setting/services/deal-setting.service.d.ts.map +1 -1
  37. package/dist/lib/modules/deal-setting/services/deal-setting.service.js +4 -4
  38. package/dist/lib/modules/deal-setting/services/deal-setting.service.js.map +1 -1
  39. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts +39 -0
  40. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts.map +1 -0
  41. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.js +539 -0
  42. package/dist/lib/modules/marketing/patterns/repository/MarketingMetricsRepository.js.map +1 -0
  43. package/dist/lib/modules/marketing/routers/marketing.router.d.ts +85 -9
  44. package/dist/lib/modules/marketing/routers/marketing.router.d.ts.map +1 -1
  45. package/dist/lib/modules/marketing/routers/marketing.router.js +26 -8
  46. package/dist/lib/modules/marketing/routers/marketing.router.js.map +1 -1
  47. package/dist/lib/modules/marketing/services/marketing.service.d.ts +2 -8
  48. package/dist/lib/modules/marketing/services/marketing.service.d.ts.map +1 -1
  49. package/dist/lib/modules/marketing/services/marketing.service.js +35 -354
  50. package/dist/lib/modules/marketing/services/marketing.service.js.map +1 -1
  51. package/dist/lib/modules/marketing/services/product-marketing.service.d.ts +1 -0
  52. package/dist/lib/modules/marketing/services/product-marketing.service.d.ts.map +1 -1
  53. package/dist/lib/modules/marketing/services/product-marketing.service.js +4 -0
  54. package/dist/lib/modules/marketing/services/product-marketing.service.js.map +1 -1
  55. package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.d.ts.map +1 -1
  56. package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.js +28 -7
  57. package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.js.map +1 -1
  58. package/dist/lib/modules/marketing/validations/buy1-get1-marketing.validation.d.ts +12 -12
  59. package/dist/lib/modules/marketing/validations/discount-marketing.validation.d.ts +12 -12
  60. package/dist/lib/modules/marketing/validations/marketing.validation.d.ts +106 -1
  61. package/dist/lib/modules/marketing/validations/marketing.validation.d.ts.map +1 -1
  62. package/dist/lib/modules/marketing/validations/marketing.validation.js +31 -1
  63. package/dist/lib/modules/marketing/validations/marketing.validation.js.map +1 -1
  64. package/dist/lib/modules/punch-marketing-history/services/punch-marketing-history.service.d.ts.map +1 -1
  65. package/dist/lib/modules/punch-marketing-history/services/punch-marketing-history.service.js +19 -1
  66. package/dist/lib/modules/punch-marketing-history/services/punch-marketing-history.service.js.map +1 -1
  67. package/dist/lib/utility/utils.d.ts +3 -0
  68. package/dist/lib/utility/utils.d.ts.map +1 -0
  69. package/dist/lib/utility/utils.js +31 -0
  70. package/dist/lib/utility/utils.js.map +1 -0
  71. package/dist/types/index.d.ts +89 -9
  72. package/dist/types/index.d.ts.map +1 -1
  73. package/dist/types/modules/coupon/routers/coupon.router.d.ts +4 -0
  74. package/dist/types/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  75. package/dist/types/modules/coupon/services/coupon.service.d.ts +3 -0
  76. package/dist/types/modules/coupon/services/coupon.service.d.ts.map +1 -1
  77. package/dist/types/modules/coupon/services/custom-coupon.service.d.ts +28 -2
  78. package/dist/types/modules/coupon/services/custom-coupon.service.d.ts.map +1 -1
  79. package/dist/types/modules/coupon/services/helper.service.d.ts +30 -2
  80. package/dist/types/modules/coupon/services/helper.service.d.ts.map +1 -1
  81. package/dist/types/modules/coupon/services/individual-store-coupon.service.d.ts +29 -3
  82. package/dist/types/modules/coupon/services/individual-store-coupon.service.d.ts.map +1 -1
  83. package/dist/types/modules/coupon/services/patterns/repository/CouponRepository.d.ts.map +1 -1
  84. package/dist/types/modules/coupon/services/referral-code-coupon.service.d.ts +57 -0
  85. package/dist/types/modules/coupon/services/referral-code-coupon.service.d.ts.map +1 -1
  86. package/dist/types/modules/coupon/services/shops-categories-coupon.service.d.ts +29 -3
  87. package/dist/types/modules/coupon/services/shops-categories-coupon.service.d.ts.map +1 -1
  88. package/dist/types/modules/coupon/validations/coupon.validation.d.ts +13 -0
  89. package/dist/types/modules/coupon/validations/coupon.validation.d.ts.map +1 -1
  90. package/dist/types/modules/deal-setting/services/deal-setting.service.d.ts.map +1 -1
  91. package/dist/types/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts +39 -0
  92. package/dist/types/modules/marketing/patterns/repository/MarketingMetricsRepository.d.ts.map +1 -0
  93. package/dist/types/modules/marketing/routers/marketing.router.d.ts +85 -9
  94. package/dist/types/modules/marketing/routers/marketing.router.d.ts.map +1 -1
  95. package/dist/types/modules/marketing/services/marketing.service.d.ts +2 -8
  96. package/dist/types/modules/marketing/services/marketing.service.d.ts.map +1 -1
  97. package/dist/types/modules/marketing/services/product-marketing.service.d.ts +1 -0
  98. package/dist/types/modules/marketing/services/product-marketing.service.d.ts.map +1 -1
  99. package/dist/types/modules/marketing/services/synchronize-product-marketing.service.d.ts.map +1 -1
  100. package/dist/types/modules/marketing/validations/buy1-get1-marketing.validation.d.ts +12 -12
  101. package/dist/types/modules/marketing/validations/discount-marketing.validation.d.ts +12 -12
  102. package/dist/types/modules/marketing/validations/marketing.validation.d.ts +106 -1
  103. package/dist/types/modules/marketing/validations/marketing.validation.d.ts.map +1 -1
  104. package/dist/types/modules/punch-marketing-history/services/punch-marketing-history.service.d.ts.map +1 -1
  105. package/dist/types/utility/utils.d.ts +15 -0
  106. package/dist/types/utility/utils.d.ts.map +1 -0
  107. package/package.json +2 -2
@@ -1,15 +1,43 @@
1
- import { mongoose } from '@typegoose/typegoose';
1
+ import { DocumentType, mongoose } from '@typegoose/typegoose';
2
+ import { BaseCoupon, Shop } from '@lyxa.ai/core/dist/libraries/mongo/models';
2
3
  import { Dayjs } from '@lyxa.ai/core/dist/utilities/dayjs/dayjs';
4
+ import { CouponValidationOutputDTO, ValidateCouponDTO } from '../validations';
3
5
  export declare class CouponHelperService {
4
6
  private userModel;
5
7
  private orderModel;
8
+ private shopModel;
6
9
  private _coreUserModel;
7
10
  constructor();
8
11
  private get coreUserModel();
9
12
  isNewUser(user: mongoose.Types.ObjectId): Promise<boolean>;
10
- getSameDeviceOrders(user: mongoose.Types.ObjectId): Promise<number>;
13
+ getSameDeviceOrdersWithCoupon(user: mongoose.Types.ObjectId, coupon: DocumentType<BaseCoupon>): Promise<number>;
11
14
  getNewUsers(): Promise<mongoose.Types.ObjectId[]>;
12
15
  isDurationValid(start: Dayjs, end: Dayjs): boolean;
16
+ calculateCouponDiscount(data: ValidateCouponDTO, coupon: DocumentType<BaseCoupon>): Promise<{
17
+ discountAmount: number;
18
+ secondaryDiscountAmount: number;
19
+ }>;
20
+ buildCouponResponse(data: ValidateCouponDTO, discountAmount: number, secondaryDiscountAmount: number, isShopCoverExpenses: boolean, couponDetails?: Record<string, any>): CouponValidationOutputDTO;
21
+ validateShopEligibility({ data, coupon }: {
22
+ data: ValidateCouponDTO;
23
+ coupon: any;
24
+ }): Promise<{
25
+ isValid: boolean;
26
+ message: string;
27
+ shop?: undefined;
28
+ } | {
29
+ isValid: boolean;
30
+ shop: mongoose.Document<unknown, import("@typegoose/typegoose/lib/types").BeAnObject, Shop, import("@typegoose/typegoose/lib/types").BeAnyObject, {}> & Omit<Shop & {
31
+ _id: mongoose.Types.ObjectId;
32
+ } & {
33
+ __v: number;
34
+ }, "typegooseName"> & import("@typegoose/typegoose/lib/types").IObjectWithTypegooseFunction;
35
+ message?: undefined;
36
+ }>;
37
+ private validateSingleShopRestriction;
38
+ private validateMultiRestrictions;
39
+ private validateFirstOrderOnly;
40
+ fetchUserName(userId: mongoose.Types.ObjectId): Promise<string>;
13
41
  }
14
42
  export declare const couponHelperService: CouponHelperService;
15
43
  //# sourceMappingURL=helper.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/helper.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAUhD,OAAc,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AAExE,qBACa,mBAAmB;IAC/B,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,UAAU,CAA2D;IAC7E,OAAO,CAAC,cAAc,CAAoD;;IAO1E,OAAO,KAAK,aAAa,GAKxB;IAEY,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB1D,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBnE,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAwEvD,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO;CAWzD;AAED,eAAO,MAAM,mBAAmB,qBAAqC,CAAC"}
1
+ {"version":3,"file":"helper.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/helper.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EACN,UAAU,EAIV,IAAI,EAIJ,MAAM,2CAA2C,CAAC;AAGnD,OAAc,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAI9E,qBACa,mBAAmB;IAC/B,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,UAAU,CAA2D;IAC7E,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,cAAc,CAAoD;;IAQ1E,OAAO,KAAK,aAAa,GAKxB;IAEY,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB1D,6BAA6B,CACzC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC7B,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;IA0BL,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAwEvD,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO;IAU5C,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC;;;;IAyBvF,mBAAmB,CACzB,IAAI,EAAE,iBAAiB,EACvB,cAAc,EAAE,MAAM,EACtB,uBAAuB,EAAE,MAAM,EAC/B,mBAAmB,EAAE,OAAO,EAC5B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjC,yBAAyB;IAmBf,uBAAuB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE;;;;;;;;;;;;;YAoBjF,6BAA6B;IAuB3C,OAAO,CAAC,yBAAyB;YAkBnB,sBAAsB;IAmBvB,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;CAS5E;AAED,eAAO,MAAM,mBAAmB,qBAAqC,CAAC"}
@@ -1,6 +1,6 @@
1
- import { DocumentType } from '@typegoose/typegoose';
1
+ import { DocumentType, mongoose } from '@typegoose/typegoose';
2
2
  import { IndividualStoreCoupon as Model } from '@lyxa.ai/core/dist/libraries/mongo/models/';
3
- import { CouponValidationOutputDTO, CreateIndividualStoreCouponDTO as CreateDTO, UpdateIndividualStoreCouponDTO as UpdateDTO, ValidateCouponDTO } from '@modules/coupon/validations';
3
+ import { CreateIndividualStoreCouponDTO as CreateDTO, UpdateIndividualStoreCouponDTO as UpdateDTO, ValidateCouponDTO } from '@modules/coupon/validations';
4
4
  export declare class IndividualStoreCouponService {
5
5
  private model;
6
6
  private readonly shopModelForCoupon;
@@ -17,7 +17,33 @@ export declare class IndividualStoreCouponService {
17
17
  * @param data Data to update
18
18
  */
19
19
  update(id: string, data: UpdateDTO): Promise<DocumentType<Model>>;
20
- validateCoupon(data: ValidateCouponDTO, couponDocument: DocumentType<Model>): Promise<CouponValidationOutputDTO>;
20
+ validateCoupon(data: ValidateCouponDTO, coupon: DocumentType<Model>): Promise<{
21
+ isValid: boolean;
22
+ message?: string | undefined;
23
+ amountAfterCoupon?: number | undefined;
24
+ secondaryAmountAfterCoupon?: number | undefined;
25
+ discountAmount?: number | undefined;
26
+ secondaryDiscountAmount?: number | undefined;
27
+ discountCut?: {
28
+ companyCut?: number | undefined;
29
+ secondaryCompanyCut?: number | undefined;
30
+ shopCut?: number | undefined;
31
+ secondaryShopCut?: number | undefined;
32
+ } | undefined;
33
+ couponDetails?: Record<string, unknown> | undefined;
34
+ } | {
35
+ isValid: boolean;
36
+ message: string;
37
+ shop?: undefined;
38
+ } | {
39
+ isValid: boolean;
40
+ shop: mongoose.Document<unknown, import("@typegoose/typegoose/lib/types").BeAnObject, import("@lyxa.ai/core/dist/libraries/mongo/models/shop.model").Shop, import("@typegoose/typegoose/lib/types").BeAnyObject, {}> & Omit<import("@lyxa.ai/core/dist/libraries/mongo/models/shop.model").Shop & {
41
+ _id: mongoose.Types.ObjectId;
42
+ } & {
43
+ __v: number;
44
+ }, "typegooseName"> & import("@typegoose/typegoose/lib/types").IObjectWithTypegooseFunction;
45
+ message?: undefined;
46
+ }>;
21
47
  }
22
48
  export declare const individualStoreCouponService: IndividualStoreCouponService;
23
49
  //# sourceMappingURL=individual-store-coupon.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"individual-store-coupon.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/individual-store-coupon.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAY,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAEN,qBAAqB,IAAI,KAAK,EAI9B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACN,yBAAyB,EACzB,8BAA8B,IAAI,SAAS,EAC3C,8BAA8B,IAAI,SAAS,EAC3C,iBAAiB,EACjB,MAAM,6BAA6B,CAAC;AAMrC,qBACa,4BAA4B;IACxC,OAAO,CAAC,KAAK,CAAC;IACd,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmB;IACtD,OAAO,CAAC,UAAU,CAA2D;;IAQ7E;;;OAGG;IACU,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAMlE;;;;OAIG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAuBjE,cAAc,CAC1B,IAAI,EAAE,iBAAiB,EACvB,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,GACjC,OAAO,CAAC,yBAAyB,CAAC;CA8ErC;AAED,eAAO,MAAM,4BAA4B,8BAA8C,CAAC"}
1
+ {"version":3,"file":"individual-store-coupon.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/individual-store-coupon.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAEN,qBAAqB,IAAI,KAAK,EAI9B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACN,8BAA8B,IAAI,SAAS,EAC3C,8BAA8B,IAAI,SAAS,EAC3C,iBAAiB,EACjB,MAAM,6BAA6B,CAAC;AAIrC,qBACa,4BAA4B;IACxC,OAAO,CAAC,KAAK,CAAC;IACd,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmB;IACtD,OAAO,CAAC,UAAU,CAA2D;;IAQ7E;;;OAGG;IACU,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAMlE;;;;OAIG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAuBjE,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYhF;AAED,eAAO,MAAM,4BAA4B,8BAA8C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CouponRepository.d.ts","sourceRoot":"/","sources":["modules/coupon/services/patterns/repository/CouponRepository.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAEN,QAAQ,EAIR,MAAM,mCAAmC,CAAC;AAK3C,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+C;IACrE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IACrE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiE;IACvG,OAAO,CAAC,cAAc,CAAoD;;IAS1E,OAAO,KAAK,aAAa,GAKxB;IAEY,cAAc,CAC1B,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,EACzC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,EACzC,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC5B,OAAO,CAAC,GAAG,CAAC;IA4UR,qBAAqB,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG;IAQxC,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE;IA6ChD,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;IA0DzB,OAAO,CAAC,2BAA2B;CAyGnC"}
1
+ {"version":3,"file":"CouponRepository.d.ts","sourceRoot":"/","sources":["modules/coupon/services/patterns/repository/CouponRepository.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAEN,QAAQ,EAIR,MAAM,mCAAmC,CAAC;AAK3C,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+C;IACrE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IACrE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiE;IACvG,OAAO,CAAC,cAAc,CAAoD;;IAS1E,OAAO,KAAK,aAAa,GAKxB;IAEY,cAAc,CAC1B,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,EACzC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,EACzC,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC5B,OAAO,CAAC,GAAG,CAAC;IAoVR,qBAAqB,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG;IAQxC,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE;IA6ChD,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,iBAAiB;IA0DzB,OAAO,CAAC,2BAA2B;CAyGnC"}
@@ -5,7 +5,9 @@ export declare class ReferralCodeCouponService {
5
5
  private model;
6
6
  private settingsModel;
7
7
  private userModel;
8
+ private _coreUserModel;
8
9
  constructor();
10
+ private get coreUserModel();
9
11
  /**
10
12
  * Create a new record
11
13
  * @param data Data for the new record
@@ -17,6 +19,61 @@ export declare class ReferralCodeCouponService {
17
19
  * @param data Data to update
18
20
  */
19
21
  update(id: string, data: UpdateDTO): Promise<DocumentType<Model>>;
22
+ /**
23
+ * Normalize the name by removing accents, special characters,
24
+ * and converting to uppercase
25
+ *
26
+ * @param name
27
+ * @returns Normalized name
28
+ */
29
+ private normalizeName;
30
+ /**
31
+ * Pad the value to 3 characters, if it's shorter than 3 characters,
32
+ * pad with 'X', if it's longer than 3 characters,
33
+ * truncate it to 3 characters
34
+ *
35
+ * @param value
36
+ * @returns
37
+ */
38
+ private padToThree;
39
+ /**
40
+ * Detect Arabic Characters
41
+ *
42
+ * @param text
43
+ * @returns
44
+ */
45
+ private containsArabic;
46
+ /**
47
+ * Letters + Numbers (for Arabic fallback)
48
+ *
49
+ * @param length
50
+ * @returns
51
+ */
52
+ private generateRandomAlphaNumeric;
53
+ /**
54
+ * Random Digits (000–999)
55
+ *
56
+ * @return string
57
+ */
58
+ private generateThreeDigits;
59
+ /**
60
+ * Main Generator (Core Logic)
61
+ *
62
+ * @param firstName
63
+ * @param lastName
64
+ * @returns
65
+ */
66
+ private generateCouponFromName;
67
+ /**
68
+ * Split full name into first name and last name.
69
+ * If only one word is provided, treat it as first name and leave last name empty.
70
+ * If multiple words are provided, treat the first word as first name and
71
+ * the last word as last name, ignoring any middle words.
72
+ *
73
+ * @param fullName string
74
+ * @returns object
75
+ */
76
+ private splitName;
20
77
  private generateCode;
21
78
  private generateCouponCode;
22
79
  createReferralCodeForUser(userId: mongoose.Types.ObjectId | undefined): Promise<DocumentType<Model>>;
@@ -1 +1 @@
1
- {"version":3,"file":"referral-code-coupon.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/referral-code-coupon.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAEN,kBAAkB,IAAI,KAAK,EAK3B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACN,yBAAyB,EACzB,2BAA2B,IAAI,SAAS,EACxC,6BAA6B,EAC7B,2BAA2B,IAAI,SAAS,EACxC,iBAAiB,EACjB,MAAM,6BAA6B,CAAC;AAQrC,qBACa,yBAAyB;IACrC,OAAO,CAAC,KAAK,CAAC;IACd,OAAO,CAAC,aAAa,CAAiE;IACtF,OAAO,CAAC,SAAS,CAA2C;;IAS5D;;;OAGG;IACU,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAIlE;;;;OAIG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAuB9E,OAAO,CAAC,YAAY;YASN,kBAAkB;IAanB,yBAAyB,CACrC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,GACzC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAkClB,cAAc,CAC1B,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,GACzB,OAAO,CAAC,yBAAyB,CAAC;IAgExB,qBAAqB,CACjC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAC7B,OAAO,CAAC,6BAA6B,CAAC;YAc3B,mBAAmB;CAKjC;AAED,eAAO,MAAM,yBAAyB,2BAA2C,CAAC"}
1
+ {"version":3,"file":"referral-code-coupon.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/referral-code-coupon.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAEN,kBAAkB,IAAI,KAAK,EAM3B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACN,yBAAyB,EACzB,2BAA2B,IAAI,SAAS,EACxC,6BAA6B,EAC7B,2BAA2B,IAAI,SAAS,EACxC,iBAAiB,EACjB,MAAM,6BAA6B,CAAC;AASrC,qBACa,yBAAyB;IACrC,OAAO,CAAC,KAAK,CAAC;IACd,OAAO,CAAC,aAAa,CAAiE;IACtF,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,cAAc,CAAoD;;IAS1E,OAAO,KAAK,aAAa,GAKxB;IAED;;;OAGG;IACU,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAIlE;;;;OAIG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAuB9E;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAUrB;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;IAUlB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAItB;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IAWlC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IA0B9B;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,YAAY;YAqBN,kBAAkB;IAiBnB,yBAAyB,CACrC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,GACzC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAkClB,cAAc,CAC1B,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,GACzB,OAAO,CAAC,yBAAyB,CAAC;IA2ExB,qBAAqB,CACjC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAC7B,OAAO,CAAC,6BAA6B,CAAC;YAc3B,mBAAmB;CAKjC;AAED,eAAO,MAAM,yBAAyB,2BAA2C,CAAC"}
@@ -1,6 +1,6 @@
1
- import { DocumentType } from '@typegoose/typegoose';
1
+ import { DocumentType, mongoose } from '@typegoose/typegoose';
2
2
  import { ShopsCategoriesCoupon as Model } from '@lyxa.ai/core/dist/libraries/mongo/models/';
3
- import { CouponValidationOutputDTO, CreateShopsCategoriesCouponDTO as CreateDTO, UpdateShopsCategoriesCouponDTO as UpdateDTO, ValidateCouponDTO } from '@modules/coupon/validations';
3
+ import { CreateShopsCategoriesCouponDTO as CreateDTO, UpdateShopsCategoriesCouponDTO as UpdateDTO, ValidateCouponDTO } from '@modules/coupon/validations';
4
4
  export declare class ShopsCategoriesCouponService {
5
5
  private model;
6
6
  private readonly shopModelForCoupon;
@@ -17,7 +17,33 @@ export declare class ShopsCategoriesCouponService {
17
17
  * @param data Data to update
18
18
  */
19
19
  update(id: string, data: UpdateDTO): Promise<DocumentType<Model>>;
20
- validateCoupon(data: ValidateCouponDTO, couponDocument: DocumentType<Model>): Promise<CouponValidationOutputDTO>;
20
+ validateCoupon(data: ValidateCouponDTO, coupon: DocumentType<Model>): Promise<{
21
+ isValid: boolean;
22
+ message?: string | undefined;
23
+ amountAfterCoupon?: number | undefined;
24
+ secondaryAmountAfterCoupon?: number | undefined;
25
+ discountAmount?: number | undefined;
26
+ secondaryDiscountAmount?: number | undefined;
27
+ discountCut?: {
28
+ companyCut?: number | undefined;
29
+ secondaryCompanyCut?: number | undefined;
30
+ shopCut?: number | undefined;
31
+ secondaryShopCut?: number | undefined;
32
+ } | undefined;
33
+ couponDetails?: Record<string, unknown> | undefined;
34
+ } | {
35
+ isValid: boolean;
36
+ message: string;
37
+ shop?: undefined;
38
+ } | {
39
+ isValid: boolean;
40
+ shop: mongoose.Document<unknown, import("@typegoose/typegoose/lib/types").BeAnObject, import("@lyxa.ai/core/dist/libraries/mongo/models/shop.model").Shop, import("@typegoose/typegoose/lib/types").BeAnyObject, {}> & Omit<import("@lyxa.ai/core/dist/libraries/mongo/models/shop.model").Shop & {
41
+ _id: mongoose.Types.ObjectId;
42
+ } & {
43
+ __v: number;
44
+ }, "typegooseName"> & import("@typegoose/typegoose/lib/types").IObjectWithTypegooseFunction;
45
+ message?: undefined;
46
+ }>;
21
47
  }
22
48
  export declare const shopsCategoriesCouponService: ShopsCategoriesCouponService;
23
49
  //# sourceMappingURL=shops-categories-coupon.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shops-categories-coupon.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/shops-categories-coupon.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAY,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAEN,qBAAqB,IAAI,KAAK,EAI9B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACN,yBAAyB,EACzB,8BAA8B,IAAI,SAAS,EAC3C,8BAA8B,IAAI,SAAS,EAC3C,iBAAiB,EACjB,MAAM,6BAA6B,CAAC;AAMrC,qBACa,4BAA4B;IACxC,OAAO,CAAC,KAAK,CAAC;IACd,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmB;IACtD,OAAO,CAAC,UAAU,CAA2D;;IAQ7E;;;OAGG;IACU,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAMlE;;;;OAIG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAuBjE,cAAc,CAC1B,IAAI,EAAE,iBAAiB,EACvB,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,GACjC,OAAO,CAAC,yBAAyB,CAAC;CAiFrC;AAED,eAAO,MAAM,4BAA4B,8BAA8C,CAAC"}
1
+ {"version":3,"file":"shops-categories-coupon.service.d.ts","sourceRoot":"/","sources":["modules/coupon/services/shops-categories-coupon.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAEN,qBAAqB,IAAI,KAAK,EAI9B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACN,8BAA8B,IAAI,SAAS,EAC3C,8BAA8B,IAAI,SAAS,EAC3C,iBAAiB,EACjB,MAAM,6BAA6B,CAAC;AAIrC,qBACa,4BAA4B;IACxC,OAAO,CAAC,KAAK,CAAC;IACd,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmB;IACtD,OAAO,CAAC,UAAU,CAA2D;;IAQ7E;;;OAGG;IACU,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAMlE;;;;OAIG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAuBjE,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBhF;AAED,eAAO,MAAM,4BAA4B,8BAA8C,CAAC"}
@@ -1223,6 +1223,7 @@ export declare const CouponValidationOutputSchema: z.ZodObject<{
1223
1223
  shopCut?: number | undefined;
1224
1224
  secondaryShopCut?: number | undefined;
1225
1225
  }>>;
1226
+ couponDetails: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1226
1227
  }, "strip", z.ZodTypeAny, {
1227
1228
  isValid: boolean;
1228
1229
  message?: string | undefined;
@@ -1236,6 +1237,7 @@ export declare const CouponValidationOutputSchema: z.ZodObject<{
1236
1237
  shopCut?: number | undefined;
1237
1238
  secondaryShopCut?: number | undefined;
1238
1239
  } | undefined;
1240
+ couponDetails?: Record<string, unknown> | undefined;
1239
1241
  }, {
1240
1242
  message?: string | undefined;
1241
1243
  isValid?: boolean | undefined;
@@ -1249,6 +1251,7 @@ export declare const CouponValidationOutputSchema: z.ZodObject<{
1249
1251
  shopCut?: number | undefined;
1250
1252
  secondaryShopCut?: number | undefined;
1251
1253
  } | undefined;
1254
+ couponDetails?: Record<string, unknown> | undefined;
1252
1255
  }>;
1253
1256
  export declare const CouponCodeSchema: z.ZodObject<{
1254
1257
  couponCode: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
@@ -1307,6 +1310,7 @@ export declare const CouponValidationResponseSchema: z.ZodObject<{
1307
1310
  shopCut?: number | undefined;
1308
1311
  secondaryShopCut?: number | undefined;
1309
1312
  } | undefined;
1313
+ couponDetails?: Record<string, unknown> | undefined;
1310
1314
  }, z.ZodTypeDef, {
1311
1315
  message?: string | undefined;
1312
1316
  isValid?: boolean | undefined;
@@ -1320,6 +1324,7 @@ export declare const CouponValidationResponseSchema: z.ZodObject<{
1320
1324
  shopCut?: number | undefined;
1321
1325
  secondaryShopCut?: number | undefined;
1322
1326
  } | undefined;
1327
+ couponDetails?: Record<string, unknown> | undefined;
1323
1328
  }>, "many">;
1324
1329
  }, "strip", z.ZodTypeAny, {
1325
1330
  documents: {
@@ -1335,6 +1340,7 @@ export declare const CouponValidationResponseSchema: z.ZodObject<{
1335
1340
  shopCut?: number | undefined;
1336
1341
  secondaryShopCut?: number | undefined;
1337
1342
  } | undefined;
1343
+ couponDetails?: Record<string, unknown> | undefined;
1338
1344
  }[];
1339
1345
  metadata?: {
1340
1346
  page: number;
@@ -1356,6 +1362,7 @@ export declare const CouponValidationResponseSchema: z.ZodObject<{
1356
1362
  shopCut?: number | undefined;
1357
1363
  secondaryShopCut?: number | undefined;
1358
1364
  } | undefined;
1365
+ couponDetails?: Record<string, unknown> | undefined;
1359
1366
  }[];
1360
1367
  metadata?: {
1361
1368
  page: number;
@@ -1376,6 +1383,7 @@ export declare const CouponValidationResponseSchema: z.ZodObject<{
1376
1383
  shopCut?: number | undefined;
1377
1384
  secondaryShopCut?: number | undefined;
1378
1385
  } | undefined;
1386
+ couponDetails?: Record<string, unknown> | undefined;
1379
1387
  }, z.ZodTypeDef, {
1380
1388
  message?: string | undefined;
1381
1389
  isValid?: boolean | undefined;
@@ -1389,6 +1397,7 @@ export declare const CouponValidationResponseSchema: z.ZodObject<{
1389
1397
  shopCut?: number | undefined;
1390
1398
  secondaryShopCut?: number | undefined;
1391
1399
  } | undefined;
1400
+ couponDetails?: Record<string, unknown> | undefined;
1392
1401
  }>]>>;
1393
1402
  }, "strip", z.ZodTypeAny, {
1394
1403
  message: string;
@@ -1406,6 +1415,7 @@ export declare const CouponValidationResponseSchema: z.ZodObject<{
1406
1415
  shopCut?: number | undefined;
1407
1416
  secondaryShopCut?: number | undefined;
1408
1417
  } | undefined;
1418
+ couponDetails?: Record<string, unknown> | undefined;
1409
1419
  } | {
1410
1420
  documents: {
1411
1421
  message?: string | undefined;
@@ -1420,6 +1430,7 @@ export declare const CouponValidationResponseSchema: z.ZodObject<{
1420
1430
  shopCut?: number | undefined;
1421
1431
  secondaryShopCut?: number | undefined;
1422
1432
  } | undefined;
1433
+ couponDetails?: Record<string, unknown> | undefined;
1423
1434
  }[];
1424
1435
  metadata?: {
1425
1436
  page: number;
@@ -1444,6 +1455,7 @@ export declare const CouponValidationResponseSchema: z.ZodObject<{
1444
1455
  shopCut?: number | undefined;
1445
1456
  secondaryShopCut?: number | undefined;
1446
1457
  } | undefined;
1458
+ couponDetails?: Record<string, unknown> | undefined;
1447
1459
  } | {
1448
1460
  documents: {
1449
1461
  message?: string | undefined;
@@ -1458,6 +1470,7 @@ export declare const CouponValidationResponseSchema: z.ZodObject<{
1458
1470
  shopCut?: number | undefined;
1459
1471
  secondaryShopCut?: number | undefined;
1460
1472
  } | undefined;
1473
+ couponDetails?: Record<string, unknown> | undefined;
1461
1474
  }[];
1462
1475
  metadata?: {
1463
1476
  page: number;
@@ -1 +1 @@
1
- {"version":3,"file":"coupon.validation.d.ts","sourceRoot":"/","sources":["modules/coupon/validations/coupon.validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAGN,GAAG,EACH,MAAM,2DAA2D,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAc,MAAM,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAO1G;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;CAkBxB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCtB,CAAC;AASF;;GAEG;AACH,QAAA,MACa,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACpB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAChB,cAAc,mNACV,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCACmB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIvC,CAAC;AAEH,OAAO,EACN,sBAAsB,EACtB,YAAY,EACZ,cAAc,IAAI,wBAAwB,EAC1C,kBAAkB,GAClB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAK9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAO/B,CAAC;AASH;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQvC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;EAW3B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAC;AAEH,eAAO,MAAM,sCAAsC;;;;;;EAEjD,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAqD,CAAC;AAEjG,eAAO,MAAM,cAAc;;;;;;EAAqC,CAAC;AACjE,eAAO,MAAM,2BAA2B;;;;;;EAAmD,CAAA;AAE3F;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACjE,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC;AACjD,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC7D,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC/D,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACjE,MAAM,MAAM,yBAAyB,GAAG,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACjF,MAAM,MAAM,yBAAyB,GAAG,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACjF,MAAM,MAAM,qBAAqB,GAAG,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACzE,MAAM,MAAM,mCAAmC,GAAG,GAAG,CAAC,OAAO,sCAAsC,CAAC,CAAC;AACrG,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC;AACrD,MAAM,MAAM,wBAAwB,GAAG,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
1
+ {"version":3,"file":"coupon.validation.d.ts","sourceRoot":"/","sources":["modules/coupon/validations/coupon.validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deal-setting.service.d.ts","sourceRoot":"/","sources":["modules/deal-setting/services/deal-setting.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAElG,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAoB,WAAW,IAAI,KAAK,EAAE,MAAM,2CAA2C,CAAC;AACnG,OAAO,EACN,oBAAoB,IAAI,SAAS,EACjC,oBAAoB,IAAI,SAAS,EACjC,mBAAmB,IAAI,YAAY,EACnC,MAAM,mCAAmC,CAAC;AAQ3C,qBACa,kBAAkB;IAC9B,OAAO,CAAC,KAAK,CAAmD;IAChE,OAAO,CAAC,kBAAkB,CAQxB;;IAMF;;;OAGG;IACU,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAwBlF;;;OAGG;IACU,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAczF;;;OAGG;IACU,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YA+B1F,yBAAyB;IAmBvC;;;;;OAKG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAuB9F;;;;OAIG;IACU,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAkB9E,8BAA8B;IAe5C;;;OAGG;IACU,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAoCzE;AAED,eAAO,MAAM,kBAAkB,oBAAoC,CAAC"}
1
+ {"version":3,"file":"deal-setting.service.d.ts","sourceRoot":"/","sources":["modules/deal-setting/services/deal-setting.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAElG,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAoB,WAAW,IAAI,KAAK,EAAE,MAAM,2CAA2C,CAAC;AACnG,OAAO,EACN,oBAAoB,IAAI,SAAS,EACjC,oBAAoB,IAAI,SAAS,EACjC,mBAAmB,IAAI,YAAY,EACnC,MAAM,mCAAmC,CAAC;AAQ3C,qBACa,kBAAkB;IAC9B,OAAO,CAAC,KAAK,CAAmD;IAChE,OAAO,CAAC,kBAAkB,CAWxB;;IAMF;;;OAGG;IACU,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAwBlF;;;OAGG;IACU,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAczF;;;OAGG;IACU,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YA2B1F,yBAAyB;IAmBvC;;;;;OAKG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAuB9F;;;;OAIG;IACU,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAkB9E,8BAA8B;IAe5C;;;OAGG;IACU,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAoCzE;AAED,eAAO,MAAM,kBAAkB,oBAAoC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { DocumentType, mongoose } from '@typegoose/typegoose';
2
+ import { LineItem, RegularOrder } from '@lyxa.ai/core/dist/libraries/mongo/models';
3
+ import { MarketingGraphInputDTO, MarketingMetricsDTO, MarketingOrdersGraphOutputDTO } from '@modules/marketing/validations';
4
+ import { MarketingType } from '@lyxa.ai/core/dist/utilities/enum';
5
+ import { Duration } from '@lyxa.ai/core/dist/libraries/mongo/models/shared/duration.model';
6
+ export declare class MarketingMetricsRepository {
7
+ private model;
8
+ private orderModel;
9
+ constructor();
10
+ calculateMarketingSpendPerOrder(order: DocumentType<RegularOrder> & {
11
+ lineItems: DocumentType<LineItem>[];
12
+ }): Map<mongoose.Types.ObjectId, number>;
13
+ calculateMarketingSpent(marketingId: mongoose.Types.ObjectId, duration?: Duration): Promise<{
14
+ amount: number;
15
+ marketingType: MarketingType;
16
+ }>;
17
+ private calculateItemBasedSpent;
18
+ private calculateFreeDeliverySpent;
19
+ private calculatePunchMarketingSpent;
20
+ private buildBaseMatch;
21
+ private runAggregateAndGetTotal;
22
+ getMetrics(marketingId: mongoose.Types.ObjectId): Promise<MarketingMetricsDTO>;
23
+ private getMarketingItemCount;
24
+ private calculateOrderIncreaseWithDiscount;
25
+ private calculateCustomerIncreaseWithDiscount;
26
+ private calculateIncrease;
27
+ private getNewCustomersForShop;
28
+ getOrdersGraph(data: MarketingGraphInputDTO): Promise<MarketingOrdersGraphOutputDTO>;
29
+ getCustomersGraph(data: MarketingGraphInputDTO): Promise<{
30
+ date: string;
31
+ users: number;
32
+ }[]>;
33
+ getAmountSpentGraph(data: MarketingGraphInputDTO): Promise<{
34
+ date: string;
35
+ amount: number;
36
+ }[]>;
37
+ }
38
+ export declare const marketingMetricsRepository: MarketingMetricsRepository;
39
+ //# sourceMappingURL=MarketingMetricsRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketingMetricsRepository.d.ts","sourceRoot":"/","sources":["modules/marketing/patterns/repository/MarketingMetricsRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAEN,QAAQ,EAGR,YAAY,EAEZ,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEN,sBAAsB,EACtB,mBAAmB,EACnB,6BAA6B,EAC7B,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,iEAAiE,CAAC;AAI3F,qBACa,0BAA0B;IACtC,OAAO,CAAC,KAAK,CAAiD;IAC9D,OAAO,CAAC,UAAU,CAA2D;;IAOtE,+BAA+B,CACrC,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG;QAAE,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAA;KAAE,GACzE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;IAiD1B,uBAAuB,CACnC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EACpC,QAAQ,CAAC,EAAE,QAAQ,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,aAAa,CAAA;KAAE,CAAC;YA4B9C,uBAAuB;YAqCvB,0BAA0B;YAyB1B,4BAA4B;IAsB1C,OAAO,CAAC,cAAc;YAkBR,uBAAuB;IAKxB,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAqC7E,qBAAqB;YAKrB,kCAAkC;YA2BlC,qCAAqC;IAcnD,OAAO,CAAC,iBAAiB;YAWX,sBAAsB;IA8BvB,cAAc,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAwDpF,iBAAiB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAsF3F,mBAAmB,CAC/B,IAAI,EAAE,sBAAsB,GAC1B,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAgL9C;AAED,eAAO,MAAM,0BAA0B,4BAA4C,CAAC"}
@@ -95,6 +95,11 @@ export declare const marketingRouter: import("@trpc/server").TRPCBuiltRouter<{
95
95
  output: string;
96
96
  meta: object;
97
97
  }>;
98
+ syncAllProductsMarketingInfoLocal: import("@trpc/server").TRPCMutationProcedure<{
99
+ input: void;
100
+ output: any;
101
+ meta: object;
102
+ }>;
98
103
  syncProductMarketingInfoByProductId: import("@trpc/server").TRPCQueryProcedure<{
99
104
  input: void;
100
105
  output: string;
@@ -107,18 +112,19 @@ export declare const marketingRouter: import("@trpc/server").TRPCBuiltRouter<{
107
112
  output: string;
108
113
  meta: object;
109
114
  }>;
110
- evaluateMarketingSpendLimits: import("@trpc/server").TRPCMutationProcedure<{
111
- input: {
112
- marketings: (string | mongoose.Types.ObjectId)[];
113
- };
115
+ calculateMarketingSpent: import("@trpc/server").TRPCMutationProcedure<{
116
+ input: string | mongoose.Types.ObjectId;
114
117
  output: {
115
118
  success: boolean;
116
119
  message: string;
117
- data: unknown;
120
+ data: {
121
+ amount: number;
122
+ marketingType: import("@lyxa.ai/core/dist/utilities/enum").MarketingType;
123
+ } | undefined;
118
124
  };
119
125
  meta: object;
120
126
  }>;
121
- calculateMarketingSpent: import("@trpc/server").TRPCMutationProcedure<{
127
+ incrementMarketingSpentFromOrder: import("@trpc/server").TRPCMutationProcedure<{
122
128
  input: string | mongoose.Types.ObjectId;
123
129
  output: {
124
130
  success: boolean;
@@ -127,7 +133,7 @@ export declare const marketingRouter: import("@trpc/server").TRPCBuiltRouter<{
127
133
  };
128
134
  meta: object;
129
135
  }>;
130
- incrementMarketingSpentFromOrder: import("@trpc/server").TRPCMutationProcedure<{
136
+ decrementMarketingSpentFromOrder: import("@trpc/server").TRPCMutationProcedure<{
131
137
  input: string | mongoose.Types.ObjectId;
132
138
  output: {
133
139
  success: boolean;
@@ -136,12 +142,82 @@ export declare const marketingRouter: import("@trpc/server").TRPCBuiltRouter<{
136
142
  };
137
143
  meta: object;
138
144
  }>;
139
- decrementMarketingSpentFromOrder: import("@trpc/server").TRPCMutationProcedure<{
145
+ recomputeAndSyncAllMarketingSpent: import("@trpc/server").TRPCMutationProcedure<{
146
+ input: void;
147
+ output: {
148
+ success: boolean;
149
+ message: string;
150
+ data: void | undefined;
151
+ };
152
+ meta: object;
153
+ }>;
154
+ getMetrics: import("@trpc/server").TRPCQueryProcedure<{
140
155
  input: string | mongoose.Types.ObjectId;
141
156
  output: {
142
157
  success: boolean;
143
158
  message: string;
144
- data: any;
159
+ data: {
160
+ numberOfItems?: number | undefined;
161
+ orderIncreaseWithDiscount?: {
162
+ count: number;
163
+ percentageIncrease: number;
164
+ } | undefined;
165
+ customerIncreaseWithDiscount?: {
166
+ count: number;
167
+ percentageIncrease: number;
168
+ } | undefined;
169
+ } | undefined;
170
+ };
171
+ meta: object;
172
+ }>;
173
+ getOrdersGraph: import("@trpc/server").TRPCQueryProcedure<{
174
+ input: {
175
+ startDate: string | Date;
176
+ marketingId: string | mongoose.Types.ObjectId;
177
+ endDate: string | Date;
178
+ type?: import("@lyxa.ai/core/dist/utilities/enum").GraphType | undefined;
179
+ };
180
+ output: {
181
+ success: boolean;
182
+ message: string;
183
+ data: {
184
+ date: string;
185
+ orders: number;
186
+ }[] | undefined;
187
+ };
188
+ meta: object;
189
+ }>;
190
+ getCustomersGraph: import("@trpc/server").TRPCQueryProcedure<{
191
+ input: {
192
+ startDate: string | Date;
193
+ marketingId: string | mongoose.Types.ObjectId;
194
+ endDate: string | Date;
195
+ type?: import("@lyxa.ai/core/dist/utilities/enum").GraphType | undefined;
196
+ };
197
+ output: {
198
+ success: boolean;
199
+ message: string;
200
+ data: {
201
+ date: string;
202
+ users: number;
203
+ }[] | undefined;
204
+ };
205
+ meta: object;
206
+ }>;
207
+ getAmountSpentGraph: import("@trpc/server").TRPCQueryProcedure<{
208
+ input: {
209
+ startDate: string | Date;
210
+ marketingId: string | mongoose.Types.ObjectId;
211
+ endDate: string | Date;
212
+ type?: import("@lyxa.ai/core/dist/utilities/enum").GraphType | undefined;
213
+ };
214
+ output: {
215
+ success: boolean;
216
+ message: string;
217
+ data: {
218
+ date: string;
219
+ amount: number;
220
+ }[] | undefined;
145
221
  };
146
222
  meta: object;
147
223
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"marketing.router.d.ts","sourceRoot":"/","sources":["modules/marketing/routers/marketing.router.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAQG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqG9B,CAAC"}
1
+ {"version":3,"file":"marketing.router.d.ts","sourceRoot":"/","sources":["modules/marketing/routers/marketing.router.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAOrB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsIN,CAAC"}
@@ -7,6 +7,7 @@ export declare class MarketingService {
7
7
  private model;
8
8
  private shopModel;
9
9
  private orderModel;
10
+ private marketingMetricsRepository;
10
11
  constructor();
11
12
  /**
12
13
  * Create a new record
@@ -37,18 +38,11 @@ export declare class MarketingService {
37
38
  */
38
39
  deleteById(data: DeleteDTO, admin?: mongoose.Types.ObjectId): Promise<string>;
39
40
  handleNewProductForEntireMenuMarketing(data: ProductEntireMenuMarketingHandlerDTO): Promise<string>;
40
- evaluateMarketingSpendLimits(marketings: mongoose.Types.ObjectId[]): Promise<string>;
41
- private evaluateItemBasedMarketings;
42
- private evalulateFreeDeliveryMarketings;
43
- calculateMarketingSpent(marketingId: mongoose.Types.ObjectId): Promise<any>;
44
- private calculateItemBasedSpent;
45
- private calculateFreeDeliverySpent;
46
- private calculatePunchMarketingSpent;
47
41
  incrementMarketingSpentFromOrder(orderId: mongoose.Types.ObjectId): Promise<any>;
48
42
  decrementMarketingSpentFromOrder(orderId: mongoose.Types.ObjectId): Promise<any>;
49
43
  private expireMarketingsExceedingSpendLimits;
50
44
  private unExpireMarketingsBelowSpendLimits;
51
- private calculateMarketingSpendPerOrder;
45
+ recomputeAndSyncAllMarketingSpent(): Promise<void>;
52
46
  }
53
47
  export declare const marketingService: MarketingService;
54
48
  //# sourceMappingURL=marketing.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"marketing.service.d.ts","sourceRoot":"/","sources":["modules/marketing/services/marketing.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAKN,SAAS,IAAI,KAAK,EAKlB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEN,0BAA0B,EAE1B,oCAAoC,EACpC,kBAAkB,IAAI,SAAS,EAC/B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACN,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AA+B3D,qBACa,gBAAgB;IAC5B,OAAO,CAAC,KAAK,CAAiD;IAC9D,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,UAAU,CAA2D;;IAQ7E;;;OAGG;IACU,MAAM,CAClB,IAAI,EAAE,0BAA0B,EAChC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAC7B,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAuH/B;;;OAGG;IACU,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAkB1E;;;OAGG;IACU,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAqBxG;;;;OAIG;IACU,MAAM,CAClB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC5B,IAAI,EAAE,SAAS,EACf,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAC7B,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAkHjB,uBAAuB;YAevB,uBAAuB;IAerC;;;OAGG;IACU,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAsC7E,sCAAsC,CAAC,IAAI,EAAE,oCAAoC;IAiCjF,4BAA4B,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;YAOjE,2BAA2B;YAwI3B,+BAA+B;IAgGhC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;YAiC1E,uBAAuB;YA4DvB,0BAA0B;YA4C1B,4BAA4B;IA0B7B,gCAAgC,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IA2BhF,gCAAgC,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;YA2B/E,oCAAoC;YAYpC,kCAAkC;IAYhD,OAAO,CAAC,+BAA+B;CAkDvC;AAED,eAAO,MAAM,gBAAgB,kBAAkC,CAAC"}
1
+ {"version":3,"file":"marketing.service.d.ts","sourceRoot":"/","sources":["modules/marketing/services/marketing.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAKN,SAAS,IAAI,KAAK,EAKlB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEN,0BAA0B,EAE1B,oCAAoC,EACpC,kBAAkB,IAAI,SAAS,EAC/B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACN,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAmC3D,qBACa,gBAAgB;IAC5B,OAAO,CAAC,KAAK,CAAiD;IAC9D,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,UAAU,CAA2D;IAC7E,OAAO,CAAC,0BAA0B,CAA6B;;IAS/D;;;OAGG;IACU,MAAM,CAClB,IAAI,EAAE,0BAA0B,EAChC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAC7B,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAuH/B;;;OAGG;IACU,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAkB1E;;;OAGG;IACU,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAqBxG;;;;OAIG;IACU,MAAM,CAClB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC5B,IAAI,EAAE,SAAS,EACf,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAC7B,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAkHjB,uBAAuB;YAevB,uBAAuB;IAerC;;;OAGG;IACU,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAsC7E,sCAAsC,CAAC,IAAI,EAAE,oCAAoC;IAiCjF,gCAAgC,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IA2BhF,gCAAgC,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;YA2B/E,oCAAoC;YAYpC,kCAAkC;IAYnC,iCAAiC,IAAI,OAAO,CAAC,IAAI,CAAC;CA8C/D;AAED,eAAO,MAAM,gBAAgB,kBAAkC,CAAC"}
@@ -44,6 +44,7 @@ export declare class ProductMarketingService {
44
44
  * @param products Array of product IDs
45
45
  */
46
46
  checkProductMarketingAvailability(products: mongoose.Types.ObjectId[]): Promise<boolean>;
47
+ countDocuments(filter: QueryDTO): Promise<number>;
47
48
  }
48
49
  export declare const productMarketingService: ProductMarketingService;
49
50
  //# sourceMappingURL=product-marketing.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"product-marketing.service.d.ts","sourceRoot":"/","sources":["modules/marketing/services/product-marketing.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAyB,gBAAgB,IAAI,KAAK,EAAE,MAAM,4CAA4C,CAAC;AAC9G,OAAO,EACN,yBAAyB,IAAI,SAAS,EACtC,wBAAwB,IAAI,QAAQ,EACpC,gCAAgC,EAChC,yBAAyB,IAAI,SAAS,EACtC,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAEvF,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAQ3D,qBACa,uBAAuB;IACnC,OAAO,CAAC,KAAK,CAAwD;IAErE,OAAO,CAAC,gCAAgC,CAAqC;;IAQ7E;;;OAGG;IACU,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAOlE;;;OAGG;IACU,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAczF;;;OAGG;IACU,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAqBxG;;;;OAIG;IACU,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBzE;;;OAGG;IACU,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBlE,wBAAwB,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;IAW1E;;;OAGG;IACU,sBAAsB,CAClC,MAAM,EAAE,gCAAgC,EACxC,UAAU,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC;IAYlB;;;OAGG;IACU,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CA8BrG;AAED,eAAO,MAAM,uBAAuB,yBAAyC,CAAC"}
1
+ {"version":3,"file":"product-marketing.service.d.ts","sourceRoot":"/","sources":["modules/marketing/services/product-marketing.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAyB,gBAAgB,IAAI,KAAK,EAAE,MAAM,4CAA4C,CAAC;AAC9G,OAAO,EACN,yBAAyB,IAAI,SAAS,EACtC,wBAAwB,IAAI,QAAQ,EACpC,gCAAgC,EAChC,yBAAyB,IAAI,SAAS,EACtC,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAEvF,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAQ3D,qBACa,uBAAuB;IACnC,OAAO,CAAC,KAAK,CAAwD;IAErE,OAAO,CAAC,gCAAgC,CAAqC;;IAQ7E;;;OAGG;IACU,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAOlE;;;OAGG;IACU,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAczF;;;OAGG;IACU,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAqBxG;;;;OAIG;IACU,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBzE;;;OAGG;IACU,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBlE,wBAAwB,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;IAW1E;;;OAGG;IACU,sBAAsB,CAClC,MAAM,EAAE,gCAAgC,EACxC,UAAU,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC;IAYlB;;;OAGG;IACU,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BxF,cAAc,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;CAI9D;AAED,eAAO,MAAM,uBAAuB,yBAAyC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"synchronize-product-marketing.service.d.ts","sourceRoot":"/","sources":["modules/marketing/services/synchronize-product-marketing.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKhD,OAAO,EAAE,6CAA6C,EAAE,MAAM,0FAA0F,CAAC;AACzJ,qBACa,kCAAkC;IAC9C,OAAO,CAAC,YAAY,CAA+C;;IAMtD,kDAAkD;IAKxD,2CAA2C,CACjD,OAAO,EAAE,6CAA6C,GACpD,MAAM;IAKF,4BAA4B,QAAa,OAAO,CAAC,GAAG,CAAC,CAsD1D;YAEY,oBAAoB;YAsDpB,kCAAkC;IAqCnC,mCAAmC,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;IAsCtE,oCAAoC,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;CA+CvF;AAED,eAAO,MAAM,kCAAkC,oCAAoD,CAAC"}
1
+ {"version":3,"file":"synchronize-product-marketing.service.d.ts","sourceRoot":"/","sources":["modules/marketing/services/synchronize-product-marketing.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKhD,OAAO,EAAE,6CAA6C,EAAE,MAAM,0FAA0F,CAAC;AACzJ,qBACa,kCAAkC;IAC9C,OAAO,CAAC,YAAY,CAA+C;;IAMtD,kDAAkD;IAKxD,2CAA2C,CACjD,OAAO,EAAE,6CAA6C,GACpD,MAAM;IAKF,4BAA4B,QAAa,OAAO,CAAC,GAAG,CAAC,CAsD1D;YAEY,oBAAoB;YAsDpB,kCAAkC;IAqCnC,mCAAmC,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;IAsCtE,oCAAoC,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;CAgFvF;AAED,eAAO,MAAM,kCAAkC,oCAAoD,CAAC"}