@lyxa.ai/marketing 1.0.68 → 1.0.69

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 (81) hide show
  1. package/dist/lib/index.js +1 -1
  2. package/dist/lib/index.js.map +1 -1
  3. package/dist/lib/modules/coupon/routers/coupon.router.d.ts +1194 -8087
  4. package/dist/lib/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  5. package/dist/lib/modules/coupon/routers/coupon.router.js +9 -22
  6. package/dist/lib/modules/coupon/routers/coupon.router.js.map +1 -1
  7. package/dist/lib/modules/coupon/services/coupon.service.d.ts +12 -2
  8. package/dist/lib/modules/coupon/services/coupon.service.d.ts.map +1 -1
  9. package/dist/lib/modules/coupon/services/coupon.service.js +271 -90
  10. package/dist/lib/modules/coupon/services/coupon.service.js.map +1 -1
  11. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts.map +1 -1
  12. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.js +1 -2
  13. package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.js.map +1 -1
  14. package/dist/lib/modules/coupon/services/patterns/repository/CouponRepository.d.ts.map +1 -1
  15. package/dist/lib/modules/coupon/services/patterns/repository/CouponRepository.js +82 -52
  16. package/dist/lib/modules/coupon/services/patterns/repository/CouponRepository.js.map +1 -1
  17. package/dist/lib/modules/coupon/transformers/coupon.transformer.d.ts +4 -2
  18. package/dist/lib/modules/coupon/transformers/coupon.transformer.d.ts.map +1 -1
  19. package/dist/lib/modules/coupon/validations/all-coupons.validation.d.ts +42 -3693
  20. package/dist/lib/modules/coupon/validations/all-coupons.validation.d.ts.map +1 -1
  21. package/dist/lib/modules/coupon/validations/all-coupons.validation.js +1 -2
  22. package/dist/lib/modules/coupon/validations/all-coupons.validation.js.map +1 -1
  23. package/dist/lib/modules/coupon/validations/create-coupon.validation.d.ts +18 -8
  24. package/dist/lib/modules/coupon/validations/create-coupon.validation.d.ts.map +1 -1
  25. package/dist/lib/modules/coupon/validations/global-coupon.validation.d.ts +18 -0
  26. package/dist/lib/modules/coupon/validations/global-coupon.validation.d.ts.map +1 -1
  27. package/dist/lib/modules/coupon/validations/global-coupon.validation.js +2 -0
  28. package/dist/lib/modules/coupon/validations/global-coupon.validation.js.map +1 -1
  29. package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.d.ts +18 -18
  30. package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.js +2 -2
  31. package/dist/lib/modules/coupon/validations/individual-store-coupon.validation.js.map +1 -1
  32. package/dist/lib/modules/deal-setting/routers/deal-setting.router.d.ts +5 -5
  33. package/dist/lib/modules/deal-setting/routers/deal-setting.router.d.ts.map +1 -1
  34. package/dist/lib/modules/featured-setting/routers/featured-setting.router.d.ts +5 -5
  35. package/dist/lib/modules/featured-setting/routers/featured-setting.router.d.ts.map +1 -1
  36. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts +1 -0
  37. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts.map +1 -1
  38. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.js +5 -0
  39. package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.js.map +1 -1
  40. package/dist/lib/modules/marketing/routers/marketing.router.d.ts +5 -5
  41. package/dist/lib/modules/marketing/routers/marketing.router.d.ts.map +1 -1
  42. package/dist/lib/modules/marketing/services/marketing.service.d.ts.map +1 -1
  43. package/dist/lib/modules/marketing/services/marketing.service.js +37 -20
  44. package/dist/lib/modules/marketing/services/marketing.service.js.map +1 -1
  45. package/dist/lib/modules/marketing/validations/punch-marketing.validation.d.ts +4 -4
  46. package/dist/lib/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +6 -6
  47. package/dist/lib/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts.map +1 -1
  48. package/dist/lib/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +2 -2
  49. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.d.ts +5 -5
  50. package/dist/lib/modules/spend-to-get-history/spend-to-get-history.router.d.ts.map +1 -1
  51. package/dist/types/modules/coupon/routers/coupon.router.d.ts +1194 -8087
  52. package/dist/types/modules/coupon/routers/coupon.router.d.ts.map +1 -1
  53. package/dist/types/modules/coupon/services/coupon.service.d.ts +12 -2
  54. package/dist/types/modules/coupon/services/coupon.service.d.ts.map +1 -1
  55. package/dist/types/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts.map +1 -1
  56. package/dist/types/modules/coupon/services/patterns/repository/CouponRepository.d.ts.map +1 -1
  57. package/dist/types/modules/coupon/transformers/coupon.transformer.d.ts +4 -2
  58. package/dist/types/modules/coupon/transformers/coupon.transformer.d.ts.map +1 -1
  59. package/dist/types/modules/coupon/validations/all-coupons.validation.d.ts +42 -3693
  60. package/dist/types/modules/coupon/validations/all-coupons.validation.d.ts.map +1 -1
  61. package/dist/types/modules/coupon/validations/create-coupon.validation.d.ts +18 -8
  62. package/dist/types/modules/coupon/validations/create-coupon.validation.d.ts.map +1 -1
  63. package/dist/types/modules/coupon/validations/global-coupon.validation.d.ts +18 -0
  64. package/dist/types/modules/coupon/validations/global-coupon.validation.d.ts.map +1 -1
  65. package/dist/types/modules/coupon/validations/individual-store-coupon.validation.d.ts +18 -18
  66. package/dist/types/modules/deal-setting/routers/deal-setting.router.d.ts +5 -5
  67. package/dist/types/modules/deal-setting/routers/deal-setting.router.d.ts.map +1 -1
  68. package/dist/types/modules/featured-setting/routers/featured-setting.router.d.ts +5 -5
  69. package/dist/types/modules/featured-setting/routers/featured-setting.router.d.ts.map +1 -1
  70. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts +1 -0
  71. package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts.map +1 -1
  72. package/dist/types/modules/marketing/routers/marketing.router.d.ts +5 -5
  73. package/dist/types/modules/marketing/routers/marketing.router.d.ts.map +1 -1
  74. package/dist/types/modules/marketing/services/marketing.service.d.ts.map +1 -1
  75. package/dist/types/modules/marketing/validations/punch-marketing.validation.d.ts +4 -4
  76. package/dist/types/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +6 -6
  77. package/dist/types/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts.map +1 -1
  78. package/dist/types/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +2 -2
  79. package/dist/types/modules/spend-to-get-history/spend-to-get-history.router.d.ts +5 -5
  80. package/dist/types/modules/spend-to-get-history/spend-to-get-history.router.d.ts.map +1 -1
  81. package/package.json +3 -2
