@devx-commerce/plugin-discounts-svaraa 0.0.1-beta.2

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 (105) hide show
  1. package/.medusa/server/src/admin/index.js +20 -0
  2. package/.medusa/server/src/admin/index.mjs +21 -0
  3. package/.medusa/server/src/api/admin/discounts/freebie-rules/[id]/route.js +75 -0
  4. package/.medusa/server/src/api/admin/discounts/freebie-rules/route.js +73 -0
  5. package/.medusa/server/src/api/admin/discounts/middlewares.js +113 -0
  6. package/.medusa/server/src/api/admin/discounts/price-rules/[id]/codes/export/route.js +41 -0
  7. package/.medusa/server/src/api/admin/discounts/price-rules/[id]/codes/route.js +20 -0
  8. package/.medusa/server/src/api/admin/discounts/price-rules/[id]/route.js +50 -0
  9. package/.medusa/server/src/api/admin/discounts/price-rules/bulk/[id]/add-more-codes/route.js +34 -0
  10. package/.medusa/server/src/api/admin/discounts/price-rules/bulk/route.js +33 -0
  11. package/.medusa/server/src/api/admin/discounts/price-rules/route.js +47 -0
  12. package/.medusa/server/src/api/admin/discounts/validators.js +649 -0
  13. package/.medusa/server/src/api/admin/plugin/route.js +7 -0
  14. package/.medusa/server/src/api/middlewares.js +14 -0
  15. package/.medusa/server/src/api/store/discounts/apply/route.js +24 -0
  16. package/.medusa/server/src/api/store/discounts/apply-freebie/route.js +20 -0
  17. package/.medusa/server/src/api/store/discounts/auto-apply/route.js +125 -0
  18. package/.medusa/server/src/api/store/discounts/cart-eligible-coupons/[cart_id]/route.js +19 -0
  19. package/.medusa/server/src/api/store/discounts/middlewares.js +49 -0
  20. package/.medusa/server/src/api/store/discounts/offers-on-product/[variant_id]/route.js +19 -0
  21. package/.medusa/server/src/api/store/discounts/price-rules/route.js +20 -0
  22. package/.medusa/server/src/api/store/discounts/remove/route.js +21 -0
  23. package/.medusa/server/src/api/store/plugin/route.js +7 -0
  24. package/.medusa/server/src/index.js +18 -0
  25. package/.medusa/server/src/jobs/price-rule-status-updates.js +80 -0
  26. package/.medusa/server/src/lib/api-response.js +42 -0
  27. package/.medusa/server/src/lib/utils.js +10 -0
  28. package/.medusa/server/src/links/mtm-freebie-rule-with-customers.js +16 -0
  29. package/.medusa/server/src/links/mtm-freebie-rule-with-products-categories.js +16 -0
  30. package/.medusa/server/src/links/mtm-freebie-rule-with-products-variants.js +18 -0
  31. package/.medusa/server/src/links/mtm-price-rule-with-customers.js +16 -0
  32. package/.medusa/server/src/links/mtm-price-rule-with-products-categories.js +16 -0
  33. package/.medusa/server/src/links/mtm-price-rule-with-products-variants.js +16 -0
  34. package/.medusa/server/src/modules/discounts/index.js +13 -0
  35. package/.medusa/server/src/modules/discounts/migrations/Migration20250526174351.js +21 -0
  36. package/.medusa/server/src/modules/discounts/migrations/Migration20250527074936.js +14 -0
  37. package/.medusa/server/src/modules/discounts/migrations/Migration20250527104919.js +14 -0
  38. package/.medusa/server/src/modules/discounts/migrations/Migration20250527113947.js +14 -0
  39. package/.medusa/server/src/modules/discounts/migrations/Migration20250529123956.js +14 -0
  40. package/.medusa/server/src/modules/discounts/migrations/Migration20250602052234.js +14 -0
  41. package/.medusa/server/src/modules/discounts/migrations/Migration20250602052239.js +14 -0
  42. package/.medusa/server/src/modules/discounts/migrations/Migration20250602165037.js +16 -0
  43. package/.medusa/server/src/modules/discounts/migrations/Migration20250602194000.js +130 -0
  44. package/.medusa/server/src/modules/discounts/migrations/Migration20250603053221.js +16 -0
  45. package/.medusa/server/src/modules/discounts/migrations/Migration20250604162727.js +14 -0
  46. package/.medusa/server/src/modules/discounts/migrations/Migration20250604162741.js +14 -0
  47. package/.medusa/server/src/modules/discounts/migrations/Migration20250604175305.js +15 -0
  48. package/.medusa/server/src/modules/discounts/migrations/Migration20250605161922.js +14 -0
  49. package/.medusa/server/src/modules/discounts/migrations/Migration20250605162116.js +14 -0
  50. package/.medusa/server/src/modules/discounts/migrations/Migration20250605164908.js +14 -0
  51. package/.medusa/server/src/modules/discounts/migrations/Migration20250610063653.js +14 -0
  52. package/.medusa/server/src/modules/discounts/migrations/Migration20250611105345.js +14 -0
  53. package/.medusa/server/src/modules/discounts/migrations/Migration20250611105356.js +14 -0
  54. package/.medusa/server/src/modules/discounts/migrations/Migration20250617113007.js +14 -0
  55. package/.medusa/server/src/modules/discounts/models/discount-code.js +20 -0
  56. package/.medusa/server/src/modules/discounts/models/freebie-rule.js +27 -0
  57. package/.medusa/server/src/modules/discounts/models/price-rule.js +53 -0
  58. package/.medusa/server/src/modules/discounts/service.js +98 -0
  59. package/.medusa/server/src/workflows/discount/add-more-code-in-price-rule/index.js +28 -0
  60. package/.medusa/server/src/workflows/discount/apply-coupon/index.js +41 -0
  61. package/.medusa/server/src/workflows/discount/apply-coupon/steps/apply-coupon-step-backup.js +245 -0
  62. package/.medusa/server/src/workflows/discount/apply-coupon/steps/apply-coupon-step.js +244 -0
  63. package/.medusa/server/src/workflows/discount/apply-coupon/steps/generate-adjustment-line-item.js +28 -0
  64. package/.medusa/server/src/workflows/discount/apply-coupon/steps/validate-coupon-step.js +212 -0
  65. package/.medusa/server/src/workflows/discount/apply-freebie/index.js +31 -0
  66. package/.medusa/server/src/workflows/discount/apply-freebie/steps/add-freebie-items-to-cart.js +212 -0
  67. package/.medusa/server/src/workflows/discount/apply-freebie/steps/remove-freebie-from-cart.js +16 -0
  68. package/.medusa/server/src/workflows/discount/auto-apply-coupon/index.js +10 -0
  69. package/.medusa/server/src/workflows/discount/auto-apply-coupon/steps/auto-apply-coupon.js +81 -0
  70. package/.medusa/server/src/workflows/discount/calculate-coupon-discount/index.js +74 -0
  71. package/.medusa/server/src/workflows/discount/create-bulk-discount/index.js +46 -0
  72. package/.medusa/server/src/workflows/discount/create-bulk-discount/steps/add-bulk-codes-to-rule.js +84 -0
  73. package/.medusa/server/src/workflows/discount/create-discount-code/index.js +10 -0
  74. package/.medusa/server/src/workflows/discount/create-discount-code/steps/create-discount-code-step.js +20 -0
  75. package/.medusa/server/src/workflows/discount/create-discount-price-rule/index.js +56 -0
  76. package/.medusa/server/src/workflows/discount/create-discount-price-rule/steps/create-discount-price-rule-step.js +58 -0
  77. package/.medusa/server/src/workflows/discount/create-discount-price-rule/steps/validate-customer-exists.js +21 -0
  78. package/.medusa/server/src/workflows/discount/create-freebie-rule/index.js +44 -0
  79. package/.medusa/server/src/workflows/discount/create-freebie-rule/steps/create-freebie-rule-step.js +64 -0
  80. package/.medusa/server/src/workflows/discount/export-codes/index.js +14 -0
  81. package/.medusa/server/src/workflows/discount/export-codes/steps/export-codes-step.js +116 -0
  82. package/.medusa/server/src/workflows/discount/get-cart-eligible-coupons/index.js +15 -0
  83. package/.medusa/server/src/workflows/discount/get-cart-eligible-coupons/step/get-cart-eligible-coupon.js +39 -0
  84. package/.medusa/server/src/workflows/discount/get-product-offers/index.js +25 -0
  85. package/.medusa/server/src/workflows/discount/get-product-offers/step/calculate-product-offers.js +53 -0
  86. package/.medusa/server/src/workflows/discount/index.js +28 -0
  87. package/.medusa/server/src/workflows/discount/remove-coupon/index.js +18 -0
  88. package/.medusa/server/src/workflows/discount/remove-coupon/step/remove-coupon-step.js +32 -0
  89. package/.medusa/server/src/workflows/discount/steps/validate-cart-exists.js +22 -0
  90. package/.medusa/server/src/workflows/discount/steps/validate-discount-code-exists.js +20 -0
  91. package/.medusa/server/src/workflows/discount/steps/validate-freebie-code-exists.js +16 -0
  92. package/.medusa/server/src/workflows/discount/steps/validate-same-prefix-rule-exists.js +20 -0
  93. package/.medusa/server/src/workflows/discount/update-discount-price-rule/index.js +42 -0
  94. package/.medusa/server/src/workflows/discount/update-discount-price-rule/steps/update-discount-price-rule-step.js +160 -0
  95. package/.medusa/server/src/workflows/discount/update-discount-price-rule/steps/validate-discount-price-rule-update-step.js +175 -0
  96. package/.medusa/server/src/workflows/discount/update-freebie-price-rule/index.js +44 -0
  97. package/.medusa/server/src/workflows/discount/update-freebie-price-rule/steps/update-freebie-price-rule-step.js +201 -0
  98. package/.medusa/server/src/workflows/discount/update-freebie-price-rule/steps/validate-freebie-rule-update-step.js +44 -0
  99. package/.medusa/server/src/workflows/index.js +18 -0
  100. package/.medusa/server/src/workflows/product/steps/validate-product-category-exists.js +26 -0
  101. package/.medusa/server/src/workflows/product/steps/validate-product-exists.js +28 -0
  102. package/.medusa/server/src/workflows/product/steps/validate-product-variant-exists.js +26 -0
  103. package/.medusa/server/src/workflows/steps/throw-error-step.js +9 -0
  104. package/README.md +64 -0
  105. package/package.json +87 -0
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.addFreebieItemsToCartStep = void 0;
7
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
8
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
9
+ const validators_1 = require("../../../../api/admin/discounts/validators");
10
+ const mtm_freebie_rule_with_products_variants_1 = __importDefault(require("../../../../links/mtm-freebie-rule-with-products-variants"));
11
+ const helpers_1 = require("@medusajs/medusa/api/store/carts/helpers");
12
+ const utils_1 = require("../../../../lib/utils");
13
+ exports.addFreebieItemsToCartStep = (0, workflows_sdk_1.createStep)("add-freebie-items-to-cart", async (input, { container }) => {
14
+ const query = container.resolve("query");
15
+ const cartService = container.resolve("cart");
16
+ const { data: freebieRules } = await query.graph({
17
+ entity: "freebie_rule",
18
+ fields: [
19
+ "*",
20
+ "product_variants.*",
21
+ "product_categories.*",
22
+ "product_categories.products.id",
23
+ "customers.*",
24
+ ],
25
+ filters: { status: "ACTIVE" },
26
+ });
27
+ // console.log("freebieRules: ", JSON.stringify(freebieRules, null, 2));
28
+ const { data: orders } = await query.graph({
29
+ entity: "order",
30
+ fields: ["id"],
31
+ filters: { customer_id: input.customerId, status: "completed" },
32
+ });
33
+ let eligibleFreebieRules = freebieRules.filter((rule) => {
34
+ /* ─────────────────────────────────────────────────────────────
35
+ * Check Coupon Usage Limit
36
+ * ────────────────────────────────────────────────────────────*/
37
+ const { usage_limit: limitMode, usage_limit_specific, usage_count, } = rule;
38
+ const limitReached = (() => {
39
+ switch (limitMode) {
40
+ case "UNLIMITED":
41
+ return false; // no cap
42
+ case "ONLY_ONCE":
43
+ return usage_count >= 1; // hard-coded single use
44
+ case "SPECIFIC":
45
+ // treat null/undefined as “no cap” for safety
46
+ if (typeof usage_limit_specific !== "number")
47
+ return false;
48
+ return usage_count >= usage_limit_specific; // respect custom cap
49
+ default:
50
+ return false; // fallback – shouldn’t happen
51
+ }
52
+ })();
53
+ if (limitReached)
54
+ return false;
55
+ if (rule.only_for_new_customer && !input.customerId)
56
+ return false;
57
+ if (rule.only_for_new_customer && input.customerId && orders.length > 0)
58
+ return false;
59
+ /* ─────────────────────────────────────────────────────────────
60
+ * Check User Specific Freebie Code Usage Limit
61
+ * ────────────────────────────────────────────────────────────*/
62
+ if ((rule.usage_limit_per_customer_type ==
63
+ validators_1.DiscountUsageLimitPerCustomerType.Values.SPECIFIC ||
64
+ rule.usage_limit_per_customer_type ==
65
+ validators_1.DiscountUsageLimitPerCustomerType.Values.ONLY_ONCE) &&
66
+ !input.customerId) {
67
+ return false;
68
+ }
69
+ if (input.customerId &&
70
+ (rule.usage_limit_per_customer_type ==
71
+ validators_1.DiscountUsageLimitPerCustomerType.Values.SPECIFIC ||
72
+ rule.usage_limit_per_customer_type ==
73
+ validators_1.DiscountUsageLimitPerCustomerType.Values.ONLY_ONCE)) {
74
+ if (orders.length >= (rule.usage_limit_per_customer_specific || 1))
75
+ return false;
76
+ }
77
+ /* ──────────────────────────────────────────────────────────────
78
+ * Check Customer Existence
79
+ * ─────────────────────────────────────────────────────────────*/
80
+ if (input.customerId && rule.customers && rule.customers.length > 0) {
81
+ if (!rule.customers.some((customer) => customer.id === input.customerId)) {
82
+ return false;
83
+ }
84
+ }
85
+ /* ──────────────────────────────────────────────────────────────
86
+ * Check Cart Quantity
87
+ * ─────────────────────────────────────────────────────────────*/
88
+ if (rule.min_order_qty != null && rule.min_order_qty != undefined) {
89
+ let cartTotalQuantity = 0;
90
+ if (input.cart.items && input.cart.items.length > 0) {
91
+ cartTotalQuantity = input.cart.items.reduce((total, item) => {
92
+ const isBundle = !!item.metadata?.bundle_type;
93
+ return (total +
94
+ Number(isBundle
95
+ ? (item?.variant?.extended_product_variants
96
+ ?.products_per_bundle || 1) * (item.quantity || 1)
97
+ : item.quantity || 1));
98
+ }, 0);
99
+ }
100
+ if (rule.min_order_qty && cartTotalQuantity < rule.min_order_qty) {
101
+ return false;
102
+ }
103
+ }
104
+ /* ──────────────────────────────────────────────────────────────
105
+ * Check Cart Values
106
+ * ─────────────────────────────────────────────────────────────*/
107
+ if (rule.min_order_value != null && rule.min_order_value != undefined) {
108
+ let cartTotal = 0;
109
+ if (input.cart.items && input.cart.items.length > 0) {
110
+ cartTotal = input.cart.items.reduce((total, item) => {
111
+ let price = 0;
112
+ if (rule.applies_on == validators_1.DiscountAppliesOn.Values.MRP) {
113
+ let variantListingPrice = item?.variant?.extended_product_variants?.compare_at_price;
114
+ const isBundle = !!item.metadata?.bundle_type;
115
+ price = isBundle
116
+ ? Number(item.compare_at_unit_price)
117
+ : Number(variantListingPrice);
118
+ }
119
+ if (rule.applies_on == validators_1.DiscountAppliesOn.Values.PRICE)
120
+ price = Number(item.unit_price) || 0;
121
+ return total + Number(price) * Number(item.quantity || 1);
122
+ }, 0);
123
+ }
124
+ if (rule.min_order_value && cartTotal < rule.min_order_value) {
125
+ return false;
126
+ }
127
+ }
128
+ return true;
129
+ });
130
+ // console.log(
131
+ // "eligibleFreebieRules: ",
132
+ // JSON.stringify(eligibleFreebieRules, null, 2)
133
+ // );
134
+ eligibleFreebieRules = await Promise.all(eligibleFreebieRules.map(async (freebieRule) => {
135
+ const variants = freebieRule.product_variants;
136
+ const { data: productVariantLinks } = await query.graph({
137
+ entity: mtm_freebie_rule_with_products_variants_1.default.entryPoint,
138
+ fields: ["*"],
139
+ filters: { freebie_rule_id: freebieRule.id },
140
+ });
141
+ delete freebieRule.product_variants;
142
+ return {
143
+ ...freebieRule,
144
+ applicable_product_variants: variants.filter((variant) => {
145
+ return productVariantLinks.some((link) => link.product_variant_id === variant.id && !link.is_freebie);
146
+ }),
147
+ freebie_product_variants: variants.filter((variant) => {
148
+ return productVariantLinks.some((link) => link.product_variant_id === variant.id && link.is_freebie);
149
+ }),
150
+ };
151
+ }));
152
+ eligibleFreebieRules = eligibleFreebieRules.filter(({ applicable_product_variants, product_categories, applicable_on_bundle, }) => {
153
+ if (!applicable_product_variants?.length &&
154
+ !product_categories?.length) {
155
+ return true;
156
+ }
157
+ let eligibleCartItems = [...input.cart.items];
158
+ if (applicable_product_variants?.length) {
159
+ eligibleCartItems = eligibleCartItems.filter((item) => applicable_product_variants.some((v) => v.id === item.variant_id));
160
+ }
161
+ if (product_categories?.length) {
162
+ eligibleCartItems = eligibleCartItems.filter((item) => product_categories.some((v) => v.products?.some((p) => p.id === item.product_id)));
163
+ }
164
+ if (!applicable_on_bundle) {
165
+ eligibleCartItems = eligibleCartItems.filter((item) => !item.metadata?.bundle_type);
166
+ }
167
+ return eligibleCartItems.length > 0;
168
+ });
169
+ // console.log(
170
+ // "eligibleFreebieRules after filtering: ",
171
+ // JSON.stringify(eligibleFreebieRules, null, 2)
172
+ // );
173
+ let itemsToAdd = [];
174
+ for (const freebieRule of eligibleFreebieRules) {
175
+ for (const variant of freebieRule.freebie_product_variants) {
176
+ itemsToAdd.push({
177
+ product_id: variant.product_id,
178
+ variant_id: variant.id,
179
+ quantity: 1,
180
+ unit_price: 0,
181
+ metadata: {
182
+ item_type: utils_1.ProductType.Values.FREEBIE,
183
+ code: freebieRule.code,
184
+ },
185
+ });
186
+ }
187
+ }
188
+ if (itemsToAdd.length > 0) {
189
+ await (0, core_flows_1.addToCartWorkflow)(container).run({
190
+ input: { cart_id: input.cart.id, items: itemsToAdd },
191
+ });
192
+ const cart = await (0, helpers_1.refetchCart)(input.cart.id, container, [
193
+ "id",
194
+ "items.metadata",
195
+ "items.id",
196
+ ]);
197
+ await Promise.all(cart.items.map(async (item) => {
198
+ if (item.metadata?.item_type === utils_1.ProductType.Values.FREEBIE) {
199
+ const freebieRule = eligibleFreebieRules.find((rule) => rule.code === item.metadata?.code);
200
+ await cartService.addLineItemAdjustments({
201
+ amount: 0,
202
+ code: item.metadata?.code || "",
203
+ description: freebieRule?.description || "",
204
+ item_id: item.id,
205
+ promotion_id: freebieRule?.id || "",
206
+ });
207
+ }
208
+ }));
209
+ }
210
+ return new workflows_sdk_1.StepResponse(eligibleFreebieRules);
211
+ });
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWZyZWViaWUtaXRlbXMtdG8tY2FydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvZGlzY291bnQvYXBwbHktZnJlZWJpZS9zdGVwcy9hZGQtZnJlZWJpZS1pdGVtcy10by1jYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQU9BLHFFQUE2RTtBQUM3RSw0REFBZ0U7QUFFaEUsMkVBR29EO0FBQ3BELHdJQUFzRztBQUN0RyxzRUFBdUU7QUFDdkUsaURBQW9EO0FBRXZDLFFBQUEseUJBQXlCLEdBQUcsSUFBQSwwQkFBVSxFQUNqRCwyQkFBMkIsRUFDM0IsS0FBSyxFQUNILEtBYUMsRUFDRCxFQUFFLFNBQVMsRUFBRSxFQUNiLEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFOUMsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDL0MsTUFBTSxFQUFFLGNBQWM7UUFDdEIsTUFBTSxFQUFFO1lBQ04sR0FBRztZQUNILG9CQUFvQjtZQUNwQixzQkFBc0I7WUFDdEIsZ0NBQWdDO1lBQ2hDLGFBQWE7U0FDZDtRQUNELE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUU7S0FDOUIsQ0FBQyxDQUFDO0lBRUgsd0VBQXdFO0lBRXhFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pDLE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ2QsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFF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
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeFreebieFromCartStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const utils_1 = require("../../../../lib/utils");
6
+ exports.removeFreebieFromCartStep = (0, workflows_sdk_1.createStep)("remove-freebie-from-cart", async (input, { container }) => {
7
+ const lineItemsToRemove = input.cart.items?.filter((item) => item.metadata?.item_type == utils_1.ProductType.Values.FREEBIE) || [];
8
+ const lineItemIdsToRemove = lineItemsToRemove.map(({ id }) => id);
9
+ const cartService = container.resolve("cart");
10
+ await cartService.softDeleteLineItems(lineItemIdsToRemove);
11
+ return new workflows_sdk_1.StepResponse({ message: "Freebie items removed from cart" }, { lineItemIdsToRestore: lineItemIdsToRemove });
12
+ }, async (input, { container }) => {
13
+ const cartService = container.resolve("cart");
14
+ await cartService.restoreLineItems(input.lineItemIdsToRestore);
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWZyZWViaWUtZnJvbS1jYXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9kaXNjb3VudC9hcHBseS1mcmVlYmllL3N0ZXBzL3JlbW92ZS1mcmVlYmllLWZyb20tY2FydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxRUFBNkU7QUFDN0UsaURBQW9EO0FBRXZDLFFBQUEseUJBQXlCLEdBQUcsSUFBQSwwQkFBVSxFQUNqRCwwQkFBMEIsRUFDMUIsS0FBSyxFQUFFLEtBQXdCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ2hELE1BQU0saUJBQWlCLEdBQ3JCLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FDdEIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxJQUFJLG1CQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDakUsSUFBSSxFQUFFLENBQUM7SUFFVixNQUFNLG1CQUFtQixHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWxFLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsTUFBTSxXQUFXLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUUzRCxPQUFPLElBQUksNEJBQVksQ0FDckIsRUFBRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsRUFDOUMsRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxDQUM5QyxDQUFDO0FBQ0osQ0FBQyxFQUNELEtBQUssRUFBRSxLQUF5QyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNqRSxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLE1BQU0sV0FBVyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQ2pFLENBQUMsQ0FDRixDQUFDIn0=
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.autoApplyCouponWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const auto_apply_coupon_1 = require("./steps/auto-apply-coupon");
6
+ exports.autoApplyCouponWorkflow = (0, workflows_sdk_1.createWorkflow)("auto-apply-coupon", (input) => {
7
+ const response = (0, auto_apply_coupon_1.autoApplyCouponStep)(input);
8
+ return new workflows_sdk_1.WorkflowResponse(response);
9
+ });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2F1dG8tYXBwbHktY291cG9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcyQztBQUUzQyxpRUFBZ0U7QUFFbkQsUUFBQSx1QkFBdUIsR0FBRyxJQUFBLDhCQUFjLEVBQ25ELG1CQUFtQixFQUNuQixDQUFDLEtBQTJELEVBQUUsRUFBRTtJQUM5RCxNQUFNLFFBQVEsR0FBRyxJQUFBLHVDQUFtQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTVDLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN4QyxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.autoApplyCouponStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const apply_coupon_1 = require("../../apply-coupon");
6
+ const calculate_coupon_discount_1 = require("../../calculate-coupon-discount");
7
+ exports.autoApplyCouponStep = (0, workflows_sdk_1.createStep)("auto-apply-coupon", async (input, { container }) => {
8
+ console.log("reached");
9
+ const query = container.resolve("query");
10
+ const { data: priceRules } = await query.graph({
11
+ entity: "discount_price_rule",
12
+ fields: ["*"],
13
+ filters: { auto_apply: true },
14
+ });
15
+ const discounts = await Promise.allSettled(priceRules.map(async (priceRule) => {
16
+ let code = null;
17
+ if (!priceRule.prefix)
18
+ code = priceRule.discount_code;
19
+ else {
20
+ const { data: codes } = await query.graph({
21
+ entity: "discount_code",
22
+ fields: ["*"],
23
+ filters: {
24
+ $and: [
25
+ { price_rule_id: { $eq: priceRule.id } },
26
+ { usage_limit: 0 },
27
+ ],
28
+ },
29
+ });
30
+ if (codes.length > 0)
31
+ code = codes[0].code;
32
+ else
33
+ return { discount: 0 };
34
+ }
35
+ const { result: { discount }, } = await (0, calculate_coupon_discount_1.calculateCouponDiscountWorkflow)(container).run({
36
+ input: {
37
+ cart_id: input.cart_id,
38
+ code: code,
39
+ customerId: input.customerId,
40
+ },
41
+ });
42
+ return { discount, code };
43
+ }));
44
+ let currentDiscount = 0;
45
+ let currentCode = undefined;
46
+ discounts.forEach((discount) => {
47
+ if (discount.status === "fulfilled") {
48
+ if (currentDiscount > 0 && currentDiscount > discount.value.discount) {
49
+ return;
50
+ }
51
+ currentDiscount = discount.value.discount;
52
+ currentCode = discount.value.code || undefined;
53
+ }
54
+ });
55
+ if (currentCode) {
56
+ const { result } = await (0, apply_coupon_1.applyCouponWorkflow)(container).run({
57
+ input: {
58
+ code: currentCode,
59
+ cart_id: input.cart_id,
60
+ },
61
+ });
62
+ if (!result) {
63
+ return new workflows_sdk_1.StepResponse({
64
+ discount: 0,
65
+ code: null,
66
+ isApplied: false,
67
+ });
68
+ }
69
+ return new workflows_sdk_1.StepResponse({
70
+ discount: currentDiscount,
71
+ code: currentCode,
72
+ isApplied: true,
73
+ });
74
+ }
75
+ return new workflows_sdk_1.StepResponse({
76
+ discount: 0,
77
+ code: null,
78
+ isApplied: false,
79
+ });
80
+ });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1hcHBseS1jb3Vwb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2F1dG8tYXBwbHktY291cG9uL3N0ZXBzL2F1dG8tYXBwbHktY291cG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUM3RSxxREFBeUQ7QUFDekQsK0VBQWtGO0FBRXJFLFFBQUEsbUJBQW1CLEdBQUcsSUFBQSwwQkFBVSxFQUMzQyxtQkFBbUIsRUFDbkIsS0FBSyxFQUFFLEtBQTJELEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ25GLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkIsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUM3QyxNQUFNLEVBQUUscUJBQXFCO1FBQzdCLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUNiLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7S0FDOUIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxTQUFTLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUN4QyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRTtRQUNqQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNO1lBQUUsSUFBSSxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUM7YUFDakQsQ0FBQztZQUNKLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUN4QyxNQUFNLEVBQUUsZUFBZTtnQkFDdkIsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDO2dCQUNiLE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUU7d0JBQ0osRUFBRSxhQUFhLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFO3dCQUN4QyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUU7cUJBQ25CO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQUUsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7O2dCQUN0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFDRCxNQUFNLEVBQ0osTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQ3JCLEdBQUcsTUFBTSxJQUFBLDJEQUErQixFQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUN2RCxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixJQUFJLEVBQUUsSUFBSztnQkFDWCxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7YUFDN0I7U0FDRixDQUFDLENBQUM7UUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFFRixJQUFJLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDeEIsSUFBSSxXQUFXLEdBQXVCLFNBQVMsQ0FBQztJQUVoRCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDN0IsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLElBQUksZUFBZSxHQUFHLENBQUMsSUFBSSxlQUFlLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDckUsT0FBTztZQUNULENBQUM7WUFDRCxlQUFlLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDMUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsa0NBQW1CLEVBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQzFELEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsV0FBVztnQkFDakIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2FBQ3ZCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTyxJQUFJLDRCQUFZLENBQUM7Z0JBQ3RCLFFBQVEsRUFBRSxDQUFDO2dCQUNYLElBQUksRUFBRSxJQUFJO2dCQUNWLFNBQVMsRUFBRSxLQUFLO2FBQ2pCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLElBQUksNEJBQVksQ0FBQztZQUN0QixRQUFRLEVBQUUsZUFBZTtZQUN6QixJQUFJLEVBQUUsV0FBVztZQUNqQixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxJQUFJLDRCQUFZLENBQUM7UUFDdEIsUUFBUSxFQUFFLENBQUM7UUFDWCxJQUFJLEVBQUUsSUFBSTtRQUNWLFNBQVMsRUFBRSxLQUFLO0tBQ2pCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDIn0=
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateCouponDiscountWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
6
+ const throw_error_step_1 = require("../../steps/throw-error-step");
7
+ const apply_coupon_step_1 = require("../apply-coupon/steps/apply-coupon-step");
8
+ const validate_coupon_step_1 = require("../apply-coupon/steps/validate-coupon-step");
9
+ const utils_1 = require("../../../lib/utils");
10
+ 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",
13
+ fields: [
14
+ "*",
15
+ "product_categories.*",
16
+ "product_variants.*",
17
+ "product_categories.products.id",
18
+ "customers.*",
19
+ ],
20
+ filters: { discount_codes: { code: input.code } },
21
+ });
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_product_variants.compare_at_price",
30
+ ],
31
+ filters: { id: input.cart_id },
32
+ options: { throwIfKeyNotFound: true },
33
+ }).config({ name: "get-cart" });
34
+ const cart = (0, workflows_sdk_1.transform)({ carts }, ({ carts }) => {
35
+ let cart = carts[0];
36
+ return {
37
+ ...cart,
38
+ items: cart.items.filter((item) => item.metadata?.item_type != utils_1.ProductType.Values.FREEBIE),
39
+ };
40
+ });
41
+ const priceRule = (0, workflows_sdk_1.transform)({ priceRules }, ({ priceRules }) => priceRules[0]);
42
+ const validationResult = (0, validate_coupon_step_1.validateCouponStep)({
43
+ priceRule,
44
+ code: input.code,
45
+ cart,
46
+ customerId: input.customerId,
47
+ });
48
+ (0, workflows_sdk_1.when)(validationResult, ({ hasError }) => {
49
+ return hasError;
50
+ }).then(() => {
51
+ (0, throw_error_step_1.throwErrorStep)({ errorMessage: validationResult.message }).config({
52
+ name: "throw-error-validate-coupon",
53
+ });
54
+ });
55
+ const calculateDiscountResult = (0, apply_coupon_step_1.calculateDiscount)({
56
+ priceRule,
57
+ code: input.code,
58
+ cart,
59
+ });
60
+ (0, workflows_sdk_1.when)(calculateDiscountResult, ({ hasError }) => {
61
+ return hasError;
62
+ }).then(() => {
63
+ (0, throw_error_step_1.throwErrorStep)({ errorMessage: calculateDiscountResult.message }).config({
64
+ name: "throw-error-calculate-discount",
65
+ });
66
+ });
67
+ return new workflows_sdk_1.WorkflowResponse({
68
+ discount: calculateDiscountResult.discount,
69
+ isApplied: calculateDiscountResult.isApplied,
70
+ message: calculateDiscountResult.message,
71
+ adjustmentLineItems: calculateDiscountResult.adjustmentLineItems,
72
+ });
73
+ });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2NhbGN1bGF0ZS1jb3Vwb24tZGlzY291bnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBSzJDO0FBQzNDLDREQUFnRTtBQUdoRSxtRUFBOEQ7QUFDOUQsK0VBQTRFO0FBQzVFLHFGQUFnRjtBQUNoRiw4Q0FBaUQ7QUFFcEMsUUFBQSwrQkFBK0IsR0FBRyxJQUFBLDhCQUFjLEVBQzNELDJCQUEyQixFQUMzQixDQUFDLEtBQXlFLEVBQUUsRUFBRTtJQUM1RSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDN0MsTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixNQUFNLEVBQUU7WUFDTixHQUFHO1lBQ0gsc0JBQXNCO1lBQ3RCLG9CQUFvQjtZQUNwQixnQ0FBZ0M7WUFDaEMsYUFBYTtTQUNkO1FBQ0QsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRTtLQUNsRCxDQUFDLENBQUM7SUFFSCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDeEMsTUFBTSxFQUFFLE1BQU07UUFDZCxNQUFNLEVBQUU7WUFDTixHQUFHO1lBQ0gsU0FBUztZQUNULGlCQUFpQjtZQUNqQix3QkFBd0I7WUFDeEIsMERBQTBEO1NBQzNEO1FBQ0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUU7UUFDOUIsT0FBTyxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFO0tBQ3RDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUVoQyxNQUFNLElBQUksR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QyxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEIsT0FBTztZQUNMLEdBQUcsSUFBSTtZQUNQLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxJQUFJLG1CQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDakU7U0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLFNBQVMsR0FBRyxJQUFBLHlCQUFTLEVBQ3pCLEVBQUUsVUFBVSxFQUFFLEVBQ2QsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUEwQixDQUMzRCxDQUFDO0lBRUYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLHlDQUFrQixFQUFDO1FBQzFDLFNBQVM7UUFDVCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7UUFDaEIsSUFBSTtRQUNKLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtLQUM3QixDQUFDLENBQUM7SUFFSCxJQUFBLG9CQUFJLEVBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7UUFDdEMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNYLElBQUEsaUNBQWMsRUFBQyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNoRSxJQUFJLEVBQUUsNkJBQTZCO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSx1QkFBdUIsR0FBRyxJQUFBLHFDQUFpQixFQUFDO1FBQ2hELFNBQVM7UUFDVCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7UUFDaEIsSUFBSTtLQUNMLENBQUMsQ0FBQztJQUVILElBQUEsb0JBQUksRUFBQyx1QkFBdUIsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtRQUM3QyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1gsSUFBQSxpQ0FBYyxFQUFDLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3ZFLElBQUksRUFBRSxnQ0FBZ0M7U0FDdkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksZ0NBQWdCLENBQUM7UUFDMUIsUUFBUSxFQUFFLHVCQUF1QixDQUFDLFFBQVE7UUFDMUMsU0FBUyxFQUFFLHVCQUF1QixDQUFDLFNBQVM7UUFDNUMsT0FBTyxFQUFFLHVCQUF1QixDQUFDLE9BQU87UUFDeEMsbUJBQW1CLEVBQUUsdUJBQXVCLENBQUMsbUJBQW1CO0tBQ2pFLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDIn0=
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createBulkDiscountWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const validate_product_category_exists_1 = require("../../product/steps/validate-product-category-exists");
6
+ const validate_product_variant_exists_1 = require("../../product/steps/validate-product-variant-exists");
7
+ const throw_error_step_1 = require("../../steps/throw-error-step");
8
+ const create_discount_price_rule_step_1 = require("../create-discount-price-rule/steps/create-discount-price-rule-step");
9
+ const validate_same_prefix_rule_exists_1 = require("../steps/validate-same-prefix-rule-exists");
10
+ const add_bulk_codes_to_rule_1 = require("./steps/add-bulk-codes-to-rule");
11
+ exports.createBulkDiscountWorkflow = (0, workflows_sdk_1.createWorkflow)("create-bulk-discount", (input) => {
12
+ // validate auto_apply count from global config table so that it does not exceed the limit
13
+ const validate = (0, workflows_sdk_1.createHook)("validate", { input });
14
+ (0, workflows_sdk_1.when)("validate-product-variant-exists", input, ({ applicable_product_variant_ids }) => !!applicable_product_variant_ids).then(() => {
15
+ return (0, validate_product_variant_exists_1.validateProductVariantExists)({
16
+ // @ts-ignore
17
+ product_variant_id: input.applicable_product_variant_ids,
18
+ });
19
+ });
20
+ (0, workflows_sdk_1.when)("validate-category-exists", input, ({ applicable_category_ids }) => !!applicable_category_ids).then(() => {
21
+ return (0, validate_product_category_exists_1.validateProductCategoryExists)({
22
+ // @ts-ignore
23
+ product_category_id: input.applicable_category_ids,
24
+ });
25
+ });
26
+ const samePrefixRuleExists = (0, validate_same_prefix_rule_exists_1.validateSamePrefixRuleExists)({
27
+ prefix: input.prefix,
28
+ });
29
+ (0, workflows_sdk_1.when)("check-if-same-prefix-rule-exists", samePrefixRuleExists, (exists) => exists).then(() => {
30
+ (0, throw_error_step_1.throwErrorStep)({
31
+ errorMessage: `Discount price rule with prefix already exists`,
32
+ });
33
+ });
34
+ const discountPriceRule = (0, create_discount_price_rule_step_1.createDiscountPriceRuleStep)(input);
35
+ const ruleCreated = (0, workflows_sdk_1.createHook)("ruleCreated", {
36
+ priceRuleId: discountPriceRule.id,
37
+ });
38
+ (0, add_bulk_codes_to_rule_1.addBulkCodesToRuleStep)({
39
+ priceRuleId: discountPriceRule.id,
40
+ codeCountToAdd: input.count,
41
+ });
42
+ return new workflows_sdk_1.WorkflowResponse(discountPriceRule, {
43
+ hooks: [validate, ruleCreated],
44
+ });
45
+ });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2NyZWF0ZS1idWxrLWRpc2NvdW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUsyQztBQUkzQywyR0FBcUc7QUFDckcseUdBQW1HO0FBQ25HLG1FQUE4RDtBQUM5RCx5SEFBa0g7QUFDbEgsZ0dBQXlGO0FBQ3pGLDJFQUF3RTtBQUUzRCxRQUFBLDBCQUEwQixHQUFHLElBQUEsOEJBQWMsRUFDdEQsc0JBQXNCLEVBQ3RCLENBQUMsS0FBeUMsRUFBRSxFQUFFO0lBQzVDLDBGQUEwRjtJQUMxRixNQUFNLFFBQVEsR0FBRyxJQUFBLDBCQUFVLEVBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUVuRCxJQUFBLG9CQUFJLEVBQ0YsaUNBQWlDLEVBQ2pDLEtBQUssRUFDTCxDQUFDLEVBQUUsOEJBQThCLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUN6RSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDVixPQUFPLElBQUEsOERBQTRCLEVBQUM7WUFDbEMsYUFBYTtZQUNiLGtCQUFrQixFQUFFLEtBQUssQ0FBQyw4QkFBOEI7U0FDekQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFBLG9CQUFJLEVBQ0YsMEJBQTBCLEVBQzFCLEtBQUssRUFDTCxDQUFDLEVBQUUsdUJBQXVCLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUMzRCxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDVixPQUFPLElBQUEsZ0VBQTZCLEVBQUM7WUFDbkMsYUFBYTtZQUNiLG1CQUFtQixFQUFFLEtBQUssQ0FBQyx1QkFBdUI7U0FDbkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLG9CQUFvQixHQUFHLElBQUEsK0RBQTRCLEVBQUM7UUFDeEQsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO0tBQ3JCLENBQUMsQ0FBQztJQUVILElBQUEsb0JBQUksRUFDRixrQ0FBa0MsRUFDbEMsb0JBQW9CLEVBQ3BCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQ25CLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNWLElBQUEsaUNBQWMsRUFBQztZQUNiLFlBQVksRUFBRSxnREFBZ0Q7U0FDL0QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLGlCQUFpQixHQUFHLElBQUEsNkRBQTJCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFFN0QsTUFBTSxXQUFXLEdBQUcsSUFBQSwwQkFBVSxFQUFDLGFBQWEsRUFBRTtRQUM1QyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsRUFBRTtLQUNsQyxDQUFDLENBQUM7SUFFSCxJQUFBLCtDQUFzQixFQUFDO1FBQ3JCLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO1FBQ2pDLGNBQWMsRUFBRSxLQUFLLENBQUMsS0FBSztLQUM1QixDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksZ0NBQWdCLENBQUMsaUJBQWlCLEVBQUU7UUFDN0MsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBVTtLQUN4QyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addBulkCodesToRuleStep = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ const discounts_1 = require("../../../../modules/discounts");
7
+ exports.addBulkCodesToRuleStep = (0, workflows_sdk_1.createStep)({ name: "add-bulk-codes-to-rule", async: true, backgroundExecution: true }, async (input, { container }) => {
8
+ const { priceRuleId, codeCountToAdd } = input;
9
+ const discountService = container.resolve(discounts_1.DISCOUNT_MODULE);
10
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
11
+ const logger = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
12
+ const eventBus = container.resolve(utils_1.Modules.EVENT_BUS);
13
+ const { data: [priceRule], } = await query.graph({
14
+ entity: "discount_price_rule",
15
+ fields: ["id", "prefix", "code_count"],
16
+ filters: { id: priceRuleId },
17
+ });
18
+ logger.info(`Adding ${codeCountToAdd} codes to price rule ${priceRuleId}`);
19
+ if (!priceRule) {
20
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Price rule with id ${priceRuleId} not found`);
21
+ }
22
+ const prefix = priceRule.prefix;
23
+ logger.info(`Prefix: ${prefix}`);
24
+ if (!prefix) {
25
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Price rule does not have a prefix");
26
+ }
27
+ // Get the current code count as offset
28
+ const offset = priceRule.code_count || 0;
29
+ logger.info(`Offset: ${offset}`);
30
+ // Calculate the max length needed for the numeric part based on total codes
31
+ const maxLength = String(codeCountToAdd + offset).length;
32
+ logger.info(`Max length: ${maxLength}`);
33
+ // Generate and add codes in batches
34
+ const batchSize = 1000;
35
+ const batches = Math.ceil(codeCountToAdd / batchSize);
36
+ const createdCodes = [];
37
+ logger.info(`Batch size: ${batchSize}`);
38
+ console.time("addBulkCodesToRuleStep");
39
+ for (let batchIndex = 0; batchIndex < batches; batchIndex++) {
40
+ const batchCount = Math.min(batchSize, codeCountToAdd - batchIndex * batchSize);
41
+ const batchCodes = [];
42
+ console.time(`batch-${batchIndex}-generate-whole`);
43
+ // Generate codes for this batch
44
+ console.time(`batch-${batchIndex}-generate`);
45
+ for (let i = 0; i < batchCount; i++) {
46
+ const index = offset + batchIndex * batchSize + i + 1;
47
+ const code = `${prefix.toUpperCase()}${generateRandomAlphaNumeric(4)}${String(index).padStart(maxLength, "0")}`;
48
+ batchCodes.push({ code, price_rule_id: priceRuleId });
49
+ }
50
+ console.timeEnd(`batch-${batchIndex}-generate`);
51
+ console.time(`batch-${batchIndex}`);
52
+ // Create the codes in the database
53
+ await discountService.createDiscountCodes(batchCodes);
54
+ // Update the code count after each batch
55
+ await discountService.incrementCodeCount(priceRuleId, batchCount);
56
+ console.timeEnd(`batch-${batchIndex}`);
57
+ console.timeEnd(`batch-${batchIndex}-generate-whole`);
58
+ console.log("\n");
59
+ }
60
+ console.timeEnd("addBulkCodesToRuleStep");
61
+ logger.info(`Created codes: ${createdCodes.length}`);
62
+ await eventBus.emit({
63
+ data: {
64
+ price_rule_id: priceRuleId,
65
+ type: offset === 0 ? "BULK_CODE_CREATION" : "MORE_CODE_ADDITION",
66
+ status: "COMPLETED",
67
+ },
68
+ name: "bulk_discount",
69
+ });
70
+ return new workflows_sdk_1.StepResponse(createdCodes);
71
+ });
72
+ /**
73
+ * Generates a random string of uppercase letters
74
+ */
75
+ function generateRandomAlphaNumeric(length) {
76
+ const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
77
+ let result = "";
78
+ for (let i = 0; i < length; i++) {
79
+ const randomIndex = Math.floor(Math.random() * characters.length);
80
+ result += characters[randomIndex];
81
+ }
82
+ return result;
83
+ }
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWJ1bGstY29kZXMtdG8tcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvZGlzY291bnQvY3JlYXRlLWJ1bGstZGlzY291bnQvc3RlcHMvYWRkLWJ1bGstY29kZXMtdG8tcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFLbUM7QUFDbkMscUVBQTZFO0FBRTdFLDZEQUFnRTtBQVFuRCxRQUFBLHNCQUFzQixHQUFHLElBQUEsMEJBQVUsRUFDOUMsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsRUFDMUUsS0FBSyxFQUFFLEtBQWdCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3hDLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRTlDLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQWtCLDJCQUFlLENBQUMsQ0FBQztJQUM1RSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkUsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFdEQsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUNsQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUscUJBQXFCO1FBQzdCLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDO1FBQ3RDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUU7S0FDN0IsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLGNBQWMsd0JBQXdCLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFM0UsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDM0Isc0JBQXNCLFdBQVcsWUFBWSxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7SUFFaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsbUNBQW1DLENBQ3BDLENBQUM7SUFDSixDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO0lBRXpDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRWpDLDRFQUE0RTtJQUM1RSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUV6RCxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUV4QyxvQ0FBb0M7SUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUV4QixNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUV4QyxPQUFPLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFdkMsS0FBSyxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUUsVUFBVSxHQUFHLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQzVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ3pCLFNBQVMsRUFDVCxjQUFjLEdBQUcsVUFBVSxHQUFHLFNBQVMsQ0FDeEMsQ0FBQztRQUVGLE1BQU0sVUFBVSxHQUE4QyxFQUFFLENBQUM7UUFFakUsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLFVBQVUsaUJBQWlCLENBQUMsQ0FBQztRQUNuRCxnQ0FBZ0M7UUFDaEMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLFVBQVUsV0FBVyxDQUFDLENBQUM7UUFDN0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sS0FBSyxHQUFHLE1BQU0sR0FBRyxVQUFVLEdBQUcsU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEQsTUFBTSxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLEdBQUcsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUVoSCxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsVUFBVSxXQUFXLENBQUMsQ0FBQztRQUVoRCxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNwQyxtQ0FBbUM7UUFDbkMsTUFBTSxlQUFlLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdEQseUNBQXlDO1FBQ3pDLE1BQU0sZUFBZSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVsRSxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN2QyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsVUFBVSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUUxQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUVyRCxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDbEIsSUFBSSxFQUFFO1lBQ0osYUFBYSxFQUFFLFdBQVc7WUFDMUIsSUFBSSxFQUFFLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxvQkFBb0I7WUFDaEUsTUFBTSxFQUFFLFdBQVc7U0FDcEI7UUFDRCxJQUFJLEVBQUUsZUFBZTtLQUN0QixDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksNEJBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN4QyxDQUFDLENBQ0YsQ0FBQztBQUVGOztHQUVHO0FBQ0gsU0FBUywwQkFBMEIsQ0FBQyxNQUFjO0lBQ2hELE1BQU0sVUFBVSxHQUFHLHNDQUFzQyxDQUFDO0lBQzFELElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDaEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMifQ==
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDiscountCodeWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const create_discount_code_step_1 = require("./steps/create-discount-code-step");
6
+ exports.createDiscountCodeWorkflow = (0, workflows_sdk_1.createWorkflow)("create-discount-code", (input) => {
7
+ const discountCode = (0, create_discount_code_step_1.createDiscountCodeStep)(input);
8
+ return new workflows_sdk_1.WorkflowResponse(discountCode);
9
+ });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2NyZWF0ZS1kaXNjb3VudC1jb2RlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcyQztBQUczQyxpRkFBMkU7QUFFOUQsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLDhCQUFjLEVBQ3RELHNCQUFzQixFQUN0QixDQUFDLEtBQXNDLEVBQUUsRUFBRTtJQUN6QyxNQUFNLFlBQVksR0FBRyxJQUFBLGtEQUFzQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRW5ELE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUM1QyxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDiscountCodeStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const discounts_1 = require("../../../../modules/discounts");
6
+ exports.createDiscountCodeStep = (0, workflows_sdk_1.createStep)("create-discount-code-step", async (input, { container }) => {
7
+ const { code, price_rule_id } = input;
8
+ const discountService = container.resolve(discounts_1.DISCOUNT_MODULE);
9
+ const discountCode = await discountService.createDiscountCodes({
10
+ price_rule_id,
11
+ code,
12
+ });
13
+ return new workflows_sdk_1.StepResponse(discountCode, discountCode.id);
14
+ }, async (id, { container }) => {
15
+ if (!id)
16
+ return;
17
+ const discountService = container.resolve(discounts_1.DISCOUNT_MODULE);
18
+ await discountService.deleteDiscountCodes([id]);
19
+ });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRpc2NvdW50LWNvZGUtc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvZGlzY291bnQvY3JlYXRlLWRpc2NvdW50LWNvZGUvc3RlcHMvY3JlYXRlLWRpc2NvdW50LWNvZGUtc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNkU7QUFHN0UsNkRBQWdFO0FBR25ELFFBQUEsc0JBQXNCLEdBQUcsSUFBQSwwQkFBVSxFQUM5QywyQkFBMkIsRUFDM0IsS0FBSyxFQUFFLEtBQXNDLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQzlELE1BQU0sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRXRDLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQWtCLDJCQUFlLENBQUMsQ0FBQztJQUU1RSxNQUFNLFlBQVksR0FBRyxNQUFNLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQztRQUM3RCxhQUFhO1FBQ2IsSUFBSTtLQUNMLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSw0QkFBWSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDekQsQ0FBQyxFQUNELEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQzFCLElBQUksQ0FBQyxFQUFFO1FBQUUsT0FBTztJQUVoQixNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFrQiwyQkFBZSxDQUFDLENBQUM7SUFFNUUsTUFBTSxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FDRixDQUFDIn0=