@devx-commerce/plugin-discounts-svaraa 0.0.2-beta.1 → 0.0.2-beta.11

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 (38) hide show
  1. package/.medusa/server/src/api/admin/discounts/validators.js +16 -1
  2. package/.medusa/server/src/api/store/discounts/apply/route.js +129 -8
  3. package/.medusa/server/src/api/store/discounts/auto-apply/route.js +143 -80
  4. package/.medusa/server/src/api/store/discounts/cart-eligible-coupons/[cart_id]/route.js +23 -3
  5. package/.medusa/server/src/api/store/discounts/price-rules/route.js +49 -2
  6. package/.medusa/server/src/api/store/discounts/remove/route.js +25 -2
  7. package/.medusa/server/src/index.js +2 -1
  8. package/.medusa/server/src/lib/constant.js +5 -0
  9. package/.medusa/server/src/lib/helper.js +68 -0
  10. package/.medusa/server/src/lib/redis-utils.js +33 -0
  11. package/.medusa/server/src/lib/utils.js +11 -2
  12. package/.medusa/server/src/modules/discounts/migrations/Migration20250822052209.js +14 -0
  13. package/.medusa/server/src/modules/discounts/migrations/Migration20250825073038.js +14 -0
  14. package/.medusa/server/src/modules/discounts/migrations/Migration20250901083847.js +14 -0
  15. package/.medusa/server/src/modules/discounts/migrations/Migration20250918095658.js +14 -0
  16. package/.medusa/server/src/modules/discounts/models/price-rule.js +13 -1
  17. package/.medusa/server/src/modules/discounts/service.js +9 -7
  18. package/.medusa/server/src/subscribers/index.js +18 -0
  19. package/.medusa/server/src/subscribers/promocode-subscriber.js +77 -0
  20. package/.medusa/server/src/workflows/discount/add-more-code-in-price-rule/index.js +3 -3
  21. package/.medusa/server/src/workflows/discount/apply-coupon/index.js +36 -26
  22. package/.medusa/server/src/workflows/discount/apply-coupon/steps/apply-coupon-step.js +25 -187
  23. package/.medusa/server/src/workflows/discount/apply-coupon/steps/generate-adjustment-line-item.js +32 -8
  24. package/.medusa/server/src/workflows/discount/apply-coupon/steps/validate-coupon-step.js +3 -5
  25. package/.medusa/server/src/workflows/discount/auto-apply-coupon/steps/auto-apply-coupon.js +157 -87
  26. package/.medusa/server/src/workflows/discount/calculate-coupon-discount/index.js +36 -32
  27. package/.medusa/server/src/workflows/discount/calculate-coupon-discount/step/fetch-price-rule-by-code.js +36 -0
  28. package/.medusa/server/src/workflows/discount/create-discount-price-rule/steps/create-discount-price-rule-step.js +2 -2
  29. package/.medusa/server/src/workflows/discount/create-subscriber-to-discount-price-rule.js +10 -0
  30. package/.medusa/server/src/workflows/discount/get-cart-eligible-coupons/index.js +2 -1
  31. package/.medusa/server/src/workflows/discount/get-cart-eligible-coupons/step/get-cart-eligible-coupon.js +33 -10
  32. package/.medusa/server/src/workflows/discount/index.js +4 -1
  33. package/.medusa/server/src/workflows/discount/remove-coupon/index.js +19 -2
  34. package/.medusa/server/src/workflows/discount/remove-coupon/step/remove-coupon-step.js +45 -26
  35. package/.medusa/server/src/workflows/discount/update-coupon-code-stats/index.js +12 -0
  36. package/.medusa/server/src/workflows/discount/update-coupon-code-stats/step/update-coupon-code-stats.js +52 -0
  37. package/.medusa/server/src/workflows/discount/update-discount-price-rule/index.js +1 -3
  38. package/package.json +1 -1
@@ -5,114 +5,184 @@ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
5
  const apply_coupon_1 = require("../../apply-coupon");
6
6
  const calculate_coupon_discount_1 = require("../../calculate-coupon-discount");
7
7
  const remove_coupon_1 = require("../../remove-coupon");
