@lyxa.ai/marketing 1.0.14 → 1.0.16
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.
- package/dist/lib/events/event-initializations.d.ts +2 -0
- package/dist/lib/events/event-initializations.d.ts.map +1 -0
- package/dist/lib/events/event-initializations.js +5 -0
- package/dist/lib/events/event-initializations.js.map +1 -0
- package/dist/lib/index.d.ts +4436 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/modules/coupon/routers/coupon.router.d.ts +3063 -0
- package/dist/lib/modules/coupon/routers/coupon.router.d.ts.map +1 -0
- package/dist/lib/modules/coupon/routers/coupon.router.js +106 -0
- package/dist/lib/modules/coupon/routers/coupon.router.js.map +1 -0
- package/dist/lib/modules/coupon/routers/index.d.ts +2 -0
- package/dist/lib/modules/coupon/routers/index.d.ts.map +1 -0
- package/dist/lib/modules/coupon/routers/index.js +18 -0
- package/dist/lib/modules/coupon/routers/index.js.map +1 -0
- package/dist/lib/modules/coupon/services/coupon.service.d.ts +42 -0
- package/dist/lib/modules/coupon/services/coupon.service.d.ts.map +1 -0
- package/dist/lib/modules/coupon/services/coupon.service.js +686 -0
- package/dist/lib/modules/coupon/services/coupon.service.js.map +1 -0
- package/dist/lib/modules/coupon/services/custom-coupon.service.d.ts +12 -0
- package/dist/lib/modules/coupon/services/custom-coupon.service.d.ts.map +1 -0
- package/dist/lib/modules/coupon/services/custom-coupon.service.js +103 -0
- package/dist/lib/modules/coupon/services/custom-coupon.service.js.map +1 -0
- package/dist/lib/modules/coupon/services/global-coupon.service.d.ts +12 -0
- package/dist/lib/modules/coupon/services/global-coupon.service.d.ts.map +1 -0
- package/dist/lib/modules/coupon/services/global-coupon.service.js +120 -0
- package/dist/lib/modules/coupon/services/global-coupon.service.js.map +1 -0
- package/dist/lib/modules/coupon/services/index.d.ts +8 -0
- package/dist/lib/modules/coupon/services/index.d.ts.map +1 -0
- package/dist/lib/modules/coupon/services/index.js +24 -0
- package/dist/lib/modules/coupon/services/index.js.map +1 -0
- package/dist/lib/modules/coupon/services/individual-store-coupon.service.d.ts +13 -0
- package/dist/lib/modules/coupon/services/individual-store-coupon.service.d.ts.map +1 -0
- package/dist/lib/modules/coupon/services/individual-store-coupon.service.js +120 -0
- package/dist/lib/modules/coupon/services/individual-store-coupon.service.js.map +1 -0
- package/dist/lib/modules/coupon/services/individual-user-coupon.service.d.ts +12 -0
- package/dist/lib/modules/coupon/services/individual-user-coupon.service.d.ts.map +1 -0
- package/dist/lib/modules/coupon/services/individual-user-coupon.service.js +111 -0
- package/dist/lib/modules/coupon/services/individual-user-coupon.service.js.map +1 -0
- package/dist/lib/modules/coupon/services/patterns/repository/CouponRepository.d.ts +12 -0
- package/dist/lib/modules/coupon/services/patterns/repository/CouponRepository.d.ts.map +1 -0
- package/dist/lib/modules/coupon/services/patterns/repository/CouponRepository.js +313 -0
- package/dist/lib/modules/coupon/services/patterns/repository/CouponRepository.js.map +1 -0
- package/dist/lib/modules/coupon/services/referral-code-coupon.service.d.ts +19 -0
- package/dist/lib/modules/coupon/services/referral-code-coupon.service.d.ts.map +1 -0
- package/dist/lib/modules/coupon/services/referral-code-coupon.service.js +179 -0
- package/dist/lib/modules/coupon/services/referral-code-coupon.service.js.map +1 -0
- package/dist/lib/modules/coupon/services/referral-reward-coupon.service.d.ts +19 -0
- package/dist/lib/modules/coupon/services/referral-reward-coupon.service.d.ts.map +1 -0
- package/dist/lib/modules/coupon/services/referral-reward-coupon.service.js +186 -0
- package/dist/lib/modules/coupon/services/referral-reward-coupon.service.js.map +1 -0
- package/dist/lib/modules/coupon/transformers/coupon.transformer.d.ts +233 -0
- package/dist/lib/modules/coupon/transformers/coupon.transformer.d.ts.map +1 -0
- package/dist/lib/modules/coupon/transformers/coupon.transformer.js +7 -0
- package/dist/lib/modules/coupon/transformers/coupon.transformer.js.map +1 -0
- package/dist/lib/modules/coupon/transformers/index.d.ts +2 -0
- package/dist/lib/modules/coupon/transformers/index.d.ts.map +1 -0
- package/dist/lib/modules/coupon/transformers/index.js +18 -0
- package/dist/lib/modules/coupon/transformers/index.js.map +1 -0
- package/dist/lib/modules/coupon/validations/all-coupons.validation.d.ts +4382 -0
- package/dist/lib/modules/coupon/validations/all-coupons.validation.d.ts.map +1 -0
- package/dist/lib/modules/coupon/validations/all-coupons.validation.js +28 -0
- package/dist/lib/modules/coupon/validations/all-coupons.validation.js.map +1 -0
- package/dist/lib/modules/coupon/validations/coupon.validation.d.ts +1297 -0
- package/dist/lib/modules/coupon/validations/coupon.validation.d.ts.map +1 -0
- package/dist/lib/modules/coupon/validations/coupon.validation.js +107 -0
- package/dist/lib/modules/coupon/validations/coupon.validation.js.map +1 -0
- package/dist/lib/modules/coupon/validations/custom-coupon.validation.d.ts +385 -0
- package/dist/lib/modules/coupon/validations/custom-coupon.validation.d.ts.map +1 -0
- package/dist/lib/modules/coupon/validations/custom-coupon.validation.js +21 -0
- package/dist/lib/modules/coupon/validations/custom-coupon.validation.js.map +1 -0
- package/dist/lib/modules/coupon/validations/global-coupon.validation.d.ts +358 -0
- package/dist/lib/modules/coupon/validations/global-coupon.validation.d.ts.map +1 -0
- package/dist/lib/modules/coupon/validations/global-coupon.validation.js +18 -0
- package/dist/lib/modules/coupon/validations/global-coupon.validation.js.map +1 -0
- package/dist/lib/modules/coupon/validations/index.d.ts +9 -0
- package/dist/lib/modules/coupon/validations/index.d.ts.map +1 -0
- package/dist/lib/modules/coupon/validations/index.js +25 -0
- package/dist/lib/modules/coupon/validations/index.js.map +1 -0
- package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.d.ts +385 -0
- package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.d.ts.map +1 -0
- package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.js +21 -0
- package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.js.map +1 -0
- package/dist/lib/modules/coupon/validations/individual-user-coupon.validation.d.ts +385 -0
- package/dist/lib/modules/coupon/validations/individual-user-coupon.validation.d.ts.map +1 -0
- package/dist/lib/modules/coupon/validations/individual-user-coupon.validation.js +21 -0
- package/dist/lib/modules/coupon/validations/individual-user-coupon.validation.js.map +1 -0
- package/dist/lib/modules/coupon/validations/referral-code-coupon.validation.d.ts +95 -0
- package/dist/lib/modules/coupon/validations/referral-code-coupon.validation.d.ts.map +1 -0
- package/dist/lib/modules/coupon/validations/referral-code-coupon.validation.js +24 -0
- package/dist/lib/modules/coupon/validations/referral-code-coupon.validation.js.map +1 -0
- package/dist/lib/modules/coupon/validations/referral-reward-coupon.validation.d.ts +385 -0
- package/dist/lib/modules/coupon/validations/referral-reward-coupon.validation.d.ts.map +1 -0
- package/dist/lib/modules/coupon/validations/referral-reward-coupon.validation.js +21 -0
- package/dist/lib/modules/coupon/validations/referral-reward-coupon.validation.js.map +1 -0
- package/dist/lib/modules/deal-setting/routers/deal-setting.router.d.ts +214 -0
- package/dist/lib/modules/deal-setting/routers/deal-setting.router.d.ts.map +1 -0
- package/dist/lib/modules/deal-setting/routers/deal-setting.router.js +52 -0
- package/dist/lib/modules/deal-setting/routers/deal-setting.router.js.map +1 -0
- package/dist/lib/modules/deal-setting/routers/index.d.ts +2 -0
- package/dist/lib/modules/deal-setting/routers/index.d.ts.map +1 -0
- package/dist/lib/modules/deal-setting/routers/index.js +18 -0
- package/dist/lib/modules/deal-setting/routers/index.js.map +1 -0
- package/dist/lib/modules/deal-setting/services/deal-setting.service.d.ts +17 -0
- package/dist/lib/modules/deal-setting/services/deal-setting.service.d.ts.map +1 -0
- package/dist/lib/modules/deal-setting/services/deal-setting.service.js +181 -0
- package/dist/lib/modules/deal-setting/services/deal-setting.service.js.map +1 -0
- package/dist/lib/modules/deal-setting/services/index.d.ts +2 -0
- package/dist/lib/modules/deal-setting/services/index.d.ts.map +1 -0
- package/dist/lib/modules/deal-setting/services/index.js +18 -0
- package/dist/lib/modules/deal-setting/services/index.js.map +1 -0
- package/dist/lib/modules/deal-setting/transformers/deal-setting.transformer.d.ts +11 -0
- package/dist/lib/modules/deal-setting/transformers/deal-setting.transformer.d.ts.map +1 -0
- package/dist/lib/modules/deal-setting/transformers/deal-setting.transformer.js +7 -0
- package/dist/lib/modules/deal-setting/transformers/deal-setting.transformer.js.map +1 -0
- package/dist/lib/modules/deal-setting/transformers/index.d.ts +2 -0
- package/dist/lib/modules/deal-setting/transformers/index.d.ts.map +1 -0
- package/dist/lib/modules/deal-setting/transformers/index.js +18 -0
- package/dist/lib/modules/deal-setting/transformers/index.js.map +1 -0
- package/dist/lib/modules/deal-setting/validations/deal-setting.validation.d.ts +227 -0
- package/dist/lib/modules/deal-setting/validations/deal-setting.validation.d.ts.map +1 -0
- package/dist/lib/modules/deal-setting/validations/deal-setting.validation.js +22 -0
- package/dist/lib/modules/deal-setting/validations/deal-setting.validation.js.map +1 -0
- package/dist/lib/modules/deal-setting/validations/index.d.ts +2 -0
- package/dist/lib/modules/deal-setting/validations/index.d.ts.map +1 -0
- package/dist/lib/modules/deal-setting/validations/index.js +18 -0
- package/dist/lib/modules/deal-setting/validations/index.js.map +1 -0
- package/dist/lib/modules/featured-setting/routers/featured-setting.router.d.ts +302 -0
- package/dist/lib/modules/featured-setting/routers/featured-setting.router.d.ts.map +1 -0
- package/dist/lib/modules/featured-setting/routers/featured-setting.router.js +52 -0
- package/dist/lib/modules/featured-setting/routers/featured-setting.router.js.map +1 -0
- package/dist/lib/modules/featured-setting/routers/index.d.ts +2 -0
- package/dist/lib/modules/featured-setting/routers/index.d.ts.map +1 -0
- package/dist/lib/modules/featured-setting/routers/index.js +18 -0
- package/dist/lib/modules/featured-setting/routers/index.js.map +1 -0
- package/dist/lib/modules/featured-setting/services/featured-setting.service.d.ts +17 -0
- package/dist/lib/modules/featured-setting/services/featured-setting.service.d.ts.map +1 -0
- package/dist/lib/modules/featured-setting/services/featured-setting.service.js +181 -0
- package/dist/lib/modules/featured-setting/services/featured-setting.service.js.map +1 -0
- package/dist/lib/modules/featured-setting/services/index.d.ts +2 -0
- package/dist/lib/modules/featured-setting/services/index.d.ts.map +1 -0
- package/dist/lib/modules/featured-setting/services/index.js +18 -0
- package/dist/lib/modules/featured-setting/services/index.js.map +1 -0
- package/dist/lib/modules/featured-setting/transformers/featured-setting.transformer.d.ts +19 -0
- package/dist/lib/modules/featured-setting/transformers/featured-setting.transformer.d.ts.map +1 -0
- package/dist/lib/modules/featured-setting/transformers/featured-setting.transformer.js +7 -0
- package/dist/lib/modules/featured-setting/transformers/featured-setting.transformer.js.map +1 -0
- package/dist/lib/modules/featured-setting/transformers/index.d.ts +2 -0
- package/dist/lib/modules/featured-setting/transformers/index.d.ts.map +1 -0
- package/dist/lib/modules/featured-setting/transformers/index.js +18 -0
- package/dist/lib/modules/featured-setting/transformers/index.js.map +1 -0
- package/dist/lib/modules/featured-setting/validations/featured-setting.validation.d.ts +363 -0
- package/dist/lib/modules/featured-setting/validations/featured-setting.validation.d.ts.map +1 -0
- package/dist/lib/modules/featured-setting/validations/featured-setting.validation.js +24 -0
- package/dist/lib/modules/featured-setting/validations/featured-setting.validation.js.map +1 -0
- package/dist/lib/modules/featured-setting/validations/index.d.ts +2 -0
- package/dist/lib/modules/featured-setting/validations/index.d.ts.map +1 -0
- package/dist/lib/modules/featured-setting/validations/index.js +18 -0
- package/dist/lib/modules/featured-setting/validations/index.js.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/routers/index.d.ts +2 -0
- package/dist/lib/modules/loyalty-point-setting/routers/index.d.ts.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/routers/index.js +18 -0
- package/dist/lib/modules/loyalty-point-setting/routers/index.js.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/routers/loyalty-point-setting.router.d.ts +321 -0
- package/dist/lib/modules/loyalty-point-setting/routers/loyalty-point-setting.router.d.ts.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/routers/loyalty-point-setting.router.js +82 -0
- package/dist/lib/modules/loyalty-point-setting/routers/loyalty-point-setting.router.js.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/services/index.d.ts +3 -0
- package/dist/lib/modules/loyalty-point-setting/services/index.d.ts.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/services/index.js +19 -0
- package/dist/lib/modules/loyalty-point-setting/services/index.js.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-category.service.d.ts +16 -0
- package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-category.service.d.ts.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-category.service.js +133 -0
- package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-category.service.js.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-setting.service.d.ts +16 -0
- package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-setting.service.d.ts.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-setting.service.js +156 -0
- package/dist/lib/modules/loyalty-point-setting/services/loyalty-point-setting.service.js.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/transformers/index.d.ts +3 -0
- package/dist/lib/modules/loyalty-point-setting/transformers/index.d.ts.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/transformers/index.js +19 -0
- package/dist/lib/modules/loyalty-point-setting/transformers/index.js.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-category.transformer.d.ts +8 -0
- package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-category.transformer.d.ts.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-category.transformer.js +7 -0
- package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-category.transformer.js.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-setting.transformer.d.ts +9 -0
- package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-setting.transformer.d.ts.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-setting.transformer.js +7 -0
- package/dist/lib/modules/loyalty-point-setting/transformers/loyalty-point-setting.transformer.js.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/validations/index.d.ts +3 -0
- package/dist/lib/modules/loyalty-point-setting/validations/index.d.ts.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/validations/index.js +19 -0
- package/dist/lib/modules/loyalty-point-setting/validations/index.js.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-category.validation.d.ts +170 -0
- package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-category.validation.d.ts.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-category.validation.js +19 -0
- package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-category.validation.js.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-setting.validation.d.ts +188 -0
- package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-setting.validation.d.ts.map +1 -0
- package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-setting.validation.js +19 -0
- package/dist/lib/modules/loyalty-point-setting/validations/loyalty-point-setting.validation.js.map +1 -0
- package/dist/lib/modules/marketing/routers/index.d.ts +2 -0
- package/dist/lib/modules/marketing/routers/index.d.ts.map +1 -0
- package/dist/lib/modules/marketing/routers/index.js +18 -0
- package/dist/lib/modules/marketing/routers/index.js.map +1 -0
- package/dist/lib/modules/marketing/routers/marketing.router.d.ts +78 -0
- package/dist/lib/modules/marketing/routers/marketing.router.d.ts.map +1 -0
- package/dist/lib/modules/marketing/routers/marketing.router.js +53 -0
- package/dist/lib/modules/marketing/routers/marketing.router.js.map +1 -0
- package/dist/lib/modules/marketing/services/buy1-get1-marketing.service.d.ts +13 -0
- package/dist/lib/modules/marketing/services/buy1-get1-marketing.service.d.ts.map +1 -0
- package/dist/lib/modules/marketing/services/buy1-get1-marketing.service.js +165 -0
- package/dist/lib/modules/marketing/services/buy1-get1-marketing.service.js.map +1 -0
- package/dist/lib/modules/marketing/services/discount-marketing.service.d.ts +14 -0
- package/dist/lib/modules/marketing/services/discount-marketing.service.d.ts.map +1 -0
- package/dist/lib/modules/marketing/services/discount-marketing.service.js +227 -0
- package/dist/lib/modules/marketing/services/discount-marketing.service.js.map +1 -0
- package/dist/lib/modules/marketing/services/featured-marketing.service.d.ts +11 -0
- package/dist/lib/modules/marketing/services/featured-marketing.service.d.ts.map +1 -0
- package/dist/lib/modules/marketing/services/featured-marketing.service.js +80 -0
- package/dist/lib/modules/marketing/services/featured-marketing.service.js.map +1 -0
- package/dist/lib/modules/marketing/services/free-delivery-marketing.service.d.ts +12 -0
- package/dist/lib/modules/marketing/services/free-delivery-marketing.service.d.ts.map +1 -0
- package/dist/lib/modules/marketing/services/free-delivery-marketing.service.js +95 -0
- package/dist/lib/modules/marketing/services/free-delivery-marketing.service.js.map +1 -0
- package/dist/lib/modules/marketing/services/index.d.ts +8 -0
- package/dist/lib/modules/marketing/services/index.d.ts.map +1 -0
- package/dist/lib/modules/marketing/services/index.js +24 -0
- package/dist/lib/modules/marketing/services/index.js.map +1 -0
- package/dist/lib/modules/marketing/services/loyalty-point-marketing.service.d.ts +12 -0
- package/dist/lib/modules/marketing/services/loyalty-point-marketing.service.d.ts.map +1 -0
- package/dist/lib/modules/marketing/services/loyalty-point-marketing.service.js +149 -0
- package/dist/lib/modules/marketing/services/loyalty-point-marketing.service.js.map +1 -0
- package/dist/lib/modules/marketing/services/marketing.service.d.ts +17 -0
- package/dist/lib/modules/marketing/services/marketing.service.d.ts.map +1 -0
- package/dist/lib/modules/marketing/services/marketing.service.js +275 -0
- package/dist/lib/modules/marketing/services/marketing.service.js.map +1 -0
- package/dist/lib/modules/marketing/services/product-marketing.service.d.ts +18 -0
- package/dist/lib/modules/marketing/services/product-marketing.service.d.ts.map +1 -0
- package/dist/lib/modules/marketing/services/product-marketing.service.js +151 -0
- package/dist/lib/modules/marketing/services/product-marketing.service.js.map +1 -0
- package/dist/lib/modules/marketing/services/punch-marketing.service.d.ts +11 -0
- package/dist/lib/modules/marketing/services/punch-marketing.service.d.ts.map +1 -0
- package/dist/lib/modules/marketing/services/punch-marketing.service.js +80 -0
- package/dist/lib/modules/marketing/services/punch-marketing.service.js.map +1 -0
- package/dist/lib/modules/marketing/transformers/buy1-get1-marketing.transformer.d.ts +43 -0
- package/dist/lib/modules/marketing/transformers/buy1-get1-marketing.transformer.d.ts.map +1 -0
- package/dist/lib/modules/marketing/transformers/buy1-get1-marketing.transformer.js +7 -0
- package/dist/lib/modules/marketing/transformers/buy1-get1-marketing.transformer.js.map +1 -0
- package/dist/lib/modules/marketing/transformers/discount-marketing.transformer.d.ts +48 -0
- package/dist/lib/modules/marketing/transformers/discount-marketing.transformer.d.ts.map +1 -0
- package/dist/lib/modules/marketing/transformers/discount-marketing.transformer.js +7 -0
- package/dist/lib/modules/marketing/transformers/discount-marketing.transformer.js.map +1 -0
- package/dist/lib/modules/marketing/transformers/featured-marketing.transformer.d.ts +21 -0
- package/dist/lib/modules/marketing/transformers/featured-marketing.transformer.d.ts.map +1 -0
- package/dist/lib/modules/marketing/transformers/featured-marketing.transformer.js +7 -0
- package/dist/lib/modules/marketing/transformers/featured-marketing.transformer.js.map +1 -0
- package/dist/lib/modules/marketing/transformers/free-delivery-marketing.transformer.d.ts +21 -0
- package/dist/lib/modules/marketing/transformers/free-delivery-marketing.transformer.d.ts.map +1 -0
- package/dist/lib/modules/marketing/transformers/free-delivery-marketing.transformer.js +7 -0
- package/dist/lib/modules/marketing/transformers/free-delivery-marketing.transformer.js.map +1 -0
- package/dist/lib/modules/marketing/transformers/index.d.ts +8 -0
- package/dist/lib/modules/marketing/transformers/index.d.ts.map +1 -0
- package/dist/lib/modules/marketing/transformers/index.js +24 -0
- package/dist/lib/modules/marketing/transformers/index.js.map +1 -0
- package/dist/lib/modules/marketing/transformers/loyalty-point-marketing.transformer.d.ts +47 -0
- package/dist/lib/modules/marketing/transformers/loyalty-point-marketing.transformer.d.ts.map +1 -0
- package/dist/lib/modules/marketing/transformers/loyalty-point-marketing.transformer.js +7 -0
- package/dist/lib/modules/marketing/transformers/loyalty-point-marketing.transformer.js.map +1 -0
- package/dist/lib/modules/marketing/transformers/marketing.transformer.d.ts +3 -0
- package/dist/lib/modules/marketing/transformers/marketing.transformer.d.ts.map +1 -0
- package/dist/lib/modules/marketing/transformers/marketing.transformer.js +7 -0
- package/dist/lib/modules/marketing/transformers/marketing.transformer.js.map +1 -0
- package/dist/lib/modules/marketing/transformers/product-marketing.transformer.d.ts +10 -0
- package/dist/lib/modules/marketing/transformers/product-marketing.transformer.d.ts.map +1 -0
- package/dist/lib/modules/marketing/transformers/product-marketing.transformer.js +7 -0
- package/dist/lib/modules/marketing/transformers/product-marketing.transformer.js.map +1 -0
- package/dist/lib/modules/marketing/transformers/punch-marketing.transformer.d.ts +26 -0
- package/dist/lib/modules/marketing/transformers/punch-marketing.transformer.d.ts.map +1 -0
- package/dist/lib/modules/marketing/transformers/punch-marketing.transformer.js +7 -0
- package/dist/lib/modules/marketing/transformers/punch-marketing.transformer.js.map +1 -0
- package/dist/lib/modules/marketing/validations/all-marketings.validation.d.ts +54 -0
- package/dist/lib/modules/marketing/validations/all-marketings.validation.d.ts.map +1 -0
- package/dist/lib/modules/marketing/validations/all-marketings.validation.js +29 -0
- package/dist/lib/modules/marketing/validations/all-marketings.validation.js.map +1 -0
- package/dist/lib/modules/marketing/validations/buy1-get1-marketing.validation.d.ts +460 -0
- package/dist/lib/modules/marketing/validations/buy1-get1-marketing.validation.d.ts.map +1 -0
- package/dist/lib/modules/marketing/validations/buy1-get1-marketing.validation.js +40 -0
- package/dist/lib/modules/marketing/validations/buy1-get1-marketing.validation.js.map +1 -0
- package/dist/lib/modules/marketing/validations/discount-marketing.validation.d.ts +530 -0
- package/dist/lib/modules/marketing/validations/discount-marketing.validation.d.ts.map +1 -0
- package/dist/lib/modules/marketing/validations/discount-marketing.validation.js +61 -0
- package/dist/lib/modules/marketing/validations/discount-marketing.validation.js.map +1 -0
- package/dist/lib/modules/marketing/validations/featured-marketing.validation.d.ts +224 -0
- package/dist/lib/modules/marketing/validations/featured-marketing.validation.d.ts.map +1 -0
- package/dist/lib/modules/marketing/validations/featured-marketing.validation.js +42 -0
- package/dist/lib/modules/marketing/validations/featured-marketing.validation.js.map +1 -0
- package/dist/lib/modules/marketing/validations/free-delivery-marketing.validation.d.ts +162 -0
- package/dist/lib/modules/marketing/validations/free-delivery-marketing.validation.d.ts.map +1 -0
- package/dist/lib/modules/marketing/validations/free-delivery-marketing.validation.js +19 -0
- package/dist/lib/modules/marketing/validations/free-delivery-marketing.validation.js.map +1 -0
- package/dist/lib/modules/marketing/validations/index.d.ts +9 -0
- package/dist/lib/modules/marketing/validations/index.d.ts.map +1 -0
- package/dist/lib/modules/marketing/validations/index.js +25 -0
- package/dist/lib/modules/marketing/validations/index.js.map +1 -0
- package/dist/lib/modules/marketing/validations/loyalty-point-marketing.validation.d.ts +504 -0
- package/dist/lib/modules/marketing/validations/loyalty-point-marketing.validation.d.ts.map +1 -0
- package/dist/lib/modules/marketing/validations/loyalty-point-marketing.validation.js +34 -0
- package/dist/lib/modules/marketing/validations/loyalty-point-marketing.validation.js.map +1 -0
- package/dist/lib/modules/marketing/validations/marketing.validation.d.ts +170 -0
- package/dist/lib/modules/marketing/validations/marketing.validation.d.ts.map +1 -0
- package/dist/lib/modules/marketing/validations/marketing.validation.js +21 -0
- package/dist/lib/modules/marketing/validations/marketing.validation.js.map +1 -0
- package/dist/lib/modules/marketing/validations/product-marketing.validation.d.ts +150 -0
- package/dist/lib/modules/marketing/validations/product-marketing.validation.d.ts.map +1 -0
- package/dist/lib/modules/marketing/validations/product-marketing.validation.js +36 -0
- package/dist/lib/modules/marketing/validations/product-marketing.validation.js.map +1 -0
- package/dist/lib/modules/marketing/validations/punch-marketing.validation.d.ts +207 -0
- package/dist/lib/modules/marketing/validations/punch-marketing.validation.d.ts.map +1 -0
- package/dist/lib/modules/marketing/validations/punch-marketing.validation.js +24 -0
- package/dist/lib/modules/marketing/validations/punch-marketing.validation.js.map +1 -0
- package/dist/lib/modules/punch-marketing-history/routers/index.d.ts +2 -0
- package/dist/lib/modules/punch-marketing-history/routers/index.d.ts.map +1 -0
- package/dist/lib/modules/punch-marketing-history/routers/index.js +18 -0
- package/dist/lib/modules/punch-marketing-history/routers/index.js.map +1 -0
- package/dist/lib/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +414 -0
- package/dist/lib/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts.map +1 -0
- package/dist/lib/modules/punch-marketing-history/routers/punch-marketing-history.router.js +69 -0
- package/dist/lib/modules/punch-marketing-history/routers/punch-marketing-history.router.js.map +1 -0
- package/dist/lib/modules/punch-marketing-history/services/index.d.ts +2 -0
- package/dist/lib/modules/punch-marketing-history/services/index.d.ts.map +1 -0
- package/dist/lib/modules/punch-marketing-history/services/index.js +18 -0
- package/dist/lib/modules/punch-marketing-history/services/index.js.map +1 -0
- package/dist/lib/modules/punch-marketing-history/services/punch-marketing-history.service.d.ts +24 -0
- package/dist/lib/modules/punch-marketing-history/services/punch-marketing-history.service.d.ts.map +1 -0
- package/dist/lib/modules/punch-marketing-history/services/punch-marketing-history.service.js +306 -0
- package/dist/lib/modules/punch-marketing-history/services/punch-marketing-history.service.js.map +1 -0
- package/dist/lib/modules/punch-marketing-history/transformers/index.d.ts +2 -0
- package/dist/lib/modules/punch-marketing-history/transformers/index.d.ts.map +1 -0
- package/dist/lib/modules/punch-marketing-history/transformers/index.js +18 -0
- package/dist/lib/modules/punch-marketing-history/transformers/index.js.map +1 -0
- package/dist/lib/modules/punch-marketing-history/transformers/punch-marketing-history.transformer.d.ts +19 -0
- package/dist/lib/modules/punch-marketing-history/transformers/punch-marketing-history.transformer.d.ts.map +1 -0
- package/dist/lib/modules/punch-marketing-history/transformers/punch-marketing-history.transformer.js +7 -0
- package/dist/lib/modules/punch-marketing-history/transformers/punch-marketing-history.transformer.js.map +1 -0
- package/dist/lib/modules/punch-marketing-history/validations/index.d.ts +2 -0
- package/dist/lib/modules/punch-marketing-history/validations/index.d.ts.map +1 -0
- package/dist/lib/modules/punch-marketing-history/validations/index.js +18 -0
- package/dist/lib/modules/punch-marketing-history/validations/index.js.map +1 -0
- package/dist/lib/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +400 -0
- package/dist/lib/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts.map +1 -0
- package/dist/lib/modules/punch-marketing-history/validations/punch-marketing-history.validation.js +39 -0
- package/dist/lib/modules/punch-marketing-history/validations/punch-marketing-history.validation.js.map +1 -0
- package/dist/lib/modules/referral-setting/routers/index.d.ts +2 -0
- package/dist/lib/modules/referral-setting/routers/index.d.ts.map +1 -0
- package/dist/lib/modules/referral-setting/routers/index.js +18 -0
- package/dist/lib/modules/referral-setting/routers/index.js.map +1 -0
- package/dist/lib/modules/referral-setting/routers/referral-setting.router.d.ts +354 -0
- package/dist/lib/modules/referral-setting/routers/referral-setting.router.d.ts.map +1 -0
- package/dist/lib/modules/referral-setting/routers/referral-setting.router.js +42 -0
- package/dist/lib/modules/referral-setting/routers/referral-setting.router.js.map +1 -0
- package/dist/lib/modules/referral-setting/services/index.d.ts +2 -0
- package/dist/lib/modules/referral-setting/services/index.d.ts.map +1 -0
- package/dist/lib/modules/referral-setting/services/index.js +18 -0
- package/dist/lib/modules/referral-setting/services/index.js.map +1 -0
- package/dist/lib/modules/referral-setting/services/referral-setting.service.d.ts +15 -0
- package/dist/lib/modules/referral-setting/services/referral-setting.service.d.ts.map +1 -0
- package/dist/lib/modules/referral-setting/services/referral-setting.service.js +154 -0
- package/dist/lib/modules/referral-setting/services/referral-setting.service.js.map +1 -0
- package/dist/lib/modules/referral-setting/transformers/index.d.ts +2 -0
- package/dist/lib/modules/referral-setting/transformers/index.d.ts.map +1 -0
- package/dist/lib/modules/referral-setting/transformers/index.js +18 -0
- package/dist/lib/modules/referral-setting/transformers/index.js.map +1 -0
- package/dist/lib/modules/referral-setting/transformers/referral-setting.transformer.d.ts +31 -0
- package/dist/lib/modules/referral-setting/transformers/referral-setting.transformer.d.ts.map +1 -0
- package/dist/lib/modules/referral-setting/transformers/referral-setting.transformer.js +7 -0
- package/dist/lib/modules/referral-setting/transformers/referral-setting.transformer.js.map +1 -0
- package/dist/lib/modules/referral-setting/validations/index.d.ts +2 -0
- package/dist/lib/modules/referral-setting/validations/index.d.ts.map +1 -0
- package/dist/lib/modules/referral-setting/validations/index.js +18 -0
- package/dist/lib/modules/referral-setting/validations/index.js.map +1 -0
- package/dist/lib/modules/referral-setting/validations/referral-setting.validation.d.ts +575 -0
- package/dist/lib/modules/referral-setting/validations/referral-setting.validation.d.ts.map +1 -0
- package/dist/lib/modules/referral-setting/validations/referral-setting.validation.js +24 -0
- package/dist/lib/modules/referral-setting/validations/referral-setting.validation.js.map +1 -0
- package/dist/types/index.d.ts +402 -12
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/modules/coupon/routers/coupon.router.d.ts +402 -12
- package/dist/types/modules/coupon/routers/coupon.router.d.ts.map +1 -1
- package/dist/types/modules/coupon/services/coupon.service.d.ts +3 -3
- package/dist/types/modules/coupon/services/coupon.service.d.ts.map +1 -1
- package/dist/types/modules/coupon/services/individual-store-coupon.service.d.ts +1 -0
- package/dist/types/modules/coupon/services/individual-store-coupon.service.d.ts.map +1 -1
- package/dist/types/modules/coupon/transformers/coupon.transformer.d.ts +13 -1
- package/dist/types/modules/coupon/transformers/coupon.transformer.d.ts.map +1 -1
- package/dist/types/modules/coupon/validations/all-coupons.validation.d.ts +273 -21
- package/dist/types/modules/coupon/validations/all-coupons.validation.d.ts.map +1 -1
- package/dist/types/modules/coupon/validations/coupon.validation.d.ts +52 -0
- package/dist/types/modules/coupon/validations/coupon.validation.d.ts.map +1 -1
- package/dist/types/modules/coupon/validations/custom-coupon.validation.d.ts +18 -0
- package/dist/types/modules/coupon/validations/custom-coupon.validation.d.ts.map +1 -1
- package/dist/types/modules/coupon/validations/global-coupon.validation.d.ts +18 -0
- package/dist/types/modules/coupon/validations/global-coupon.validation.d.ts.map +1 -1
- package/dist/types/modules/coupon/validations/individual-store-coupon.validation.d.ts +27 -9
- package/dist/types/modules/coupon/validations/individual-store-coupon.validation.d.ts.map +1 -1
- package/dist/types/modules/coupon/validations/individual-user-coupon.validation.d.ts +18 -0
- package/dist/types/modules/coupon/validations/individual-user-coupon.validation.d.ts.map +1 -1
- package/dist/types/modules/coupon/validations/referral-code-coupon.validation.d.ts +18 -0
- package/dist/types/modules/coupon/validations/referral-code-coupon.validation.d.ts.map +1 -1
- package/dist/types/modules/coupon/validations/referral-reward-coupon.validation.d.ts +18 -0
- package/dist/types/modules/coupon/validations/referral-reward-coupon.validation.d.ts.map +1 -1
- package/dist/types/modules/loyalty-point-setting/routers/index.d.ts +2 -0
- package/dist/types/modules/loyalty-point-setting/routers/index.d.ts.map +1 -0
- package/dist/types/modules/loyalty-point-setting/routers/loyalty-point-setting.router.d.ts +321 -0
- package/dist/types/modules/loyalty-point-setting/routers/loyalty-point-setting.router.d.ts.map +1 -0
- package/dist/types/modules/loyalty-point-setting/services/index.d.ts +3 -0
- package/dist/types/modules/loyalty-point-setting/services/index.d.ts.map +1 -0
- package/dist/types/modules/loyalty-point-setting/services/loyalty-point-category.service.d.ts +37 -0
- package/dist/types/modules/loyalty-point-setting/services/loyalty-point-category.service.d.ts.map +1 -0
- package/dist/types/modules/loyalty-point-setting/services/loyalty-point-setting.service.d.ts +34 -0
- package/dist/types/modules/loyalty-point-setting/services/loyalty-point-setting.service.d.ts.map +1 -0
- package/dist/types/modules/loyalty-point-setting/transformers/index.d.ts +3 -0
- package/dist/types/modules/loyalty-point-setting/transformers/index.d.ts.map +1 -0
- package/dist/types/modules/loyalty-point-setting/transformers/loyalty-point-category.transformer.d.ts +8 -0
- package/dist/types/modules/loyalty-point-setting/transformers/loyalty-point-category.transformer.d.ts.map +1 -0
- package/dist/types/modules/loyalty-point-setting/transformers/loyalty-point-setting.transformer.d.ts +9 -0
- package/dist/types/modules/loyalty-point-setting/transformers/loyalty-point-setting.transformer.d.ts.map +1 -0
- package/dist/types/modules/loyalty-point-setting/validations/index.d.ts +3 -0
- package/dist/types/modules/loyalty-point-setting/validations/index.d.ts.map +1 -0
- package/dist/types/modules/loyalty-point-setting/validations/loyalty-point-category.validation.d.ts +179 -0
- package/dist/types/modules/loyalty-point-setting/validations/loyalty-point-category.validation.d.ts.map +1 -0
- package/dist/types/modules/loyalty-point-setting/validations/loyalty-point-setting.validation.d.ts +197 -0
- package/dist/types/modules/loyalty-point-setting/validations/loyalty-point-setting.validation.d.ts.map +1 -0
- package/dist/types/modules/marketing/routers/marketing.router.d.ts.map +1 -1
- package/dist/types/modules/marketing/services/buy1-get1-marketing.service.d.ts +1 -0
- package/dist/types/modules/marketing/services/buy1-get1-marketing.service.d.ts.map +1 -1
- package/dist/types/modules/marketing/services/discount-marketing.service.d.ts +2 -0
- package/dist/types/modules/marketing/services/discount-marketing.service.d.ts.map +1 -1
- package/dist/types/modules/marketing/services/loyalty-point-marketing.service.d.ts +21 -0
- package/dist/types/modules/marketing/services/loyalty-point-marketing.service.d.ts.map +1 -0
- package/dist/types/modules/marketing/services/marketing.service.d.ts.map +1 -1
- package/dist/types/modules/marketing/services/product-marketing.service.d.ts.map +1 -1
- package/dist/types/modules/marketing/transformers/buy1-get1-marketing.transformer.d.ts +1 -0
- package/dist/types/modules/marketing/transformers/buy1-get1-marketing.transformer.d.ts.map +1 -1
- package/dist/types/modules/marketing/transformers/discount-marketing.transformer.d.ts +3 -0
- package/dist/types/modules/marketing/transformers/discount-marketing.transformer.d.ts.map +1 -1
- package/dist/types/modules/marketing/transformers/loyalty-point-marketing.transformer.d.ts +47 -0
- package/dist/types/modules/marketing/transformers/loyalty-point-marketing.transformer.d.ts.map +1 -0
- package/dist/types/modules/marketing/validations/buy1-get1-marketing.validation.d.ts +45 -31
- package/dist/types/modules/marketing/validations/buy1-get1-marketing.validation.d.ts.map +1 -1
- package/dist/types/modules/marketing/validations/discount-marketing.validation.d.ts +42 -0
- package/dist/types/modules/marketing/validations/discount-marketing.validation.d.ts.map +1 -1
- package/dist/types/modules/marketing/validations/loyalty-point-marketing.validation.d.ts +513 -0
- package/dist/types/modules/marketing/validations/loyalty-point-marketing.validation.d.ts.map +1 -0
- package/package.json +4 -5
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
42
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.loyaltyPointMarketingService = exports.LoyaltyPointMarketingService = void 0;
|
|
46
|
+
const typedi_1 = __importStar(require("typedi"));
|
|
47
|
+
const server_1 = require("@trpc/server");
|
|
48
|
+
const models_1 = require("@lyxa.ai/core/dist/libraries/mongo/models");
|
|
49
|
+
const _1 = require("./");
|
|
50
|
+
let LoyaltyPointMarketingService = class LoyaltyPointMarketingService {
|
|
51
|
+
model;
|
|
52
|
+
productModel;
|
|
53
|
+
constructor() {
|
|
54
|
+
this.model = models_1.LoyaltyPointMarketingModel;
|
|
55
|
+
this.productModel = models_1.ProductModel;
|
|
56
|
+
}
|
|
57
|
+
async create(data) {
|
|
58
|
+
const result = await this.model.create(data);
|
|
59
|
+
if (data.products && data.products.length > 0) {
|
|
60
|
+
for (const product of data.products) {
|
|
61
|
+
_1.productMarketingService.create({
|
|
62
|
+
marketing: result._id,
|
|
63
|
+
product: product.product,
|
|
64
|
+
value: data.value,
|
|
65
|
+
valueType: data.valueType,
|
|
66
|
+
loyaltyPointCategory: product.loyaltyPointCategory,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else if (data.isEntireMenu) {
|
|
71
|
+
const products = this.productModel
|
|
72
|
+
.find({
|
|
73
|
+
shop: data.shop,
|
|
74
|
+
})
|
|
75
|
+
.select('_id')
|
|
76
|
+
.exec()
|
|
77
|
+
.then(productDocuments => {
|
|
78
|
+
for (const product of productDocuments) {
|
|
79
|
+
_1.productMarketingService.create({
|
|
80
|
+
marketing: result._id,
|
|
81
|
+
product: product._id,
|
|
82
|
+
value: data.value,
|
|
83
|
+
valueType: data.valueType,
|
|
84
|
+
loyaltyPointCategory: data.category,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
async update(_id, data) {
|
|
92
|
+
const { products, ...rest } = data;
|
|
93
|
+
const record = await this.model.findOneAndUpdate({
|
|
94
|
+
_id: _id,
|
|
95
|
+
deletedAt: null,
|
|
96
|
+
}, rest, {
|
|
97
|
+
new: true,
|
|
98
|
+
runValidators: true,
|
|
99
|
+
});
|
|
100
|
+
if (data.products) {
|
|
101
|
+
const productIds = [];
|
|
102
|
+
for (const product of data.products) {
|
|
103
|
+
_1.productMarketingService.updateOne({
|
|
104
|
+
product: product.product,
|
|
105
|
+
marketing: _id,
|
|
106
|
+
}, product);
|
|
107
|
+
productIds.push(product.product);
|
|
108
|
+
}
|
|
109
|
+
_1.productMarketingService.deleteMultipleProducts({
|
|
110
|
+
marketing: _id,
|
|
111
|
+
products: productIds,
|
|
112
|
+
}, true);
|
|
113
|
+
}
|
|
114
|
+
else if (data.isEntireMenu) {
|
|
115
|
+
this.productModel
|
|
116
|
+
.find({
|
|
117
|
+
shop: data.shop,
|
|
118
|
+
})
|
|
119
|
+
.select('_id')
|
|
120
|
+
.exec()
|
|
121
|
+
.then(productDocuments => {
|
|
122
|
+
for (const product of productDocuments) {
|
|
123
|
+
_1.productMarketingService.updateOne({
|
|
124
|
+
product: product._id,
|
|
125
|
+
marketing: _id,
|
|
126
|
+
}, {
|
|
127
|
+
value: data.value,
|
|
128
|
+
valueType: data.valueType,
|
|
129
|
+
loyaltyPointCategory: data.category,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
if (!record) {
|
|
135
|
+
throw new server_1.TRPCError({
|
|
136
|
+
code: 'NOT_FOUND',
|
|
137
|
+
message: `Record not found`,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
return record;
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
exports.LoyaltyPointMarketingService = LoyaltyPointMarketingService;
|
|
144
|
+
exports.LoyaltyPointMarketingService = LoyaltyPointMarketingService = __decorate([
|
|
145
|
+
(0, typedi_1.Service)(),
|
|
146
|
+
__metadata("design:paramtypes", [])
|
|
147
|
+
], LoyaltyPointMarketingService);
|
|
148
|
+
exports.loyaltyPointMarketingService = typedi_1.default.get(LoyaltyPointMarketingService);
|
|
149
|
+
//# sourceMappingURL=loyalty-point-marketing.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loyalty-point-marketing.service.js","sourceRoot":"/","sources":["modules/marketing/services/loyalty-point-marketing.service.ts"],"names":[],"mappings":"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","sourcesContent":["import Container, { Service } from 'typedi';\nimport { TRPCError } from '@trpc/server';\nimport { DocumentType, mongoose } from '@typegoose/typegoose';\nimport {\n\tLoyaltyPointMarketingModel,\n\tLoyaltyPointMarketing as Model,\n\tProductModel,\n} from '@lyxa.ai/core/dist/libraries/mongo/models';\nimport {\n\tCreateLoyaltyPointMarketingDTO as CreateDTO,\n\tUpdateLoyaltyPointMarketingDTO as UpdateDTO,\n} from '@modules/marketing/validations';\nimport { productMarketingService } from './';\n\n@Service()\nexport class LoyaltyPointMarketingService {\n\tprivate model: typeof LoyaltyPointMarketingModel;\n\tprivate productModel: typeof ProductModel;\n\n\tconstructor() {\n\t\tthis.model = LoyaltyPointMarketingModel;\n\t\tthis.productModel = ProductModel;\n\t}\n\n\t/**\n\t * Create a new record\n\t * @param data Data for the new record\n\t */\n\tpublic async create(data: CreateDTO): Promise<DocumentType<Model>> {\n\t\tconst result = await this.model.create(data);\n\n\t\tif (data.products && data.products.length > 0) {\n\t\t\tfor (const product of data.products) {\n\t\t\t\tproductMarketingService.create({\n\t\t\t\t\tmarketing: result._id,\n\t\t\t\t\tproduct: product.product,\n\t\t\t\t\tvalue: data.value,\n\t\t\t\t\tvalueType: data.valueType,\n\t\t\t\t\tloyaltyPointCategory: product.loyaltyPointCategory,\n\t\t\t\t});\n\t\t\t}\n\t\t} else if (data.isEntireMenu) {\n\t\t\tconst products = this.productModel\n\t\t\t\t.find({\n\t\t\t\t\tshop: data.shop,\n\t\t\t\t})\n\t\t\t\t.select('_id')\n\t\t\t\t.exec()\n\t\t\t\t.then(productDocuments => {\n\t\t\t\t\tfor (const product of productDocuments) {\n\t\t\t\t\t\tproductMarketingService.create({\n\t\t\t\t\t\t\tmarketing: result._id,\n\t\t\t\t\t\t\tproduct: product._id,\n\t\t\t\t\t\t\tvalue: data.value,\n\t\t\t\t\t\t\tvalueType: data.valueType,\n\t\t\t\t\t\t\tloyaltyPointCategory: data.category,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * Update record\n\t * @param _id ID of the record\n\t * @param data Data to update\n\t */\n\tpublic async update(_id: mongoose.Types.ObjectId, data: UpdateDTO): Promise<DocumentType<Model>> {\n\t\tconst { products, ...rest } = data;\n\t\tconst record = await this.model.findOneAndUpdate(\n\t\t\t{\n\t\t\t\t_id: _id,\n\t\t\t\tdeletedAt: null,\n\t\t\t},\n\t\t\trest,\n\t\t\t{\n\t\t\t\tnew: true,\n\t\t\t\trunValidators: true,\n\t\t\t}\n\t\t);\n\n\t\tif (data.products) {\n\t\t\tconst productIds: Array<mongoose.Types.ObjectId> = [];\n\t\t\tfor (const product of data.products) {\n\t\t\t\tproductMarketingService.updateOne(\n\t\t\t\t\t{\n\t\t\t\t\t\tproduct: product.product,\n\t\t\t\t\t\tmarketing: _id,\n\t\t\t\t\t},\n\t\t\t\t\tproduct\n\t\t\t\t);\n\t\t\t\tproductIds.push(product.product);\n\t\t\t}\n\n\t\t\t// remove products that had marketing but not anymore\n\t\t\tproductMarketingService.deleteMultipleProducts(\n\t\t\t\t{\n\t\t\t\t\tmarketing: _id,\n\t\t\t\t\tproducts: productIds,\n\t\t\t\t},\n\t\t\t\ttrue\n\t\t\t);\n\t\t} else if (data.isEntireMenu) {\n\t\t\tthis.productModel\n\t\t\t\t.find({\n\t\t\t\t\tshop: data.shop,\n\t\t\t\t})\n\t\t\t\t.select('_id')\n\t\t\t\t.exec()\n\t\t\t\t.then(productDocuments => {\n\t\t\t\t\tfor (const product of productDocuments) {\n\t\t\t\t\t\tproductMarketingService.updateOne(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tproduct: product._id,\n\t\t\t\t\t\t\t\tmarketing: _id,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: data.value,\n\t\t\t\t\t\t\t\tvalueType: data.valueType,\n\t\t\t\t\t\t\t\tloyaltyPointCategory: data.category,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\tif (!record) {\n\t\t\tthrow new TRPCError({\n\t\t\t\tcode: 'NOT_FOUND',\n\t\t\t\tmessage: `Record not found`,\n\t\t\t});\n\t\t}\n\n\t\treturn record;\n\t}\n}\n\nexport const loyaltyPointMarketingService = Container.get(LoyaltyPointMarketingService);\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DocumentType, mongoose } from '@typegoose/typegoose';
|
|
2
|
+
import { Marketing as Model } from '@lyxa.ai/core/dist/libraries/mongo/models';
|
|
3
|
+
import { AllMarketingsValidationDTO, UpdateMarketingDTO as UpdateDTO } from '../../marketing/validations';
|
|
4
|
+
import { FilterDTO, PaginatedResponse, DeleteDTO } from '@lyxa.ai/core/dist/utilities/validation';
|
|
5
|
+
import { ModelType } from '@typegoose/typegoose/lib/types';
|
|
6
|
+
export declare class MarketingService {
|
|
7
|
+
private model;
|
|
8
|
+
constructor();
|
|
9
|
+
create(data: AllMarketingsValidationDTO, admin?: mongoose.Types.ObjectId): Promise<DocumentType<Model>>;
|
|
10
|
+
findById(id: string | mongoose.Types.ObjectId): Promise<DocumentType<Model>>;
|
|
11
|
+
find(data?: Partial<FilterDTO>): Promise<PaginatedResponse<DocumentType<ModelType<Model>>>>;
|
|
12
|
+
update(_id: mongoose.Types.ObjectId, data: UpdateDTO, admin?: mongoose.Types.ObjectId): Promise<DocumentType<Model>>;
|
|
13
|
+
private logMarketingAdminAction;
|
|
14
|
+
deleteById(data: DeleteDTO, admin?: mongoose.Types.ObjectId): Promise<string>;
|
|
15
|
+
}
|
|
16
|
+
export declare const marketingService: MarketingService;
|
|
17
|
+
//# sourceMappingURL=marketing.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketing.service.d.ts","sourceRoot":"/","sources":["modules/marketing/services/marketing.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAEN,SAAS,IAAI,KAAK,EAElB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEN,0BAA0B,EAE1B,kBAAkB,IAAI,SAAS,EAC/B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGlG,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAkB3D,qBACa,gBAAgB;IAC5B,OAAO,CAAC,KAAK,CAAiD;;IAUjD,MAAM,CAClB,IAAI,EAAE,0BAA0B,EAChC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAC7B,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IA2GlB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAkB5E,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,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;YA0FjB,uBAAuB;IAmBxB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;CA2B1F;AAED,eAAO,MAAM,gBAAgB,kBAAkC,CAAC"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
42
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.marketingService = exports.MarketingService = void 0;
|
|
46
|
+
const typedi_1 = __importStar(require("typedi"));
|
|
47
|
+
const server_1 = require("@trpc/server");
|
|
48
|
+
const models_1 = require("@lyxa.ai/core/dist/libraries/mongo/models");
|
|
49
|
+
const pagination_1 = require("@lyxa.ai/core/dist/utilities/pagination");
|
|
50
|
+
const events_common_methods_1 = require("@lyxa.ai/core/dist/utilities/events-common-methods");
|
|
51
|
+
const admin_logs_event_1 = require("@lyxa.ai/core/dist/libraries/event/events/admin-logs-event");
|
|
52
|
+
const enum_1 = require("@lyxa.ai/core/dist/utilities/enum");
|
|
53
|
+
const event_1 = require("@lyxa.ai/core/dist/libraries/event");
|
|
54
|
+
const _1 = require(".");
|
|
55
|
+
const enum_2 = require("@lyxa.ai/core/dist/utilities/enum");
|
|
56
|
+
const error_common_1 = require("@lyxa.ai/core/dist/utilities/error-common");
|
|
57
|
+
let MarketingService = class MarketingService {
|
|
58
|
+
model;
|
|
59
|
+
constructor() {
|
|
60
|
+
this.model = models_1.MarketingModel;
|
|
61
|
+
}
|
|
62
|
+
async create(data, admin) {
|
|
63
|
+
const now = new Date();
|
|
64
|
+
const existingRecord = await this.model.findOne({
|
|
65
|
+
shop: data.shop,
|
|
66
|
+
marketingType: data.marketingType,
|
|
67
|
+
'duration.start': { $lt: new Date() },
|
|
68
|
+
'duration.end': { $gt: new Date() },
|
|
69
|
+
status: enum_1.MarketingStatus.ACTIVE,
|
|
70
|
+
});
|
|
71
|
+
if (existingRecord) {
|
|
72
|
+
throw new server_1.TRPCError({
|
|
73
|
+
code: 'CONFLICT',
|
|
74
|
+
message: `This shop already has a ${data.marketingType} marketing`,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (data.isEntireMenu) {
|
|
78
|
+
const existingMarketing = await this.model.findOne({
|
|
79
|
+
shop: data.shop,
|
|
80
|
+
'duration.start': { $lt: now },
|
|
81
|
+
'duration.end': { $gt: now },
|
|
82
|
+
status: enum_1.MarketingStatus.ACTIVE,
|
|
83
|
+
});
|
|
84
|
+
if (existingMarketing) {
|
|
85
|
+
throw new server_1.TRPCError({
|
|
86
|
+
code: 'CONFLICT',
|
|
87
|
+
message: `Cannot create marketing for entire menu while another marketing exists for the shop`,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
else if (data.products && data.products.length > 0) {
|
|
92
|
+
const productIds = data.products.map((product) => product.product);
|
|
93
|
+
const hasDuplicates = new Set(productIds.map(String)).size !== productIds.length;
|
|
94
|
+
if (hasDuplicates) {
|
|
95
|
+
throw new server_1.TRPCError({
|
|
96
|
+
code: 'BAD_REQUEST',
|
|
97
|
+
message: `Product list contains duplicate products`,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
const isAvailable = await _1.productMarketingService.checkProductMarketingAvailability(productIds);
|
|
101
|
+
if (!isAvailable) {
|
|
102
|
+
throw new server_1.TRPCError({
|
|
103
|
+
code: 'CONFLICT',
|
|
104
|
+
message: `Product list contains products which already have marketing applied`,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
let marketing;
|
|
109
|
+
switch (data.marketingType) {
|
|
110
|
+
case enum_2.MarketingType.DISCOUNT: {
|
|
111
|
+
marketing = await _1.discountMarketingService.create(data);
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
case enum_2.MarketingType.BUY1GET1: {
|
|
115
|
+
marketing = await _1.buy1Get1MarketingService.create(data);
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
case enum_2.MarketingType.FEATURED: {
|
|
119
|
+
if (!admin) {
|
|
120
|
+
throw new server_1.TRPCError({
|
|
121
|
+
code: 'UNAUTHORIZED',
|
|
122
|
+
message: `Only admin is allowed to create ${data.marketingType} marketing`,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
marketing = await _1.featuredMarketingService.create(data);
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
case enum_2.MarketingType.FREE_DELIVERY: {
|
|
129
|
+
marketing = await _1.freeDeliveryMarketingService.create(data);
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
case enum_2.MarketingType.PUNCH_MARKETING: {
|
|
133
|
+
marketing = await _1.punchMarketingService.create(data);
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
default: {
|
|
137
|
+
marketing = await this.model.create(data);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (admin) {
|
|
141
|
+
this.logMarketingAdminAction(admin, enum_1.AdminLogsUpdatedFieldsType.ACTIVATED_MARKETING_PROMOTIONS, '', marketing);
|
|
142
|
+
}
|
|
143
|
+
return marketing;
|
|
144
|
+
}
|
|
145
|
+
async findById(id) {
|
|
146
|
+
const result = await this.model.findOne({
|
|
147
|
+
_id: id,
|
|
148
|
+
deletedAt: null,
|
|
149
|
+
});
|
|
150
|
+
if (!result) {
|
|
151
|
+
throw new server_1.TRPCError({
|
|
152
|
+
code: 'NOT_FOUND',
|
|
153
|
+
message: 'Record not found',
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
return result;
|
|
157
|
+
}
|
|
158
|
+
async find(data) {
|
|
159
|
+
try {
|
|
160
|
+
const paginate = (0, pagination_1.createRawDocumentPaginatorObject)(this.model);
|
|
161
|
+
const options = {
|
|
162
|
+
page: data?.page,
|
|
163
|
+
size: data?.size,
|
|
164
|
+
sort: data?.sort,
|
|
165
|
+
query: data?.query,
|
|
166
|
+
select: data?.select,
|
|
167
|
+
populate: data?.populate,
|
|
168
|
+
};
|
|
169
|
+
const paginatedResult = await paginate(options);
|
|
170
|
+
return paginatedResult;
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
throw new server_1.TRPCError({
|
|
174
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
175
|
+
message: `err: ${err}`,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
async update(_id, data, admin) {
|
|
180
|
+
let marketing;
|
|
181
|
+
const oldMarketing = await this.model.findById(_id);
|
|
182
|
+
if (!oldMarketing) {
|
|
183
|
+
(0, error_common_1.notFoundError)('Could not find marketing');
|
|
184
|
+
}
|
|
185
|
+
switch (oldMarketing.marketingType) {
|
|
186
|
+
case enum_2.MarketingType.DISCOUNT: {
|
|
187
|
+
marketing = await _1.discountMarketingService.update(_id, data);
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
case enum_2.MarketingType.BUY1GET1: {
|
|
191
|
+
marketing = await _1.buy1Get1MarketingService.update(_id, data);
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
case enum_2.MarketingType.FEATURED: {
|
|
195
|
+
if (!admin) {
|
|
196
|
+
(0, error_common_1.unauthorizedError)(`Only admin is allowed to update ${data.marketingType} marketing`);
|
|
197
|
+
}
|
|
198
|
+
marketing = await _1.featuredMarketingService.update(_id, data);
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
case enum_2.MarketingType.FREE_DELIVERY: {
|
|
202
|
+
marketing = await _1.freeDeliveryMarketingService.update(_id, data);
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
case enum_2.MarketingType.PUNCH_MARKETING: {
|
|
206
|
+
marketing = await _1.punchMarketingService.update(_id, data);
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
default: {
|
|
210
|
+
marketing = await this.model.findOneAndUpdate({
|
|
211
|
+
_id: _id,
|
|
212
|
+
deletedAt: null,
|
|
213
|
+
}, data, {
|
|
214
|
+
new: true,
|
|
215
|
+
runValidators: true,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
if (!marketing) {
|
|
220
|
+
(0, error_common_1.internalServerError)('Could not update marketing');
|
|
221
|
+
}
|
|
222
|
+
if (admin) {
|
|
223
|
+
const allChanges = (0, events_common_methods_1.getChangedFields)(oldMarketing, marketing);
|
|
224
|
+
const relevantChanges = (0, events_common_methods_1.filterRelevantChanges)(allChanges, data);
|
|
225
|
+
if (Object.keys(relevantChanges).includes('pausedAt')) {
|
|
226
|
+
if (data.pausedAt == null) {
|
|
227
|
+
this.logMarketingAdminAction(admin, enum_1.AdminLogsUpdatedFieldsType.CONTINUED_MARKETING_PROMOTIONS, oldMarketing, marketing);
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
this.logMarketingAdminAction(admin, enum_1.AdminLogsUpdatedFieldsType.PAUSED_MARKETING_PROMOTIONS, oldMarketing, marketing);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
this.logMarketingAdminAction(admin, enum_1.AdminLogsUpdatedFieldsType.EDITED_MARKETING_PROMOTIONS, oldMarketing, marketing);
|
|
234
|
+
}
|
|
235
|
+
return marketing;
|
|
236
|
+
}
|
|
237
|
+
async logMarketingAdminAction(admin, actionType, oldDocument, newDocument) {
|
|
238
|
+
const adminActivityLogsEvent = new admin_logs_event_1.AdminActivityLogsEvent({
|
|
239
|
+
admin,
|
|
240
|
+
updatedField: actionType,
|
|
241
|
+
oldDocument: oldDocument ?? '',
|
|
242
|
+
newDocument: newDocument ?? '',
|
|
243
|
+
});
|
|
244
|
+
await (0, event_1.publishEvent)(adminActivityLogsEvent);
|
|
245
|
+
}
|
|
246
|
+
async deleteById(data, admin) {
|
|
247
|
+
const { _id, softDelete } = data;
|
|
248
|
+
const record = await this.model.findById(_id);
|
|
249
|
+
if (!record) {
|
|
250
|
+
throw new server_1.TRPCError({
|
|
251
|
+
code: 'NOT_FOUND',
|
|
252
|
+
message: 'Record not found',
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
const result = await this.model.deleteRecord({ _id, deletedAt: null }, softDelete);
|
|
256
|
+
if (!result) {
|
|
257
|
+
throw new server_1.TRPCError({
|
|
258
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
259
|
+
message: 'Unable to delete marketing',
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
if (admin) {
|
|
263
|
+
this.logMarketingAdminAction(admin, enum_1.AdminLogsUpdatedFieldsType.DELETED_MARKETING_PROMOTIONS, record);
|
|
264
|
+
}
|
|
265
|
+
_1.productMarketingService.deleteMany({ marketing: data._id }, data.softDelete);
|
|
266
|
+
return 'Record deleted successfully';
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
exports.MarketingService = MarketingService;
|
|
270
|
+
exports.MarketingService = MarketingService = __decorate([
|
|
271
|
+
(0, typedi_1.Service)(),
|
|
272
|
+
__metadata("design:paramtypes", [])
|
|
273
|
+
], MarketingService);
|
|
274
|
+
exports.marketingService = typedi_1.default.get(MarketingService);
|
|
275
|
+
//# sourceMappingURL=marketing.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketing.service.js","sourceRoot":"/","sources":["modules/marketing/services/marketing.service.ts"],"names":[],"mappings":"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","sourcesContent":["import Container, { Service } from 'typedi';\nimport { TRPCError } from '@trpc/server';\nimport { DocumentType, mongoose, ReturnModelType } from '@typegoose/typegoose';\nimport {\n\tMarketingModel,\n\tMarketing as Model,\n\tPunchMarketingHistory,\n} from '@lyxa.ai/core/dist/libraries/mongo/models';\nimport {\n\tAllMarketingsDTO,\n\tAllMarketingsValidationDTO,\n\tCreateProductMarketingDTO,\n\tUpdateMarketingDTO as UpdateDTO,\n} from '@modules/marketing/validations';\nimport { FilterDTO, PaginatedResponse, DeleteDTO } from '@lyxa.ai/core/dist/utilities/validation';\nimport { SoftDeleteModel } from '@lyxa.ai/core/dist/libraries/mongo/plugins/soft-delete-plugin';\nimport { createRawDocumentPaginatorObject, PaginatorOptions } from '@lyxa.ai/core/dist/utilities/pagination';\nimport { ModelType } from '@typegoose/typegoose/lib/types';\nimport { filterRelevantChanges, getChangedFields } from '@lyxa.ai/core/dist/utilities/events-common-methods';\nimport { AdminActivityLogsEvent } from '@lyxa.ai/core/dist/libraries/event/events/admin-logs-event';\nimport { AdminLogsUpdatedFieldsType, MarketingStatus } from '@lyxa.ai/core/dist/utilities/enum';\nimport { publishEvent } from '@lyxa.ai/core/dist/libraries/event';\nimport { BaseEvent } from '@lyxa.ai/core/dist/libraries/event/BaseEvent';\n\nimport {\n\tbuy1Get1MarketingService,\n\tdiscountMarketingService,\n\tfeaturedMarketingService,\n\tfreeDeliveryMarketingService,\n\tproductMarketingService,\n\tpunchMarketingService,\n} from '.';\nimport { MarketingType } from '@lyxa.ai/core/dist/utilities/enum';\nimport { internalServerError, notFoundError, unauthorizedError } from '@lyxa.ai/core/dist/utilities/error-common';\n\n@Service()\nexport class MarketingService {\n\tprivate model: typeof MarketingModel & SoftDeleteModel<Model>;\n\n\tconstructor() {\n\t\tthis.model = MarketingModel as typeof MarketingModel & SoftDeleteModel<Model>;\n\t}\n\n\t/**\n\t * Create a new record\n\t * @param data Data for the new record\n\t */\n\tpublic async create(\n\t\tdata: AllMarketingsValidationDTO,\n\t\tadmin?: mongoose.Types.ObjectId\n\t): Promise<DocumentType<Model>> {\n\t\tconst now = new Date();\n\n\t\tconst existingRecord = await this.model.findOne({\n\t\t\tshop: data.shop,\n\t\t\tmarketingType: data.marketingType,\n\t\t\t'duration.start': { $lt: new Date() },\n\t\t\t'duration.end': { $gt: new Date() },\n\t\t\tstatus: MarketingStatus.ACTIVE,\n\t\t});\n\t\tif (existingRecord) {\n\t\t\tthrow new TRPCError({\n\t\t\t\tcode: 'CONFLICT',\n\t\t\t\tmessage: `This shop already has a ${data.marketingType} marketing`,\n\t\t\t});\n\t\t}\n\n\t\tif (data.isEntireMenu) {\n\t\t\tconst existingMarketing = await this.model.findOne({\n\t\t\t\tshop: data.shop,\n\t\t\t\t'duration.start': { $lt: now },\n\t\t\t\t'duration.end': { $gt: now },\n\t\t\t\tstatus: MarketingStatus.ACTIVE,\n\t\t\t});\n\t\t\tif (existingMarketing) {\n\t\t\t\tthrow new TRPCError({\n\t\t\t\t\tcode: 'CONFLICT',\n\t\t\t\t\tmessage: `Cannot create marketing for entire menu while another marketing exists for the shop`,\n\t\t\t\t});\n\t\t\t}\n\t\t} else if (data.products && data.products.length > 0) {\n\t\t\tconst productIds = data.products.map((product: CreateProductMarketingDTO) => product.product);\n\n\t\t\tconst hasDuplicates = new Set(productIds.map(String)).size !== productIds.length;\n\n\t\t\tif (hasDuplicates) {\n\t\t\t\tthrow new TRPCError({\n\t\t\t\t\tcode: 'BAD_REQUEST',\n\t\t\t\t\tmessage: `Product list contains duplicate products`,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst isAvailable = await productMarketingService.checkProductMarketingAvailability(productIds);\n\n\t\t\tif (!isAvailable) {\n\t\t\t\tthrow new TRPCError({\n\t\t\t\t\tcode: 'CONFLICT',\n\t\t\t\t\tmessage: `Product list contains products which already have marketing applied`,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tlet marketing: AllMarketingsDTO;\n\n\t\tswitch (data.marketingType) {\n\t\t\tcase MarketingType.DISCOUNT: {\n\t\t\t\tmarketing = await discountMarketingService.create(data);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase MarketingType.BUY1GET1: {\n\t\t\t\tmarketing = await buy1Get1MarketingService.create(data);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase MarketingType.FEATURED: {\n\t\t\t\tif (!admin) {\n\t\t\t\t\tthrow new TRPCError({\n\t\t\t\t\t\tcode: 'UNAUTHORIZED',\n\t\t\t\t\t\tmessage: `Only admin is allowed to create ${data.marketingType} marketing`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tmarketing = await featuredMarketingService.create(data);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase MarketingType.FREE_DELIVERY: {\n\t\t\t\tmarketing = await freeDeliveryMarketingService.create(data);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase MarketingType.PUNCH_MARKETING: {\n\t\t\t\tmarketing = await punchMarketingService.create(data);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tmarketing = await this.model.create(data);\n\t\t\t}\n\t\t}\n\n\t\tif (admin) {\n\t\t\tthis.logMarketingAdminAction(\n\t\t\t\tadmin,\n\t\t\t\tAdminLogsUpdatedFieldsType.ACTIVATED_MARKETING_PROMOTIONS,\n\t\t\t\t'',\n\t\t\t\tmarketing\n\t\t\t);\n\t\t}\n\n\t\treturn marketing;\n\t}\n\n\t/**\n\t * Get record by ID\n\t * @param id ID of the record\n\t */\n\tpublic async findById(id: string | mongoose.Types.ObjectId): Promise<DocumentType<Model>> {\n\t\tconst result = await this.model.findOne({\n\t\t\t_id: id,\n\t\t\tdeletedAt: null,\n\t\t});\n\t\tif (!result) {\n\t\t\tthrow new TRPCError({\n\t\t\t\tcode: 'NOT_FOUND',\n\t\t\t\tmessage: 'Record not found',\n\t\t\t});\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * Get records\n\t * @param query Query to find records\n\t */\n\tpublic async find(data?: Partial<FilterDTO>): Promise<PaginatedResponse<DocumentType<ModelType<Model>>>> {\n\t\ttry {\n\t\t\tconst paginate = createRawDocumentPaginatorObject(this.model as ReturnModelType<typeof this.model>);\n\t\t\tconst options: PaginatorOptions<typeof Model> = {\n\t\t\t\tpage: data?.page,\n\t\t\t\tsize: data?.size,\n\t\t\t\tsort: data?.sort,\n\t\t\t\tquery: data?.query,\n\t\t\t\tselect: data?.select,\n\t\t\t\tpopulate: data?.populate,\n\t\t\t};\n\t\t\tconst paginatedResult = await paginate(options);\n\t\t\treturn paginatedResult;\n\t\t} catch (err) {\n\t\t\tthrow new TRPCError({\n\t\t\t\tcode: 'INTERNAL_SERVER_ERROR',\n\t\t\t\tmessage: `err: ${err}`,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Update record\n\t * @param id ID of the record\n\t * @param data Data to update\n\t */\n\tpublic async update(\n\t\t_id: mongoose.Types.ObjectId,\n\t\tdata: UpdateDTO,\n\t\tadmin?: mongoose.Types.ObjectId\n\t): Promise<DocumentType<Model>> {\n\t\tlet marketing: AllMarketingsDTO;\n\n\t\tconst oldMarketing = await this.model.findById(_id);\n\t\t\n\t\tif (!oldMarketing) {\n\t\t\tnotFoundError('Could not find marketing');\n\t\t}\n\n\t\tswitch (oldMarketing.marketingType) {\n\t\t\tcase MarketingType.DISCOUNT: {\n\t\t\t\tmarketing = await discountMarketingService.update(_id, data);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase MarketingType.BUY1GET1: {\n\t\t\t\tmarketing = await buy1Get1MarketingService.update(_id, data);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase MarketingType.FEATURED: {\n\t\t\t\tif (!admin) {\n\t\t\t\t\tunauthorizedError(`Only admin is allowed to update ${data.marketingType} marketing`);\n\t\t\t\t}\n\t\t\t\tmarketing = await featuredMarketingService.update(_id, data);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase MarketingType.FREE_DELIVERY: {\n\t\t\t\tmarketing = await freeDeliveryMarketingService.update(_id, data);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase MarketingType.PUNCH_MARKETING: {\n\t\t\t\tmarketing = await punchMarketingService.update(_id, data);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tmarketing = await this.model.findOneAndUpdate(\n\t\t\t\t\t{\n\t\t\t\t\t\t_id: _id,\n\t\t\t\t\t\tdeletedAt: null,\n\t\t\t\t\t},\n\t\t\t\t\tdata,\n\t\t\t\t\t{\n\t\t\t\t\t\tnew: true,\n\t\t\t\t\t\trunValidators: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!marketing) {\n\t\t\tinternalServerError('Could not update marketing');\n\t\t}\n\n\t\tif (admin) {\n\t\t\tconst allChanges = getChangedFields(oldMarketing, marketing);\n\t\t\tconst relevantChanges = filterRelevantChanges(allChanges, data);\n\n\t\t\tif (Object.keys(relevantChanges).includes('pausedAt')) {\n\t\t\t\tif (data.pausedAt == null) {\n\t\t\t\t\tthis.logMarketingAdminAction(\n\t\t\t\t\t\tadmin,\n\t\t\t\t\t\tAdminLogsUpdatedFieldsType.CONTINUED_MARKETING_PROMOTIONS,\n\t\t\t\t\t\toldMarketing,\n\t\t\t\t\t\tmarketing\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis.logMarketingAdminAction(\n\t\t\t\t\t\tadmin,\n\t\t\t\t\t\tAdminLogsUpdatedFieldsType.PAUSED_MARKETING_PROMOTIONS,\n\t\t\t\t\t\toldMarketing,\n\t\t\t\t\t\tmarketing\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.logMarketingAdminAction(\n\t\t\t\tadmin,\n\t\t\t\tAdminLogsUpdatedFieldsType.EDITED_MARKETING_PROMOTIONS,\n\t\t\t\toldMarketing,\n\t\t\t\tmarketing\n\t\t\t);\n\t\t}\n\n\t\treturn marketing;\n\t}\n\n\tprivate async logMarketingAdminAction(\n\t\tadmin: mongoose.Types.ObjectId,\n\t\tactionType: AdminLogsUpdatedFieldsType,\n\t\toldDocument?: any,\n\t\tnewDocument?: any\n\t) {\n\t\tconst adminActivityLogsEvent: BaseEvent<Record<string, unknown>> = new AdminActivityLogsEvent({\n\t\t\tadmin,\n\t\t\tupdatedField: actionType,\n\t\t\toldDocument: oldDocument ?? '',\n\t\t\tnewDocument: newDocument ?? '',\n\t\t});\n\t\tawait publishEvent(adminActivityLogsEvent);\n\t}\n\n\t/**\n\t * Delete record\n\t * @param data Data for delete\n\t */\n\tpublic async deleteById(data: DeleteDTO, admin?: mongoose.Types.ObjectId): Promise<string> {\n\t\tconst { _id, softDelete } = data;\n\n\t\tconst record = await this.model.findById(_id);\n\n\t\tif (!record) {\n\t\t\tthrow new TRPCError({\n\t\t\t\tcode: 'NOT_FOUND',\n\t\t\t\tmessage: 'Record not found',\n\t\t\t});\n\t\t}\n\t\tconst result = await this.model.deleteRecord({ _id, deletedAt: null }, softDelete);\n\t\tif (!result) {\n\t\t\tthrow new TRPCError({\n\t\t\t\tcode: 'INTERNAL_SERVER_ERROR',\n\t\t\t\tmessage: 'Unable to delete marketing',\n\t\t\t});\n\t\t}\n\n\t\tif (admin) {\n\t\t\tthis.logMarketingAdminAction(admin, AdminLogsUpdatedFieldsType.DELETED_MARKETING_PROMOTIONS, record);\n\t\t}\n\n\t\tproductMarketingService.deleteMany({ marketing: data._id }, data.softDelete);\n\n\t\treturn 'Record deleted successfully';\n\t}\n}\n\nexport const marketingService = Container.get(MarketingService);\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DocumentType, mongoose } from '@typegoose/typegoose';
|
|
2
|
+
import { ProductMarketing as Model } from '@lyxa.ai/core/dist/libraries/mongo/models/';
|
|
3
|
+
import { CreateProductMarketingDTO as CreateDTO, QueryProductMarketingDTO as QueryDTO, QueryMultipleProductMarketingDTO, UpdateProductMarketingDTO as UpdateDTO } from '../../marketing/validations';
|
|
4
|
+
import { FilterDTO, PaginatedResponse } from '@lyxa.ai/core/dist/utilities/validation';
|
|
5
|
+
import { ModelType } from '@typegoose/typegoose/lib/types';
|
|
6
|
+
export declare class ProductMarketingService {
|
|
7
|
+
private model;
|
|
8
|
+
constructor();
|
|
9
|
+
create(data: CreateDTO): Promise<DocumentType<Model>>;
|
|
10
|
+
findById(id: string | mongoose.Types.ObjectId): Promise<DocumentType<Model>>;
|
|
11
|
+
find(data?: Partial<FilterDTO>): Promise<PaginatedResponse<DocumentType<ModelType<Model>>>>;
|
|
12
|
+
updateOne(query: QueryDTO, data: UpdateDTO): Promise<string>;
|
|
13
|
+
deleteMany(filter: QueryDTO, softDelete: boolean): Promise<string>;
|
|
14
|
+
deleteMultipleProducts(filter: QueryMultipleProductMarketingDTO, softDelete: boolean): Promise<string>;
|
|
15
|
+
checkProductMarketingAvailability(products: mongoose.Types.ObjectId[]): Promise<boolean>;
|
|
16
|
+
}
|
|
17
|
+
export declare const productMarketingService: ProductMarketingService;
|
|
18
|
+
//# sourceMappingURL=product-marketing.service.d.ts.map
|
|
@@ -0,0 +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,EAEtC,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAa,MAAM,yCAAyC,CAAC;AAElG,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAG3D,qBACa,uBAAuB;IACnC,OAAO,CAAC,KAAK,CAAwD;;IAUxD,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAQrD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAkB5E,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IA0B3F,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB5D,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAUlE,sBAAsB,CAClC,MAAM,EAAE,gCAAgC,EACxC,UAAU,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC;IAgBL,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CA8BrG;AAED,eAAO,MAAM,uBAAuB,yBAAyC,CAAC"}
|