package/dist/lib/index.js CHANGED
@@ -31,7 +31,7 @@ const marketingMicroServiceRouter = (0, trpc_1.createTRPCRouter)({
31
31
  tournamentRouter: tournament_router_1.tournamentRouter,
32
32
  });
33
33
  const startServer = async () => {
34
- const environment = (process.env.NODE_ENV || 'PREPROD');
34
+ const environment = (process.env.NODE_ENV || 'DEV');
35
35
  const tenet = process.env.TENET || 'lb';
36
36
  const port = parseInt(process.env.PORT || '3006', 10);
37
37
  await (0, core_1.bootstrapCore)({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["// index entry point for migration tracking\nimport dotenv from 'dotenv';\nimport { createServer } from 'http';\nimport { couponRouter } from '@modules/coupon/routers';\nimport { dealSettingRouter } from '@modules/deal-setting/routers';\nimport { initEventListeners } from './event/event-initializations';\nimport { referralSettingRouter } from '@modules/referral-setting/routers';\nimport { featuredSettingRouter } from '@modules/featured-setting/routers';\nimport { tournamentRouter } from '@modules/tournament/tournament.router';\nimport { bootstrapCore, EnvironmentConfigurationType } from '@lyxa.ai/core';\nimport { createLyxaContext } from '@lyxa.ai/core/dist/libraries/trpc/context';\nimport { marketingRouter } from '@modules/marketing/routers/marketing.router';\nimport { handleTRPCError } from '@lyxa.ai/core/dist/utilities/error-middleware';\nimport { corsMiddleware } from '@lyxa.ai/core/dist/libraries/trpc/middlewares/cors';\nimport { punchMarketingHistoryRouter } from '@modules/punch-marketing-history/routers';\nimport { spendToGetHistoryRouter } from '@modules/spend-to-get-history/spend-to-get-history.router';\nimport { limitedTimeOfferRouter } from '@modules/limited-time-offer/limited-time-offer.router';\nimport { createTRPCRouter, createHTTPHandler } from '@lyxa.ai/core/dist/libraries/trpc';\nimport { couponWorkerService } from '@modules/coupon/queues/coupon-notification.worker';\nimport { marketingProductSyncWorkerService } from '@modules/marketing/queues/marketing-product-sync.worker';\nimport { startBullMQWorkers as startLtoBullMQWorkers } from '@modules/limited-time-offer/campaign/jobs';\n\n// dotenv.config();\n\ntype MarketingRouters = {\n\tdealSettingRouter: typeof dealSettingRouter;\n\tfeaturedSettingRouter: typeof featuredSettingRouter;\n\tmarketingRouter: typeof marketingRouter;\n\tcouponRouter: typeof couponRouter;\n\tpunchMarketingHistoryRouter: typeof punchMarketingHistoryRouter;\n\tspendToGetHistoryRouter: typeof spendToGetHistoryRouter;\n\treferralSettingRouter: typeof referralSettingRouter;\n\tlimitedTimeOfferRouter: typeof limitedTimeOfferRouter;\n\ttournamentRouter: typeof tournamentRouter;\n};\n\nconst marketingMicroServiceRouter = createTRPCRouter<MarketingRouters>({\n\tdealSettingRouter,\n\tfeaturedSettingRouter,\n\tmarketingRouter,\n\tcouponRouter,\n\tpunchMarketingHistoryRouter,\n\tspendToGetHistoryRouter,\n\treferralSettingRouter,\n\tlimitedTimeOfferRouter,\n\ttournamentRouter,\n});\n\nconst startServer = async () => {\n\tconst environment = (process.env.NODE_ENV || 'PREPROD') as keyof typeof EnvironmentConfigurationType;\n\tconst tenet = process.env.TENET || 'lb';\n\tconst port = parseInt(process.env.PORT || '3006', 10);\n\n\tawait bootstrapCore({\n\t\tenvironment: EnvironmentConfigurationType[environment] || EnvironmentConfigurationType.PREPROD,\n\t\tinstanceType: 'marketing',\n\t\ttenet,\n\t\tmongooseDebug: false,\n\t});\n\n\tconst handler = createHTTPHandler({\n\t\trouter: marketingMicroServiceRouter,\n\t\tcreateContext: createLyxaContext,\n\t\tonError: handleTRPCError,\n\t\tmiddleware: corsMiddleware(),\n\t});\n\n\tawait initEventListeners();\n\tawait couponWorkerService.startWorker();\n\tawait marketingProductSyncWorkerService.startWorker();\n\tawait startLtoBullMQWorkers();\n\n\tcreateServer((req, res) => {\n\t\tif (req.url === '/health') {\n\t\t\tres.writeHead(200, { 'Content-Type': 'application/json' });\n\t\t\tres.end(JSON.stringify({ status: 'ok', timestamp: new Date().toISOString() }));\n\t\t\treturn;\n\t\t}\n\n\t\thandler(req, res);\n\t}).listen(port, () => {\n\t\tconst RED = '\\x1b[31m';\n\t\tconst GREEN = '\\x1b[32m';\n\t\tconst RESET = '\\x1b[0m';\n\t\tconsole.log(`${GREEN}Server started on port ${RED}${port}${GREEN} with health check endpoint${RESET}`);\n\t});\n};\n\nexport type MarketingMicroServiceRouter = typeof marketingMicroServiceRouter;\n\nstartServer().catch(err => {\n\tconsole.error('Failed to start server:', err);\n\tprocess.exit(1);\n});\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["// index entry point for migration tracking\nimport dotenv from 'dotenv';\nimport { createServer } from 'http';\nimport { couponRouter } from '@modules/coupon/routers';\nimport { dealSettingRouter } from '@modules/deal-setting/routers';\nimport { initEventListeners } from './event/event-initializations';\nimport { referralSettingRouter } from '@modules/referral-setting/routers';\nimport { featuredSettingRouter } from '@modules/featured-setting/routers';\nimport { tournamentRouter } from '@modules/tournament/tournament.router';\nimport { bootstrapCore, EnvironmentConfigurationType } from '@lyxa.ai/core';\nimport { createLyxaContext } from '@lyxa.ai/core/dist/libraries/trpc/context';\nimport { marketingRouter } from '@modules/marketing/routers/marketing.router';\nimport { handleTRPCError } from '@lyxa.ai/core/dist/utilities/error-middleware';\nimport { corsMiddleware } from '@lyxa.ai/core/dist/libraries/trpc/middlewares/cors';\nimport { punchMarketingHistoryRouter } from '@modules/punch-marketing-history/routers';\nimport { spendToGetHistoryRouter } from '@modules/spend-to-get-history/spend-to-get-history.router';\nimport { limitedTimeOfferRouter } from '@modules/limited-time-offer/limited-time-offer.router';\nimport { createTRPCRouter, createHTTPHandler } from '@lyxa.ai/core/dist/libraries/trpc';\nimport { couponWorkerService } from '@modules/coupon/queues/coupon-notification.worker';\nimport { marketingProductSyncWorkerService } from '@modules/marketing/queues/marketing-product-sync.worker';\nimport { startBullMQWorkers as startLtoBullMQWorkers } from '@modules/limited-time-offer/campaign/jobs';\n\n// dotenv.config();\n\ntype MarketingRouters = {\n\tdealSettingRouter: typeof dealSettingRouter;\n\tfeaturedSettingRouter: typeof featuredSettingRouter;\n\tmarketingRouter: typeof marketingRouter;\n\tcouponRouter: typeof couponRouter;\n\tpunchMarketingHistoryRouter: typeof punchMarketingHistoryRouter;\n\tspendToGetHistoryRouter: typeof spendToGetHistoryRouter;\n\treferralSettingRouter: typeof referralSettingRouter;\n\tlimitedTimeOfferRouter: typeof limitedTimeOfferRouter;\n\ttournamentRouter: typeof tournamentRouter;\n};\n\nconst marketingMicroServiceRouter = createTRPCRouter<MarketingRouters>({\n\tdealSettingRouter,\n\tfeaturedSettingRouter,\n\tmarketingRouter,\n\tcouponRouter,\n\tpunchMarketingHistoryRouter,\n\tspendToGetHistoryRouter,\n\treferralSettingRouter,\n\tlimitedTimeOfferRouter,\n\ttournamentRouter,\n});\n\nconst startServer = async () => {\n\tconst environment = (process.env.NODE_ENV || 'DEV') as keyof typeof EnvironmentConfigurationType;\n\tconst tenet = process.env.TENET || 'lb';\n\tconst port = parseInt(process.env.PORT || '3006', 10);\n\n\tawait bootstrapCore({\n\t\tenvironment: EnvironmentConfigurationType[environment] || EnvironmentConfigurationType.PREPROD,\n\t\tinstanceType: 'marketing',\n\t\ttenet,\n\t\tmongooseDebug: false,\n\t});\n\n\tconst handler = createHTTPHandler({\n\t\trouter: marketingMicroServiceRouter,\n\t\tcreateContext: createLyxaContext,\n\t\tonError: handleTRPCError,\n\t\tmiddleware: corsMiddleware(),\n\t});\n\n\tawait initEventListeners();\n\tawait couponWorkerService.startWorker();\n\tawait marketingProductSyncWorkerService.startWorker();\n\tawait startLtoBullMQWorkers();\n\n\tcreateServer((req, res) => {\n\t\tif (req.url === '/health') {\n\t\t\tres.writeHead(200, { 'Content-Type': 'application/json' });\n\t\t\tres.end(JSON.stringify({ status: 'ok', timestamp: new Date().toISOString() }));\n\t\t\treturn;\n\t\t}\n\n\t\thandler(req, res);\n\t}).listen(port, () => {\n\t\tconst RED = '\\x1b[31m';\n\t\tconst GREEN = '\\x1b[32m';\n\t\tconst RESET = '\\x1b[0m';\n\t\tconsole.log(`${GREEN}Server started on port ${RED}${port}${GREEN} with health check endpoint${RESET}`);\n\t});\n};\n\nexport type MarketingMicroServiceRouter = typeof marketingMicroServiceRouter;\n\nstartServer().catch(err => {\n\tconsole.error('Failed to start server:', err);\n\tprocess.exit(1);\n});\n"]}