8
+ const utils_1 = require("../../../../lib/utils");
9
+ const utils_2 = require("@medusajs/framework/utils");
10
+ const redis_utils_1 = require("../../../../lib/redis-utils");
8
11
  exports.autoApplyCouponStep = (0, workflows_sdk_1.createStep)("auto-apply-coupon", async (input, { container }) => {
9
- const query = container.resolve("query");
10
- const logger = container.resolve("logger");
11
- logger.setLogLevel(process.env.LOG_LEVEL || "error");
12
- logger.debug("[auto-apply-coupon] input:" + JSON.stringify(input, null, 2));
13
- const { data: priceRules } = await query.graph({
14
- entity: "discount_price_rule",
12
+ const query = container.resolve(utils_2.ContainerRegistrationKeys.QUERY);
13
+ const cache = container.resolve(utils_2.Modules.CACHE);
14
+ const userId = input.customerId;
15
+ // -----------------------------
16
+ // 1. Fetch cart once (avoid re-query inside workflows)
17
+ // -----------------------------
18
+ const { data: [cart], } = await query.graph({
19
+ entity: "cart",
20
+ fields: [
21
+ "*",
22
+ "items.*",
23
+ "items.adjustments.*",
24
+ "items.variant.*",
25
+ "items.variant.prices.*",
26
+ "items.variant.extended_variant.*",
27
+ "items.variant.extended_variant.party_style_details.*",
28
+ ],
29
+ filters: { id: { $eq: input.cart_id } },
30
+ pagination: { take: 1 },
31
+ });
32
+ // -----------------------------
33
+ // 2. Build filters (birthday / anniversary / guest)
34
+ // -----------------------------
35
+ let filters = {};
36
+ if (userId) {
37
+ const { data: customer } = await query.graph({
38
+ entity: "customer",
39
+ fields: ["metadata"],
40
+ filters: { id: userId },
41
+ pagination: { take: 1 },
42
+ });
43
+ const externalId = customer?.[0]?.metadata?.external_id;
44
+ if (externalId) {
45
+ const { data: ext } = await query.graph({
46
+ entity: "extended_customer",
47
+ fields: ["birth_date", "anniversary_date"],
48
+ filters: { external_id: externalId },
49
+ });
50
+ const todayIST = (0, utils_1.getISTMonthDay)(new Date());
51
+ const bday = ext?.[0]?.birth_date;
52
+ const anniv = ext?.[0]?.anniversary_date;
53
+ const isBirthday = bday && (0, utils_1.getISTMonthDay)(bday) === todayIST;
54
+ const isAnniversary = anniv && (0, utils_1.getISTMonthDay)(anniv) === todayIST;
55
+ if (isBirthday || isAnniversary) {
56
+ filters.$or = [
57
+ ...(isBirthday ? [{ is_birthday: true }] : []),
58
+ ...(isAnniversary ? [{ is_anniversary: true }] : []),
59
+ { is_birthday: false, is_anniversary: false },
60
+ ];
61
+ }
62
+ else {
63
+ filters.is_birthday = false;
64
+ filters.is_anniversary = false;
65
+ }
66
+ }
67
+ }
68
+ else {
69
+ filters = {
70
+ usage_limit: "UNLIMITED",
71
+ is_birthday: false,
72
+ is_anniversary: false,
73
+ };
74
+ }
75
+ // -----------------------------
76
+ // 3. Fetch auto-apply rules (cached with filters)
77
+ // -----------------------------
78
+ const rulesCacheKey = (0, redis_utils_1.buildRedisKey)("discount_price_rule", {
15
79
  fields: ["*"],
16
- filters: { auto_apply: true },
80
+ filters: { ...filters, auto_apply: true },
17
81
  });
18
- const discounts = await Promise.allSettled(priceRules.map(async (priceRule) => {
82
+ let priceRules = (await cache.get(rulesCacheKey));
83
+ if (!priceRules) {
84
+ const { data } = await query.graph({
85
+ entity: "discount_price_rule",
86
+ fields: ["*"],
87
+ filters: { ...filters, auto_apply: true },
88
+ });
89
+ priceRules = data;
90
+ await cache.set(rulesCacheKey, data, redis_utils_1.CACHE_VALIDATION_TIMES.PRICE_RULE);
91
+ }
92
+ // -----------------------------
93
+ // 4. Pick the best discount among all rules
94
+ // -----------------------------
95
+ const discounts = await Promise.allSettled(priceRules.map(async (rule) => {
19
96
  let code = null;
20
- if (!priceRule.prefix)
21
- code = priceRule.discount_code;
97
+ if (!rule.prefix) {
98
+ code = rule.discount_code;
99
+ }
22
100
  else {
23
- const { data: codes } = await query.graph({
24
- entity: "discount_code",
25
- fields: ["*"],
101
+ const codeCacheKey = (0, redis_utils_1.buildRedisKey)("discount_code", {
102
+ fields: ["code"],
26
103
  filters: {
27
104
  $and: [
28
- { price_rule_id: { $eq: priceRule.id } },
29
- { usage_limit: 0 },
105
+ { price_rule_id: { $eq: rule.id } },
106
+ ...((rule.usage_limit_per_customer_type === "SPECIFIC" || rule.usage_limit_per_customer_type === "ONLY_ONCE")
107
+ ? [{ usage_count: 0 }]
108
+ : []),
30
109
  ],
31
110
  },
111
+ pagination: { take: 1 },
32
112
  });
33
- if (codes.length > 0)
34
- code = codes[0].code;
35
- else
36
- return { discount: 0 };
37
- }
38
- const { result: { discount }, } = await (0, calculate_coupon_discount_1.calculateCouponDiscountWorkflow)(container).run({
39
- input: {
40
- cart_id: input.cart_id,
41
- code: code,
42
- customerId: input.customerId,
43
- },
44
- });
45
- return { discount, code };
46
- }));
47
- let currentDiscount = 0;
48
- let currentCode = "";
49
- logger.debug("discounts: >>>>>>>>>> " + JSON.stringify(discounts, null, 2));
50
- discounts.forEach((discount) => {
51
- if (discount.status === "fulfilled") {
52
- if (currentDiscount > 0 && currentDiscount > discount.value.discount) {
53
- return;
113
+ let cachedCode = (await cache.get(codeCacheKey));
114
+ if (!cachedCode) {
115
+ const { data } = await query.graph({
116
+ entity: "discount_code",
117
+ fields: ["code"],
118
+ filters: {
119
+ $and: [
120
+ { price_rule_id: { $eq: rule.id } },
121
+ ...((rule.usage_limit_per_customer_type === "SPECIFIC" || rule.usage_limit_per_customer_type === "ONLY_ONCE")
122
+ ? [{ usage_count: 0 }]
123
+ : []),
124
+ ],
125
+ },
126
+ pagination: { take: 1,
127
+ order: {
128
+ created_at: "DESC"
129
+ },
130
+ },
131
+ });
132
+ cachedCode = data;
133
+ await cache.set(codeCacheKey, cachedCode, redis_utils_1.CACHE_VALIDATION_TIMES.DISCOUNT_CODE);
54
134
  }
55
- currentDiscount = discount.value.discount;
56
- currentCode = discount.value.code || "";
135
+ if (cachedCode.length > 0)
136
+ code = cachedCode[0].code;
57
137
  }
58
- });
59
- const moreCouponToTest = [];
60
- const { data: [cart] } = await query.graph({
61
- entity: "cart",
62
- fields: ["*", "items.*", "items.adjustments.*"],
63
- filters: { id: { $eq: input.cart_id } },
64
- });
65
- logger.debug("cart.items: " + JSON.stringify(cart.items, null, 2));
66
- for (const item of cart?.items) {
67
- for (const adjustmentLineItem of item.adjustments) {
68
- moreCouponToTest.push(adjustmentLineItem.code);
69
- }
70
- }
71
- logger.debug("moreCouponToTest: " + JSON.stringify(Array.from(new Set(moreCouponToTest)), null, 2));
72
- for (const coupon of Array.from(new Set(moreCouponToTest))) {
73
- const { result: { discount }, } = await (0, calculate_coupon_discount_1.calculateCouponDiscountWorkflow)(container).run({
138
+ if (!code)
139
+ return { discount: 0 };
140
+ const { result: { discount, adjustmentLineItems }, } = await (0, calculate_coupon_discount_1.calculateCouponDiscountWorkflow)(container).run({
74
141
  input: {
142
+ cart,
75
143
  cart_id: input.cart_id,
76
- code: coupon,
77
- customerId: input.customerId,
144
+ code,
145
+ customerId: userId,
78
146
  },
79
- throwOnError: false
80
147
  });
81
- if (discount > currentDiscount) {
82
- currentDiscount = discount;
83
- currentCode = coupon || "";
148
+ return { discount, code, adjustmentLineItems };
149
+ }));
150
+ let bestDiscount = 0;
151
+ let bestCode = null;
152
+ let bestAdjustments = [];
153
+ for (const d of discounts) {
154
+ if (d.status === "fulfilled" && d.value.discount > bestDiscount) {
155
+ bestDiscount = d.value.discount;
156
+ bestCode = d.value.code || "";
157
+ bestAdjustments = d.value.adjustmentLineItems;
84
158
  }
85
159
  }
86
- if (!currentCode || !currentDiscount) {
87
- await (0, remove_coupon_1.removeCouponWorkflow)(container).run({
88
- input: { cart_id: input.cart_id, }
89
- });
160
+ // -----------------------------
161
+ // 5. Apply or remove coupon
162
+ // -----------------------------
163
+ if (!bestCode || bestDiscount <= 0) {
164
+ await (0, remove_coupon_1.removeCouponWorkflow)(container).run({ input: { cart_id: input.cart_id } });
165
+ return new workflows_sdk_1.StepResponse({ discount: 0, code: "", isApplied: false });
90
166
  }
91
- else if (currentCode) {
92
- const { result } = await (0, apply_coupon_1.applyCouponWorkflow)(container).run({
93
- input: {
94
- code: currentCode,
95
- cart_id: input.cart_id,
96
- customerId: input.customerId,
167
+ const { result } = await (0, apply_coupon_1.applyCouponWorkflow)(container).run({
168
+ input: {
169
+ cart,
170
+ code: bestCode,
171
+ cart_id: input.cart_id,
172
+ customerId: userId,
173
+ calculateCouponDiscountResponse: {
174
+ adjustmentLineItems: bestAdjustments,
175
+ discount: bestDiscount,
97
176
  },
98
- });
99
- if (!result) {
100
- return new workflows_sdk_1.StepResponse({
101
- discount: 0,
102
- code: "",
103
- isApplied: false,
104
- });
105
- }
106
- return new workflows_sdk_1.StepResponse({
107
- discount: currentDiscount,
108
- code: currentCode,
109
- isApplied: true,
110
- });
177
+ },
178
+ });
179
+ if (!result) {
180
+ return new workflows_sdk_1.StepResponse({ discount: 0, code: "", isApplied: false });
111
181
  }
112
182
  return new workflows_sdk_1.StepResponse({
113
- discount: 0,
114
- code: "",
115
- isApplied: false,
183
+ discount: bestDiscount,
184
+ code: bestCode,
185
+ isApplied: true,
116
186
  });
117
187
  });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1hcHBseS1jb3Vwb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2F1dG8tYXBwbHktY291cG9uL3N0ZXBzL2F1dG8tYXBwbHktY291cG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUM3RSxxREFBeUQ7QUFDekQsK0VBQWtGO0FBQ2xGLHVEQUEyRDtBQUU5QyxRQUFBLG1CQUFtQixHQUFHLElBQUEsMEJBQVUsRUFDM0MsbUJBQW1CLEVBQ25CLEtBQUssRUFBRSxLQUErQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUN2RSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFM0MsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsQ0FBQztJQUVyRCxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTVFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzdDLE1BQU0sRUFBRSxxQkFBcUI7UUFDN0IsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDO1FBQ2IsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTtLQUM5QixDQUFDLENBQUM7SUFFSCxNQUFNLFNBQVMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQ3hDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFO1FBQ2pDLElBQUksSUFB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
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1hcHBseS1jb3Vwb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2F1dG8tYXBwbHktY291cG9uL3N0ZXBzL2F1dG8tYXBwbHktY291cG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE0RTtBQUM1RSxxREFBd0Q7QUFDeEQsK0VBQWlGO0FBQ2pGLHVEQUEwRDtBQUMxRCxpREFBc0Q7QUFDdEQscURBQThFO0FBQzlFLDZEQUFtRjtBQUV0RSxRQUFBLG1CQUFtQixHQUFHLElBQUEsMEJBQVUsRUFDM0MsbUJBQW1CLEVBQ25CLEtBQUssRUFBRSxLQUErQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUN2RSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRTlDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUE7SUFFL0IsZ0NBQWdDO0lBQ2hDLHVEQUF1RDtJQUN2RCxnQ0FBZ0M7SUFDaEMsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUNiLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFO1lBQ04sR0FBRztZQUNILFNBQVM7WUFDVCxxQkFBcUI7WUFDckIsaUJBQWlCO1lBQ2pCLHdCQUF3QjtZQUN4QixrQ0FBa0M7WUFDbEMsc0RBQXNEO1NBQ3ZEO1FBQ0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUN2QyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxF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
@@ -2,14 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.calculateCouponDiscountWorkflow = void 0;
4
4
  const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
- const core_flows_1 = require("@medusajs/medusa/core-flows");
5
+ const zod_1 = require("zod");
6
+ const utils_1 = require("../../../lib/utils");
6
7
  const throw_error_step_1 = require("../../steps/throw-error-step");
7
8
  const apply_coupon_step_1 = require("../apply-coupon/steps/apply-coupon-step");
8
9
  const validate_coupon_step_1 = require("../apply-coupon/steps/validate-coupon-step");
9
- const utils_1 = require("../../../lib/utils");
10
+ const fetch_price_rule_by_code_1 = require("./step/fetch-price-rule-by-code");
10
11
  exports.calculateCouponDiscountWorkflow = (0, workflows_sdk_1.createWorkflow)("calculate-coupon-discount", (input) => {
11
- const { data: priceRules } = (0, core_flows_1.useQueryGraphStep)({
12
- entity: "discount_price_rule",
12
+ // ----------------------------------
13
+ // 1. Fetch price rule (can later move to Redis cache)
14
+ // ----------------------------------
15
+ const priceRule = (0, fetch_price_rule_by_code_1.fetchPriceRuleByCodeStep)({
16
+ code: input.code,
13
17
  fields: [
14
18
  "*",
15
19
  "product_categories.*",
@@ -17,59 +21,59 @@ exports.calculateCouponDiscountWorkflow = (0, workflows_sdk_1.createWorkflow)("c
17
21
  "product_categories.products.id",
18
22
  "customers.*",
19
23
  ],
20
- filters: { discount_codes: { code: input.code } },
24
+ pagination: { take: 1 },
21
25
  });
22
- const { data: carts } = (0, core_flows_1.useQueryGraphStep)({
23
- entity: "cart",
24
- fields: [
25
- "*",
26
- "items.*",
27
- "items.variant.*",
28
- "items.variant.prices.*",
29
- "items.variant.extended_variant.mrp",
30
- "items.variant.extended_variant.party_style_details.*",
31
- ],
32
- filters: { id: input.cart_id },
33
- options: { throwIfKeyNotFound: true },
34
- }).config({ name: "get-cart" });
35
- const cart = (0, workflows_sdk_1.transform)({ carts }, ({ carts }) => {
36
- let cart = carts[0];
26
+ // ----------------------------------
27
+ // 2. Transform cart (remove freebies)
28
+ // ----------------------------------
29
+ const cart = (0, workflows_sdk_1.transform)({ cart: input.cart }, ({ cart }) => {
37
30
  return {
38
31
  ...cart,
39
32
  items: cart?.items?.filter((item) => item?.metadata?.item_type != utils_1.ProductType.Values.FREEBIE) || [],
40
33
  };
41
34
  });
42
- const priceRule = (0, workflows_sdk_1.transform)({ priceRules }, ({ priceRules }) => priceRules[0]);
35
+ // ----------------------------------
36
+ // 3. Validate coupon
37
+ // ----------------------------------
43
38
  const validationResult = (0, validate_coupon_step_1.validateCouponStep)({
44
- priceRule,
39
+ priceRule: priceRule,
45
40
  code: input.code,
46
- cart,
41
+ cart: cart,
47
42
  customerId: input.customerId,
48
43
  });
49
- (0, workflows_sdk_1.when)(validationResult, ({ hasError }) => {
50
- return hasError;
51
- }).then(() => {
44
+ (0, workflows_sdk_1.when)(validationResult, ({ hasError }) => hasError).then(() => {
52
45
  (0, throw_error_step_1.throwErrorStep)({ errorMessage: validationResult.message }).config({
53
46
  name: "throw-error-validate-coupon",
54
47
  });
55
48
  });
49
+ // ----------------------------------
50
+ // 4. Hook for max cap % (extensible logic)
51
+ // ----------------------------------
52
+ const setDiscountMaxCapPercent = (0, workflows_sdk_1.createHook)("setDiscountMaxCapPercent", { priceRule }, { resultValidator: zod_1.z.object({ discountMaxCapPercent: zod_1.z.number() }) });
53
+ const setDiscountMaxCapPercentResult = setDiscountMaxCapPercent.getResult();
54
+ // ----------------------------------
55
+ // 5. Calculate discount
56
+ // ----------------------------------
56
57
  const calculateDiscountResult = (0, apply_coupon_step_1.calculateDiscount)({
57
- priceRule,
58
+ priceRule: priceRule,
58
59
  code: input.code,
59
- cart,
60
+ cart: cart,
60
61
  });
61
- (0, workflows_sdk_1.when)(calculateDiscountResult, ({ hasError }) => {
62
- return hasError;
63
- }).then(() => {
62
+ (0, workflows_sdk_1.when)(calculateDiscountResult, ({ hasError }) => hasError).then(() => {
64
63
  (0, throw_error_step_1.throwErrorStep)({ errorMessage: calculateDiscountResult.message }).config({
65
64
  name: "throw-error-calculate-discount",
66
65
  });
67
66
  });
67
+ // ----------------------------------
68
+ // 6. Return result
69
+ // ----------------------------------
68
70
  return new workflows_sdk_1.WorkflowResponse({
69
71
  discount: calculateDiscountResult.discount,
70
72
  isApplied: calculateDiscountResult.isApplied,
71
73
  message: calculateDiscountResult.message,
72
74
  adjustmentLineItems: calculateDiscountResult.adjustmentLineItems,
75
+ isMaxCapHit: calculateDiscountResult.isMaxCapHit,
76
+ applicablePaymentMode: calculateDiscountResult.applicablePaymentMode,
73
77
  });
74
78
  });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2NhbGN1bGF0ZS1jb3Vwb24tZGlzY291bnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBSzJDO0FBQzNDLDREQUFnRTtBQUdoRSxtRUFBOEQ7QUFDOUQsK0VBQTRFO0FBQzVFLHFGQUFnRjtBQUNoRiw4Q0FBaUQ7QUFFcEMsUUFBQSwrQkFBK0IsR0FBRyxJQUFBLDhCQUFjLEVBQzNELDJCQUEyQixFQUMzQixDQUFDLEtBQXlFLEVBQUUsRUFBRTtJQUM1RSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDN0MsTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixNQUFNLEVBQUU7WUFDTixHQUFHO1lBQ0gsc0JBQXNCO1lBQ3RCLG9CQUFvQjtZQUNwQixnQ0FBZ0M7WUFDaEMsYUFBYTtTQUNkO1FBQ0QsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRTtLQUNsRCxDQUFDLENBQUM7SUFFSCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDeEMsTUFBTSxFQUFFLE1BQU07UUFDZCxNQUFNLEVBQUU7WUFDTixHQUFHO1lBQ0gsU0FBUztZQUNULGlCQUFpQjtZQUNqQix3QkFBd0I7WUFDeEIsb0NBQW9DO1lBQ3BDLHNEQUFzRDtTQUN2RDtRQUNELE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFO1FBQzlCLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRTtLQUN0QyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFFaEMsTUFBTSxJQUFJLEdBQUcsSUFBQSx5QkFBUyxFQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUMsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXBCLE9BQU87WUFDTCxHQUFHLElBQUk7WUFDUCxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQ3hCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsSUFBSSxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQ2xFLElBQUksRUFBRTtTQUNSLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sU0FBUyxHQUFHLElBQUEseUJBQVMsRUFDekIsRUFBRSxVQUFVLEVBQUUsRUFDZCxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQTBCLENBQzNELENBQUM7SUFFRixNQUFNLGdCQUFnQixHQUFHLElBQUEseUNBQWtCLEVBQUM7UUFDMUMsU0FBUztRQUNULElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtRQUNoQixJQUFJO1FBQ0osVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO0tBQzdCLENBQUMsQ0FBQztJQUVILElBQUEsb0JBQUksRUFBQyxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtRQUN0QyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1gsSUFBQSxpQ0FBYyxFQUFDLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ2hFLElBQUksRUFBRSw2QkFBNkI7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLHVCQUF1QixHQUFHLElBQUEscUNBQWlCLEVBQUM7UUFDaEQsU0FBUztRQUNULElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtRQUNoQixJQUFJO0tBQ0wsQ0FBQyxDQUFDO0lBRUgsSUFBQSxvQkFBSSxFQUFDLHVCQUF1QixFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO1FBQzdDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDWCxJQUFBLGlDQUFjLEVBQUMsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDdkUsSUFBSSxFQUFFLGdDQUFnQztTQUN2QyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQztRQUMxQixRQUFRLEVBQUUsdUJBQXVCLENBQUMsUUFBUTtRQUMxQyxTQUFTLEVBQUUsdUJBQXVCLENBQUMsU0FBUztRQUM1QyxPQUFPLEVBQUUsdUJBQXVCLENBQUMsT0FBTztRQUN4QyxtQkFBbUIsRUFBRSx1QkFBdUIsQ0FBQyxtQkFBbUI7S0FDakUsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUNGLENBQUMifQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2NhbGN1bGF0ZS1jb3Vwb24tZGlzY291bnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBTTJDO0FBQzNDLDZCQUF3QjtBQVF4Qiw4Q0FBaUQ7QUFDakQsbUVBQThEO0FBQzlELCtFQUE0RTtBQUM1RSxxRkFBZ0Y7QUFDaEYsOEVBQTJFO0FBRTlELFFBQUEsK0JBQStCLEdBQUcsSUFBQSw4QkFBYyxFQUMzRCwyQkFBMkIsRUFDM0IsQ0FBQyxLQW9CQSxFQUFFLEVBQUU7SUFDSCxxQ0FBcUM7SUFDckMsc0RBQXNEO0lBQ3RELHFDQUFxQztJQUNyQyxNQUFNLFNBQVMsR0FBRyxJQUFBLG1EQUF3QixFQUFDO1FBQ3pDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtRQUNoQixNQUFNLEVBQUU7WUFDTixHQUFHO1lBQ0gsc0JBQXNCO1lBQ3RCLG9CQUFvQjtZQUNwQixnQ0FBZ0M7WUFDaEMsYUFBYTtTQUNkO1FBQ0QsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtLQUN4QixDQUFDLENBQUM7SUFFSCxxQ0FBcUM7SUFDckMsc0NBQXNDO0lBQ3RDLHFDQUFxQztJQUNyQyxNQUFNLElBQUksR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO1FBQ3hELE9BQU87WUFDTCxHQUFHLElBQUk7WUFDUCxLQUFLLEVBQ0gsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQ2pCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsSUFBSSxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQ2xFLElBQUksRUFBRTtTQUNWLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILHFDQUFxQztJQUNyQyxxQkFBcUI7SUFDckIscUNBQXFDO0lBQ3JDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSx5Q0FBa0IsRUFBQztRQUMxQyxTQUFTLEVBQUUsU0FBZ0I7UUFDM0IsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1FBQ2hCLElBQUksRUFBRSxJQUFXO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtLQUM3QixDQUFDLENBQUM7SUFFSCxJQUFBLG9CQUFJLEVBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQzNELElBQUEsaUNBQWMsRUFBQyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNoRSxJQUFJLEVBQUUsNkJBQTZCO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgscUNBQXFDO0lBQ3JDLDJDQUEyQztJQUMzQyxxQ0FBcUM7SUFDckMsTUFBTSx3QkFBd0IsR0FBRyxJQUFBLDBCQUFVLEVBQ3pDLDBCQUEwQixFQUMxQixFQUFFLFNBQVMsRUFBRSxFQUNiLEVBQUUsZUFBZSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQ3JFLENBQUM7SUFFRixNQUFNLDhCQUE4QixHQUFHLHdCQUF3QixDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRTVFLHFDQUFxQztJQUNyQyx3QkFBd0I7SUFDeEIscUNBQXFDO0lBQ3JDLE1BQU0sdUJBQXVCLEdBQUcsSUFBQSxxQ0FBaUIsRUFBQztRQUNoRCxTQUFTLEVBQUUsU0FBZ0I7UUFDM0IsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1FBQ2hCLElBQUksRUFBRSxJQUFXO0tBQ2xCLENBQUMsQ0FBQztJQUVILElBQUEsb0JBQUksRUFBQyx1QkFBdUIsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDbEUsSUFBQSxpQ0FBYyxFQUFDLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3ZFLElBQUksRUFBRSxnQ0FBZ0M7U0FDdkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxxQ0FBcUM7SUFDckMsbUJBQW1CO0lBQ25CLHFDQUFxQztJQUNyQyxPQUFPLElBQUksZ0NBQWdCLENBQUM7UUFDMUIsUUFBUSxFQUFFLHVCQUF1QixDQUFDLFFBQVE7UUFDMUMsU0FBUyxFQUFFLHVCQUF1QixDQUFDLFNBQVM7UUFDNUMsT0FBTyxFQUFFLHVCQUF1QixDQUFDLE9BQU87UUFDeEMsbUJBQW1CLEVBQUUsdUJBQXVCLENBQUMsbUJBQW1CO1FBQ2hFLFdBQVcsRUFBRSx1QkFBdUIsQ0FBQyxXQUFXO1FBQ2hELHFCQUFxQixFQUFFLHVCQUF1QixDQUFDLHFCQUFxQjtLQUNyRSxDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchPriceRuleByCodeStep = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ const redis_utils_1 = require("../../../../lib/redis-utils");
7
+ /**
8
+ * Fetches a discount price rule by code.
9
+ * Input: { code: string }
10
+ * Output: { priceRule: any }
11
+ */
12
+ exports.fetchPriceRuleByCodeStep = (0, workflows_sdk_1.createStep)("fetch-price-rule-by-code", async (input, { container }) => {
13
+ // console.time(`fetchPriceRuleByCode-${input.code}`);
14
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
15
+ const cache = container.resolve(utils_1.Modules.CACHE);
16
+ const key = (0, redis_utils_1.buildRedisKey)("discount_price_rule", input);
17
+ // console.time(`fetchPriceRuleByCode-cache-${input.code}`);
18
+ let priceRule = await cache.get(key);
19
+ // console.timeEnd(`fetchPriceRuleByCode-cache-${input.code}`);
20
+ if (priceRule) {
21
+ // console.timeEnd(`fetchPriceRuleByCode-${input.code}`);
22
+ return new workflows_sdk_1.StepResponse(priceRule);
23
+ }
24
+ // console.time(`fetchPriceRuleByCode-db-${input.code}`);
25
+ const { data: priceRules } = await query.graph({
26
+ entity: "discount_price_rule",
27
+ fields: input.fields,
28
+ filters: { discount_codes: { code: input.code } },
29
+ ...(input.pagination && { pagination: input.pagination }),
30
+ });
31
+ // console.timeEnd(`fetchPriceRuleByCode-db-${input.code}`);
32
+ await cache.set(key, priceRules[0], redis_utils_1.CACHE_VALIDATION_TIMES.PRICE_RULE);
33
+ // console.timeEnd(`fetchPriceRuleByCode-${input.code}`);
34
+ return new workflows_sdk_1.StepResponse(priceRules[0] || null);
35
+ });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtcHJpY2UtcnVsZS1ieS1jb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9kaXNjb3VudC9jYWxjdWxhdGUtY291cG9uLWRpc2NvdW50L3N0ZXAvZmV0Y2gtcHJpY2UtcnVsZS1ieS1jb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUErRTtBQUMvRSxxRUFBNkU7QUFDN0UsNkRBR3FDO0FBR3JDOzs7O0dBSUc7QUFDVSxRQUFBLHdCQUF3QixHQUFHLElBQUEsMEJBQVUsRUFDaEQsMEJBQTBCLEVBQzFCLEtBQUssRUFDSCxLQUF3RSxFQUN4RSxFQUFFLFNBQVMsRUFBRSxFQUNiLEVBQUU7SUFDRixzREFBc0Q7SUFDdEQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUUvQyxNQUFNLEdBQUcsR0FBRyxJQUFBLDJCQUFhLEVBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEQsNERBQTREO0lBQzVELElBQUksU0FBUyxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQywrREFBK0Q7SUFFL0QsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLHlEQUF5RDtRQUN6RCxPQUFPLElBQUksNEJBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQseURBQXlEO0lBQ3pELE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzdDLE1BQU0sRUFBRSxxQkFBcUI7UUFDN0IsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1FBQ3BCLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDakQsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO0tBQzFELENBQUMsQ0FBQztJQUNILDREQUE0RDtJQUU1RCxNQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxvQ0FBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV2RSx5REFBeUQ7SUFDekQsT0FBTyxJQUFJLDRCQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FDRixDQUFDIn0=
@@ -25,7 +25,7 @@ exports.createDiscountPriceRuleStep = (0, workflows_sdk_1.createStep)("create-di
25
25
  ends_at: input.ends_at ? new Date(input.ends_at) : null,
26
26
  starts_at: new Date(input.starts_at),
27
27
  status,
28
- code_count: input.prefix ? 0 : 1,
28
+ code_count: input.prefix ? 0 : input.code_count || 1,
29
29
  applies_on_components: applies_on_components && applies_on_components.length > 0
30
30
  ? applies_on_components[0]
31
31
  : null,
@@ -59,4 +59,4 @@ exports.createDiscountPriceRuleStep = (0, workflows_sdk_1.createStep)("create-di
59
59
  const link = container.resolve("link");
60
60
  await link.delete({ [discounts_1.DISCOUNT_MODULE]: { discount_price_rule_id: id } });
61
61
  });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRpc2NvdW50LXByaWNlLXJ1bGUtc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvZGlzY291bnQvY3JlYXRlLWRpc2NvdW50LXByaWNlLXJ1bGUvc3RlcHMvY3JlYXRlLWRpc2NvdW50LXByaWNlLXJ1bGUtc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBb0Q7QUFDcEQscUVBQTZFO0FBRzdFLDZEQUFnRTtBQU9uRCxRQUFBLDJCQUEyQixHQUFHLElBQUEsMEJBQVUsRUFDbkQsNEJBQTRCLEVBQzVCLEtBQUssRUFBRSxLQUFnQixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUN4Qyw4RUFBOEU7SUFDOUUsTUFBTSxFQUNKLEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsOEJBQThCLEVBQzlCLHVCQUF1QixFQUN2QixHQUFHLGNBQWMsRUFDbEIsR0FBRyxLQUFLLENBQUM7SUFFVixNQUFNLHdCQUF3QixHQUM1QixTQUFTLENBQUMsT0FBTyxDQUFDLDJCQUFlLENBQUMsQ0FBQztJQUVyQyxJQUFJLE1BQU0sR0FBdUMsUUFBUSxDQUFDO0lBRTFELE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRTlELElBQUksTUFBTSxJQUFJLE1BQU0sR0FBRyxHQUFHO1FBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztTQUMxQyxJQUFJLFFBQVEsR0FBRyxHQUFHO1FBQUUsTUFBTSxHQUFHLFdBQVcsQ0FBQzs7UUFDekMsTUFBTSxH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
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRpc2NvdW50LXByaWNlLXJ1bGUtc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvZGlzY291bnQvY3JlYXRlLWRpc2NvdW50LXByaWNlLXJ1bGUvc3RlcHMvY3JlYXRlLWRpc2NvdW50LXByaWNlLXJ1bGUtc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBb0Q7QUFDcEQscUVBQTZFO0FBRzdFLDZEQUFnRTtBQU9uRCxRQUFBLDJCQUEyQixHQUFHLElBQUEsMEJBQVUsRUFDbkQsNEJBQTRCLEVBQzVCLEtBQUssRUFBRSxLQUFnQixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUN4Qyw4RUFBOEU7SUFDOUUsTUFBTSxFQUNKLEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsOEJBQThCLEVBQzlCLHVCQUF1QixFQUN2QixHQUFHLGNBQWMsRUFDbEIsR0FBRyxLQUFLLENBQUM7SUFFVixNQUFNLHdCQUF3QixHQUM1QixTQUFTLENBQUMsT0FBTyxDQUFDLDJCQUFlLENBQUMsQ0FBQztJQUVyQyxJQUFJLE1BQU0sR0FBdUMsUUFBUSxDQUFDO0lBRTFELE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRTlELElBQUksTUFBTSxJQUFJLE1BQU0sR0FBRyxHQUFHO1FBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztTQUMxQyxJQUFJLFFBQVEsR0FBRyxHQUFHO1FBQUUsTUFBTSxHQUFHLFdBQVcsQ0FBQzs7UUFDekMsTUFBTSxH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
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSubScriberToDiscountPriceRuleWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const create_discount_price_rule_step_1 = require("./create-discount-price-rule/steps/create-discount-price-rule-step");
6
+ exports.createSubScriberToDiscountPriceRuleWorkflow = (0, workflows_sdk_1.createWorkflow)("create-discount-price-rule-workflow", (input) => {
7
+ const discountCode = (0, create_discount_price_rule_step_1.createDiscountPriceRuleStep)(input);
8
+ return new workflows_sdk_1.WorkflowResponse(discountCode);
9
+ });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXN1YnNjcmliZXItdG8tZGlzY291bnQtcHJpY2UtcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvZGlzY291bnQvY3JlYXRlLXN1YnNjcmliZXItdG8tZGlzY291bnQtcHJpY2UtcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFHMkM7QUFDM0Msd0hBQWdIO0FBR25HLFFBQUEsMkNBQTJDLEdBQUcsSUFBQSw4QkFBYyxFQUN2RSxxQ0FBcUMsRUFDckMsQ0FBQyxLQUE2QixFQUFFLEVBQUU7SUFDaEMsTUFBTSxZQUFZLEdBQUssSUFBQSw2REFBMkIsRUFBQyxLQUFLLENBQUMsQ0FBQTtJQUN6RCxPQUFPLElBQUksZ0NBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUNGLENBQUEifQ==
@@ -9,7 +9,8 @@ exports.getCartEligibleCouponsWorkflow = (0, workflows_sdk_1.createWorkflow)("ge
9
9
  const getCartEligibleCoupons = (0, get_cart_eligible_coupon_1.getCartEligibleCouponsStep)({
10
10
  cart_id: input.cart_id,
11
11
  customerId: input.customerId,
12
+ cart: input.cart,
12
13
  });
13
14
  return new workflows_sdk_1.WorkflowResponse(getCartEligibleCoupons);
14
15
  });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2dldC1jYXJ0LWVsaWdpYmxlLWNvdXBvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBSTJDO0FBRTNDLHdFQUFtRTtBQUNuRSw4RUFBNkU7QUFFaEUsUUFBQSw4QkFBOEIsR0FBRyxJQUFBLDhCQUFjLEVBQzFELDJCQUEyQixFQUMzQixDQUFDLEtBQStDLEVBQUUsRUFBRTtJQUVsRCxJQUFBLHlDQUFrQixFQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sc0JBQXNCLEdBQUcsSUFBQSxxREFBMEIsRUFBQztRQUN4RCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO0tBQzdCLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FDRixDQUFDIn0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2dldC1jYXJ0LWVsaWdpYmxlLWNvdXBvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBSTJDO0FBRTNDLHdFQUFtRTtBQUNuRSw4RUFBNkU7QUFRaEUsUUFBQSw4QkFBOEIsR0FBRyxJQUFBLDhCQUFjLEVBQzFELDJCQUEyQixFQUMzQixDQUFDLEtBbUJBLEVBQUUsRUFBRTtJQUNILElBQUEseUNBQWtCLEVBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFL0MsTUFBTSxzQkFBc0IsR0FBRyxJQUFBLHFEQUEwQixFQUFDO1FBQ3hELE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztRQUN0QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7UUFDNUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO0tBQ2pCLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FDRixDQUFDIn0=
@@ -6,41 +6,64 @@ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
6
  const calculate_coupon_discount_1 = require("../../calculate-coupon-discount");
7
7
  exports.getCartEligibleCouponsStep = (0, workflows_sdk_1.createStep)("get-cart-eligible-coupons-step", async (input, { container }) => {
8
8
  const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
9
+ // 1. Fetch price rules
9
10
  const { data: priceRules } = await query.graph({
10
11
  entity: "discount_price_rule",
11
- fields: ["*", "product_variants.*", "product_categories.*", "product_categories.products.*"],
12
+ fields: [
13
+ "*",
14
+ "product_variants.*",
15
+ "product_categories.*",
16
+ "product_categories.products.*",
17
+ ],
12
18
  filters: {
13
19
  $and: [
14
20
  { visibility: true },
15
21
  { prefix: { $eq: null } },
16
22
  { status: "ACTIVE" },
17
- ]
23
+ ],
18
24
  },
19
25
  });
26
+ // 2. Evaluate discounts
20
27
  const discounts = await Promise.allSettled(priceRules.map(async (priceRule) => {
21
- let code = priceRule.discount_code || undefined;
22
- const { result: { discount }, errors, } = await (0, calculate_coupon_discount_1.calculateCouponDiscountWorkflow)(container).run({
28
+ const code = priceRule.discount_code || undefined;
29
+ if (!code) {
30
+ return {
31
+ discount: 0,
32
+ code,
33
+ priceRule,
34
+ errorMessage: "Coupon code is required",
35
+ };
36
+ }
37
+ const { result, errors } = await (0, calculate_coupon_discount_1.calculateCouponDiscountWorkflow)(container).run({
23
38
  input: {
24
39
  cart_id: input.cart_id,
25
- code: code,
40
+ cart: input.cart,
41
+ code,
26
42
  customerId: input.customerId,
27
43
  },
28
44
  throwOnError: false,
29
45
  });
30
46
  let errorMessage = "";
31
- if (!discount || errors?.[0]?.error?.message) {
32
- errorMessage = errors?.[0]?.error?.message || "Cart is not eligible for this coupon";
47
+ if (!result?.discount || errors?.[0]?.error?.message) {
48
+ errorMessage =
49
+ errors?.[0]?.error?.message ||
50
+ "Cart is not eligible for this coupon";
33
51
  }
34
- return { discount: discount || 0, code, priceRule, errorMessage };
52
+ return {
53
+ discount: result?.discount || 0,
54
+ code,
55
+ priceRule,
56
+ errorMessage,
57
+ };
35
58
  }));
36
59
  function isFulfilledWithPositiveDiscount(r) {
37
- // after `status === "fulfilled"` narrows, `r.value` is safe to touch
38
60
  return r.status === "fulfilled";
39
61
  }
62
+ // 4. Sort eligible rules by discount amount
40
63
  const eligiblePriceRules = discounts
41
64
  .filter(isFulfilledWithPositiveDiscount)
42
65
  // @ts-ignore
43
66
  .map(r => r.value).sort((a, b) => b.discount - a.discount);
44
67
  return new workflows_sdk_1.StepResponse(eligiblePriceRules);
45
68
  });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNhcnQtZWxpZ2libGUtY291cG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9kaXNjb3VudC9nZXQtY2FydC1lbGlnaWJsZS1jb3Vwb25zL3N0ZXAvZ2V0LWNhcnQtZWxpZ2libGUtY291cG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFzRTtBQUN0RSxxRUFBNkU7QUFHN0UsK0VBQWtGO0FBU3JFLFFBQUEsMEJBQTBCLEdBQUcsSUFBQSwwQkFBVSxFQUNsRCxnQ0FBZ0MsRUFDaEMsS0FBSyxFQUNILEtBQStDLEVBQy9DLEVBQUUsU0FBUyxFQUFFLEVBQ2IsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFakUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDN0MsTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsK0JBQStCLENBQUM7UUFDNUYsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFO2dCQUNKLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTtnQkFDcEIsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ3pCLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTthQUNyQjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxTQUFTLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUN4QyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRTtRQUNqQyxJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsYUFBYSxJQUFJLFNBQVMsQ0FBQztRQUVoRCxNQUFNLEVBQ0osTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQ3BCLE1BQU0sR0FDUCxHQUFHLE1BQU0sSUFBQSwyREFBK0IsRUFBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDdkQsS0FBSyxFQUFFO2dCQUNMLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDdEIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO2FBQzdCO1lBQ0QsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBRXRCLElBQUksQ0FBQyxRQUFRLElBQUksTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzdDLFlBQVksR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLHNDQUFzQyxDQUFDO1FBQ3ZGLENBQUM7UUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUNwRSxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBRUYsU0FBUywrQkFBK0IsQ0FDdEMsQ0FBdUM7UUFFdkMscUVBQXFFO1FBQ3JFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUdELE1BQU0sa0JBQWtCLEdBQXFCLFNBQVM7U0FDbkQsTUFBTSxDQUFDLCtCQUErQixDQUFDO1FBQ3hDLGFBQWE7U0FDWixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFN0QsT0FBTyxJQUFJLDRCQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUM5QyxDQUFDLENBQ0YsQ0FBQyJ9
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNhcnQtZWxpZ2libGUtY291cG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9kaXNjb3VudC9nZXQtY2FydC1lbGlnaWJsZS1jb3Vwb25zL3N0ZXAvZ2V0LWNhcnQtZWxpZ2libGUtY291cG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFzRTtBQUN0RSxxRUFBNkU7QUFHN0UsK0VBQWtGO0FBZXJFLFFBQUEsMEJBQTBCLEdBQUcsSUFBQSwwQkFBVSxFQUNsRCxnQ0FBZ0MsRUFDaEMsS0FBSyxFQUNILEtBbUJDLEVBQ0QsRUFBRSxTQUFTLEVBQUUsRUFDYixFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVqRSx1QkFBdUI7SUFDdkIsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDN0MsTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixNQUFNLEVBQUU7WUFDTixHQUFHO1lBQ0gsb0JBQW9CO1lBQ3BCLHNCQUFzQjtZQUN0QiwrQkFBK0I7U0FDaEM7UUFDRCxPQUFPLEVBQUU7WUFDUCxJQUFJLEVBQUU7Z0JBQ0osRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFO2dCQUNwQixFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDekIsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO2FBQ3JCO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFFSCx3QkFBd0I7SUFDeEIsTUFBTSxTQUFTLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUN4QyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRTtRQUNqQyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsYUFBYSxJQUFJLFNBQVMsQ0FBQztRQUVsRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPO2dCQUNMLFFBQVEsRUFBRSxDQUFDO2dCQUNYLElBQUk7Z0JBQ0osU0FBUztnQkFDVCxZQUFZLEVBQUUseUJBQXlCO2FBQ3hDLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FDdEIsTUFBTSxJQUFBLDJEQUErQixFQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNuRCxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7Z0JBQ2hCLElBQUk7Z0JBQ0osVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO2FBQzdCO1lBQ0QsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQyxDQUFDO1FBRUwsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUNyRCxZQUFZO2dCQUNWLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPO29CQUMzQixzQ0FBc0MsQ0FBQztRQUMzQyxDQUFDO1FBRUQsT0FBTztZQUNMLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxJQUFJLENBQUM7WUFDL0IsSUFBSTtZQUNKLFNBQVM7WUFDVCxZQUFZO1NBQ2IsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7SUFFRixTQUFTLCtCQUErQixDQUN0QyxDQUF1QztRQUV2QyxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsTUFBTSxrQkFBa0IsR0FBcUIsU0FBUztTQUNuRCxNQUFNLENBQUMsK0JBQStCLENBQUM7UUFDeEMsYUFBYTtTQUNaLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU3RCxPQUFPLElBQUksNEJBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FDRixDQUFDIn0=
@@ -25,4 +25,7 @@ __exportStar(require("./create-freebie-rule"), exports);
25
25
  __exportStar(require("./update-freebie-price-rule"), exports);
26
26
  __exportStar(require("./create-discount-price-rule"), exports);
27
27
  __exportStar(require("./update-discount-price-rule"), exports);
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBK0I7QUFDL0Isc0RBQW9DO0FBQ3BDLGtEQUFnQztBQUNoQyx1REFBcUM7QUFDckMseURBQXVDO0FBQ3ZDLGdFQUE4QztBQUM5QyxpREFBK0I7QUFDL0Isd0RBQXNDO0FBQ3RDLDhEQUE0QztBQUM1QywrREFBNkM7QUFDN0MsK0RBQTZDIn0=
28
+ __exportStar(require("./update-discount-price-rule"), exports);
29
+ __exportStar(require("./update-coupon-code-stats"), exports);
30
+ __exportStar(require("./remove-coupon"), exports);
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBK0I7QUFDL0Isc0RBQW9DO0FBQ3BDLGtEQUFnQztBQUNoQyx1REFBcUM7QUFDckMseURBQXVDO0FBQ3ZDLGdFQUE4QztBQUM5QyxpREFBK0I7QUFDL0Isd0RBQXNDO0FBQ3RDLDhEQUE0QztBQUM1QywrREFBNkM7QUFDN0MsK0RBQTZDO0FBQzdDLCtEQUE2QztBQUM3Qyw2REFBMkM7QUFDM0Msa0RBQStCIn0=