@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,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ async function GET(req, res) {
5
+ res.sendStatus(200);
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3BsdWdpbi9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGtCQUVDO0FBRk0sS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQy9ELEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdEIsQ0FBQyJ9
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const http_1 = require("@medusajs/framework/http");
4
+ const middlewares_1 = require("./admin/discounts/middlewares");
5
+ const middlewares_2 = require("./store/discounts/middlewares");
6
+ exports.default = (0, http_1.defineMiddlewares)({
7
+ routes: [
8
+ // admin routes
9
+ ...middlewares_1.adminDiscountRoutesMiddlewares,
10
+ // store routes
11
+ ...middlewares_2.storeDiscountRoutesMiddlewares,
12
+ ],
13
+ });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBQTZEO0FBQzdELCtEQUErRTtBQUMvRSwrREFBK0U7QUFFL0Usa0JBQWUsSUFBQSx3QkFBaUIsRUFBQztJQUMvQixNQUFNLEVBQUU7UUFDTixlQUFlO1FBQ2YsR0FBRyw0Q0FBOEI7UUFFakMsZUFBZTtRQUNmLEdBQUcsNENBQThCO0tBQ2xDO0NBQ0YsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const api_response_1 = require("../../../../lib/api-response");
5
+ const apply_coupon_1 = require("../../../../workflows/discount/apply-coupon");
6
+ async function POST(req, res) {
7
+ try {
8
+ const { result } = await (0, apply_coupon_1.applyCouponWorkflow)(req.scope).run({
9
+ input: {
10
+ ...req.validatedBody,
11
+ customerId: req.auth_context?.actor_id || undefined,
12
+ },
13
+ });
14
+ if (!result) {
15
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Failed to create discount price rule", 400));
16
+ }
17
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(result));
18
+ }
19
+ catch (error) {
20
+ console.log("error: ", error);
21
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500));
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2Rpc2NvdW50cy9hcHBseS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLG9CQXdCQztBQWhDRCwrREFJc0M7QUFDdEMsOEVBQWtGO0FBRzNFLEtBQUssVUFBVSxJQUFJLENBQ3hCLEdBQXVELEVBQ3ZELEdBQW1CO0lBRW5CLElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsa0NBQW1CLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUMxRCxLQUFLLEVBQUU7Z0JBQ0wsR0FBRyxHQUFHLENBQUMsYUFBYTtnQkFDcEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxJQUFJLFNBQVM7YUFDcEQ7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPLElBQUEsOEJBQWUsRUFDcEIsR0FBRyxFQUNILElBQUEsa0NBQW1CLEVBQUMsc0NBQXNDLEVBQUUsR0FBRyxDQUFDLENBQ2pFLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsb0NBQXFCLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlCLE9BQU8sSUFBQSw4QkFBZSxFQUFDLEdBQUcsRUFBRSxJQUFBLGtDQUFtQixFQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const api_response_1 = require("../../../../lib/api-response");
5
+ const apply_freebie_1 = require("../../../../workflows/discount/apply-freebie");
6
+ async function POST(req, res) {
7
+ try {
8
+ const { result } = await (0, apply_freebie_1.applyFreebieWorkflow)(req.scope).run({
9
+ input: req.validatedBody,
10
+ });
11
+ if (!result) {
12
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Failed to create discount price rule", 400));
13
+ }
14
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(result));
15
+ }
16
+ catch (error) {
17
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500));
18
+ }
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2Rpc2NvdW50cy9hcHBseS1mcmVlYmllL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBYUEsb0JBb0JDO0FBNUJELCtEQUlzQztBQUN0QyxnRkFBb0Y7QUFHN0UsS0FBSyxVQUFVLElBQUksQ0FDeEIsR0FBc0QsRUFDdEQsR0FBbUI7SUFFbkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSxvQ0FBb0IsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQzNELEtBQUssRUFBRSxHQUFHLENBQUMsYUFBYTtTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPLElBQUEsOEJBQWUsRUFDcEIsR0FBRyxFQUNILElBQUEsa0NBQW1CLEVBQUMsc0NBQXNDLEVBQUUsR0FBRyxDQUFDLENBQ2pFLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsb0NBQXFCLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sSUFBQSw4QkFBZSxFQUFDLEdBQUcsRUFBRSxJQUFBLGtDQUFtQixFQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const api_response_1 = require("../../../../lib/api-response");
5
+ const apply_coupon_1 = require("../../../../workflows/discount/apply-coupon");
6
+ const calculate_coupon_discount_1 = require("../../../../workflows/discount/calculate-coupon-discount");
7
+ async function POST(req, res) {
8
+ try {
9
+ const query = req.scope.resolve("query");
10
+ const { data: priceRules } = await query.graph({
11
+ entity: "discount_price_rule",
12
+ fields: ["*"],
13
+ filters: { auto_apply: true },
14
+ });
15
+ console.log("===> priceRules: ", priceRules);
16
+ const discounts = await Promise.allSettled(priceRules.map(async (priceRule) => {
17
+ let code = null;
18
+ console.log("===> priceRule: ", priceRule);
19
+ if (!priceRule.prefix)
20
+ code = priceRule.discount_code;
21
+ else {
22
+ const { data: codes } = await query.graph({
23
+ entity: "discount_code",
24
+ fields: ["*"],
25
+ filters: {
26
+ $and: [
27
+ { price_rule_id: { $eq: priceRule.id } },
28
+ { usage_limit: 0 },
29
+ ],
30
+ },
31
+ });
32
+ console.log("===> codes: ", codes);
33
+ if (codes.length > 0)
34
+ code = codes[0].code;
35
+ else
36
+ return { discount: 0 };
37
+ }
38
+ console.log("===> code: ", code);
39
+ const { result: { discount }, } = await (0, calculate_coupon_discount_1.calculateCouponDiscountWorkflow)(req.scope).run({
40
+ input: {
41
+ cart_id: req.validatedBody.cart_id,
42
+ code: code,
43
+ customerId: req.auth_context?.actor_id || undefined,
44
+ },
45
+ });
46
+ console.log("===> discount <===");
47
+ console.log("===> discount: ", discount);
48
+ return { discount, code };
49
+ }));
50
+ console.log("Something Something");
51
+ let currentDiscount = 0;
52
+ let currentCode = undefined;
53
+ discounts.forEach((discount) => {
54
+ if (discount.status === "fulfilled") {
55
+ if (currentDiscount > 0 && currentDiscount > discount.value.discount) {
56
+ return;
57
+ }
58
+ currentDiscount = discount.value.discount;
59
+ currentCode = discount.value.code || undefined;
60
+ }
61
+ });
62
+ console.log("===> currentCode: ", currentCode);
63
+ // Fetch the cart and its items
64
+ const { data: carts } = await query.graph({
65
+ entity: "cart",
66
+ fields: ["*", "items.*"],
67
+ filters: { id: req.validatedBody.cart_id },
68
+ });
69
+ const cart = carts[0];
70
+ // Fetch line item adjustments to check for applied coupon code(s)
71
+ const { data: adjustments } = await query.graph({
72
+ entity: "line_item_adjustment",
73
+ fields: ["*"],
74
+ filters: {
75
+ item_id: { $in: cart.items.map((item) => item.id) },
76
+ code: { $ne: null },
77
+ },
78
+ });
79
+ // Group adjustments by code and sum their amounts
80
+ const codeDiscountMap = {};
81
+ adjustments.forEach((adj) => {
82
+ if (adj.code) {
83
+ codeDiscountMap[adj.code] = (codeDiscountMap[adj.code] || 0) + Math.abs(adj.amount || 0);
84
+ }
85
+ });
86
+ // Find the code with the highest total discount
87
+ let appliedCouponCode = "";
88
+ let appliedCouponDiscount = 0;
89
+ for (const [code, total] of Object.entries(codeDiscountMap)) {
90
+ if (total > appliedCouponDiscount) {
91
+ appliedCouponDiscount = total;
92
+ appliedCouponCode = code;
93
+ }
94
+ }
95
+ // If a coupon is already applied and its discount is greater or equal, do not apply auto-applied coupon
96
+ if (appliedCouponCode && appliedCouponDiscount >= currentDiscount) {
97
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({
98
+ message: "Existing coupon provides better or equal discount. No auto coupon applied.",
99
+ code: appliedCouponCode,
100
+ discount: appliedCouponDiscount,
101
+ }));
102
+ }
103
+ if (currentCode) {
104
+ const { result } = await (0, apply_coupon_1.applyCouponWorkflow)(req.scope).run({
105
+ input: {
106
+ code: currentCode,
107
+ cart_id: req.validatedBody.cart_id,
108
+ customerId: req.auth_context?.actor_id || undefined,
109
+ },
110
+ });
111
+ if (!result) {
112
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Failed to apply coupon", 400));
113
+ }
114
+ }
115
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({
116
+ message: currentCode ? "Coupon applied" : "No coupon applied",
117
+ code: currentCode,
118
+ discount: currentDiscount,
119
+ }));
120
+ }
121
+ catch (error) {
122
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500));
123
+ }
124
+ }
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2Rpc2NvdW50cy9hdXRvLWFwcGx5L3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBY0Esb0JBeUpDO0FBbEtELCtEQUlzQztBQUN0Qyw4RUFBa0Y7QUFDbEYsd0dBQTJHO0FBR3BHLEtBQUssVUFBVSxJQUFJLENBQ3hCLEdBQTJELEVBQzNELEdBQW1CO0lBRW5CLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzdDLE1BQU0sRUFBRSxxQkFBcUI7WUFDN0IsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ2IsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTtTQUM5QixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTdDLE1BQU0sU0FBUyxHQUFHLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FDeEMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDakMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBRWhCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNO2dCQUFFLElBQUksR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDO2lCQUNqRCxDQUFDO2dCQUNKLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO29CQUN4QyxNQUFNLEVBQUUsZUFBZTtv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
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ const api_response_1 = require("../../../../../lib/api-response");
5
+ const get_cart_eligible_coupons_1 = require("../../../../../workflows/discount/get-cart-eligible-coupons");
6
+ async function GET(req, res) {
7
+ try {
8
+ const { cart_id } = req.params;
9
+ const { result } = await (0, get_cart_eligible_coupons_1.getCartEligibleCouponsWorkflow)(req.scope).run({
10
+ input: { cart_id, customerId: req?.auth_context?.actor_id || undefined },
11
+ });
12
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(result));
13
+ }
14
+ catch (error) {
15
+ console.log("error: ", error);
16
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500));
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2Rpc2NvdW50cy9jYXJ0LWVsaWdpYmxlLWNvdXBvbnMvW2NhcnRfaWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBWUEsa0JBZ0JDO0FBdkJELGtFQUl5QztBQUN6QywyR0FBNkc7QUFFdEcsS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBK0IsRUFDL0IsR0FBbUI7SUFFbkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFFL0IsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSwwREFBOEIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3JFLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFO1NBQ3pFLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBQSw4QkFBZSxFQUFDLEdBQUcsRUFBRSxJQUFBLG9DQUFxQixFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QixPQUFPLElBQUEsOEJBQWUsRUFBQyxHQUFHLEVBQUUsSUFBQSxrQ0FBbUIsRUFBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztBQUNILENBQUMifQ==
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storeDiscountRoutesMiddlewares = void 0;
4
+ const http_1 = require("@medusajs/framework/http");
5
+ const validators_1 = require("../../admin/discounts/validators");
6
+ exports.storeDiscountRoutesMiddlewares = [
7
+ {
8
+ matcher: "/store/discounts/price-rules",
9
+ methods: ["GET"],
10
+ middlewares: [
11
+ (0, http_1.validateAndTransformQuery)(validators_1.ListDiscountPriceRulesParams, {
12
+ defaults: validators_1.defaultDiscountPriceRuleFields,
13
+ defaultLimit: 10,
14
+ isList: true,
15
+ }),
16
+ ],
17
+ },
18
+ {
19
+ matcher: "/store/discounts/apply",
20
+ method: "POST",
21
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.ApplyDiscountInputValidator)],
22
+ },
23
+ {
24
+ matcher: "/store/discounts/auto-apply",
25
+ method: "POST",
26
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.AutoApplyDiscountInputValidator)],
27
+ },
28
+ {
29
+ matcher: "/store/discounts/apply-freebie",
30
+ method: "POST",
31
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.ApplyFreebieInputValidator)],
32
+ },
33
+ {
34
+ matcher: "/store/discounts/remove",
35
+ method: "POST",
36
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.RemoveDiscountInputValidator)],
37
+ },
38
+ ///////////////////// OFFERS ON PRODUCT ////////////////////
39
+ {
40
+ matcher: "/store/discounts/offers-on-product/:variant_id",
41
+ method: "GET",
42
+ },
43
+ ///////////////////// CART ELIGIBLE COUPONS ////////////////////
44
+ {
45
+ matcher: "/store/discounts/cart-eligible-coupons/:cart_id",
46
+ method: "GET",
47
+ },
48
+ ];
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2Rpc2NvdW50cy9taWRkbGV3YXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFJa0M7QUFFbEMsaUVBTzBDO0FBRTdCLFFBQUEsOEJBQThCLEdBQXNCO0lBQy9EO1FBQ0UsT0FBTyxFQUFFLDhCQUE4QjtRQUN2QyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDaEIsV0FBVyxFQUFFO1lBQ1gsSUFBQSxnQ0FBeUIsRUFBQyx5Q0FBNEIsRUFBRTtnQkFDdEQsUUFBUSxFQUFFLDJDQUE4QjtnQkFDeEMsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLE1BQU0sRUFBRSxJQUFJO2FBQ2IsQ0FBQztTQUNIO0tBQ0Y7SUFDRDtRQUNFLE9BQU8sRUFBRSx3QkFBd0I7UUFDakMsTUFBTSxFQUFFLE1BQU07UUFDZCxXQUFXLEVBQUUsQ0FBQyxJQUFBLCtCQUF3QixFQUFDLHdDQUEyQixDQUFDLENBQUM7S0FDckU7SUFDRDtRQUNFLE9BQU8sRUFBRSw2QkFBNkI7UUFDdEMsTUFBTSxFQUFFLE1BQU07UUFDZCxXQUFXLEVBQUUsQ0FBQyxJQUFBLCtCQUF3QixFQUFDLDRDQUErQixDQUFDLENBQUM7S0FDekU7SUFDRDtRQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7UUFDekMsTUFBTSxFQUFFLE1BQU07UUFDZCxXQUFXLEVBQUUsQ0FBQyxJQUFBLCtCQUF3QixFQUFDLHVDQUEwQixDQUFDLENBQUM7S0FDcEU7SUFDRDtRQUNFLE9BQU8sRUFBRSx5QkFBeUI7UUFDbEMsTUFBTSxFQUFFLE1BQU07UUFDZCxXQUFXLEVBQUUsQ0FBQyxJQUFBLCtCQUF3QixFQUFDLHlDQUE0QixDQUFDLENBQUM7S0FDdEU7SUFDRCw0REFBNEQ7SUFDNUQ7UUFDRSxPQUFPLEVBQUUsZ0RBQWdEO1FBQ3pELE1BQU0sRUFBRSxLQUFLO0tBQ2Q7SUFFRCxnRUFBZ0U7SUFDaEU7UUFDRSxPQUFPLEVBQUUsaURBQWlEO1FBQzFELE1BQU0sRUFBRSxLQUFLO0tBQ2Q7Q0FDRixDQUFDIn0=
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ const api_response_1 = require("../../../../../lib/api-response");
5
+ const get_product_offers_1 = require("../../../../../workflows/discount/get-product-offers");
6
+ async function GET(req, res) {
7
+ try {
8
+ const { variant_id } = req.params;
9
+ const { result } = await (0, get_product_offers_1.calculateProductOfferWorkflow)(req.scope).run({
10
+ input: { variant_id },
11
+ });
12
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(result));
13
+ }
14
+ catch (error) {
15
+ console.log(error);
16
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500));
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2Rpc2NvdW50cy9vZmZlcnMtb24tcHJvZHVjdC9bdmFyaWFudF9pZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSxrQkFnQkM7QUF2QkQsa0VBSXlDO0FBQ3pDLDZGQUFxRztBQUU5RixLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUErQixFQUMvQixHQUFtQjtJQUVuQixJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUVsQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLGtEQUE2QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDcEUsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFO1NBQ3RCLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBQSw4QkFBZSxFQUFDLEdBQUcsRUFBRSxJQUFBLG9DQUFxQixFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLE9BQU8sSUFBQSw4QkFBZSxFQUFDLEdBQUcsRUFBRSxJQUFBLGtDQUFtQixFQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ const api_response_1 = require("../../../../lib/api-response");
5
+ async function GET(req, res) {
6
+ try {
7
+ const query = req.scope.resolve("query");
8
+ const { data, metadata } = await query.graph({
9
+ entity: "discount_price_rule",
10
+ ...req.queryConfig,
11
+ filters: req.filterableFields,
12
+ });
13
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({ data, metadata }));
14
+ }
15
+ catch (error) {
16
+ const message = error instanceof Error ? error.message : "An unexpected error occurred";
17
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(message, 500));
18
+ }
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2Rpc2NvdW50cy9wcmljZS1ydWxlcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLGtCQW1CQztBQTFCRCwrREFJc0M7QUFHL0IsS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBaUUsRUFDakUsR0FBbUI7SUFFbkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDM0MsTUFBTSxFQUFFLHFCQUFxQjtZQUM3QixHQUFHLEdBQUcsQ0FBQyxXQUFXO1lBQ2xCLE9BQU8sRUFBRSxHQUFHLENBQUMsZ0JBQWdCO1NBQzlCLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBQSw4QkFBZSxFQUFDLEdBQUcsRUFBRSxJQUFBLG9DQUFxQixFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sT0FBTyxHQUNYLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDO1FBQzFFLE9BQU8sSUFBQSw4QkFBZSxFQUFDLEdBQUcsRUFBRSxJQUFBLGtDQUFtQixFQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7QUFDSCxDQUFDIn0=
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const api_response_1 = require("../../../../lib/api-response");
5
+ const remove_coupon_1 = require("../../../../workflows/discount/remove-coupon");
6
+ async function POST(req, res) {
7
+ try {
8
+ const { result } = await (0, remove_coupon_1.removeCouponWorkflow)(req.scope).run({
9
+ input: req.validatedBody,
10
+ });
11
+ if (!result) {
12
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Failed to create discount price rule", 400));
13
+ }
14
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(result));
15
+ }
16
+ catch (error) {
17
+ console.log("error: ", error);
18
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500));
19
+ }
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2Rpc2NvdW50cy9yZW1vdmUvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFhQSxvQkFxQkM7QUE3QkQsK0RBSXNDO0FBQ3RDLGdGQUFvRjtBQUc3RSxLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUF3RCxFQUN4RCxHQUFtQjtJQUVuQixJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLG9DQUFvQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDM0QsS0FBSyxFQUFFLEdBQUcsQ0FBQyxhQUFhO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU8sSUFBQSw4QkFBZSxFQUNwQixHQUFHLEVBQ0gsSUFBQSxrQ0FBbUIsRUFBQyxzQ0FBc0MsRUFBRSxHQUFHLENBQUMsQ0FDakUsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLElBQUEsOEJBQWUsRUFBQyxHQUFHLEVBQUUsSUFBQSxvQ0FBcUIsRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUIsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsa0NBQW1CLEVBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7QUFDSCxDQUFDIn0=
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ async function GET(req, res) {
5
+ res.sendStatus(200);
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3BsdWdpbi9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGtCQUVDO0FBRk0sS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQy9ELEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdEIsQ0FBQyJ9
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./workflows"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE0QiJ9
@@ -0,0 +1,80 @@
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.config = void 0;
7
+ exports.default = priceRuleStatusUpdates;
8
+ const utils_1 = require("@medusajs/framework/utils");
9
+ const moment_1 = __importDefault(require("moment"));
10
+ const discounts_1 = require("../modules/discounts");
11
+ exports.config = {
12
+ name: "price-rule-status-updates",
13
+ // every day at 00:02 AM
14
+ schedule: "0 * * * *",
15
+ // Test: every 1 minute
16
+ // schedule: "* * * * *",
17
+ };
18
+ async function priceRuleStatusUpdates(container) {
19
+ const logger = container.resolve("logger");
20
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
21
+ const discountService = container.resolve(discounts_1.DISCOUNT_MODULE);
22
+ logger.info("Price rule and freebie rule status updates");
23
+ const { data: priceRules } = await query.graph({
24
+ entity: "discount_price_rule",
25
+ fields: ["*"],
26
+ });
27
+ for (const priceRule of priceRules) {
28
+ const { id, starts_at, ends_at, status } = priceRule;
29
+ let updatedStatus = "ACTIVE";
30
+ if (status === "DEACTIVATED") {
31
+ updatedStatus = "DEACTIVATED";
32
+ }
33
+ else {
34
+ const date = (0, moment_1.default)().toDate();
35
+ const startDate = (0, moment_1.default)(starts_at).toDate();
36
+ const endDate = ends_at ? (0, moment_1.default)(ends_at).toDate() : null;
37
+ if (endDate && endDate <= date)
38
+ updatedStatus = "EXPIRED";
39
+ else if (startDate > date)
40
+ updatedStatus = "SCHEDULED";
41
+ }
42
+ console.log(updatedStatus, status);
43
+ if (updatedStatus !== status) {
44
+ logger.info(`Updating price rule ${id} status from ${status} to ${updatedStatus}`);
45
+ await discountService.updateDiscountPriceRules({
46
+ id,
47
+ status: updatedStatus,
48
+ });
49
+ }
50
+ }
51
+ const { data: freebieRules } = await query.graph({
52
+ entity: "freebie_rule",
53
+ fields: ["*"],
54
+ });
55
+ for (const freebieRule of freebieRules) {
56
+ const { id, starts_at, ends_at, status } = freebieRule;
57
+ let updatedStatus = "ACTIVE";
58
+ if (status === "DEACTIVATED") {
59
+ updatedStatus = "DEACTIVATED";
60
+ }
61
+ else {
62
+ const date = (0, moment_1.default)().toDate();
63
+ const startDate = (0, moment_1.default)(starts_at).toDate();
64
+ const endDate = ends_at ? (0, moment_1.default)(ends_at).toDate() : null;
65
+ if (endDate && endDate < date)
66
+ updatedStatus = "EXPIRED";
67
+ else if (startDate > date)
68
+ updatedStatus = "SCHEDULED";
69
+ }
70
+ if (updatedStatus !== status) {
71
+ logger.info(`Updating freebie rule ${id} status from ${status} to ${updatedStatus}`);
72
+ await discountService.updateFreebieRules({
73
+ id,
74
+ status: updatedStatus,
75
+ });
76
+ }
77
+ }
78
+ logger.info("Price rule and freebie rule status updates completed");
79
+ }
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtcnVsZS1zdGF0dXMtdXBkYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9qb2JzL3ByaWNlLXJ1bGUtc3RhdHVzLXVwZGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBZUEseUNBK0VDO0FBN0ZELHFEQUFzRTtBQUN0RSxvREFBNEI7QUFFNUIsb0RBQXVEO0FBRzFDLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLElBQUksRUFBRSwyQkFBMkI7SUFDakMsd0JBQXdCO0lBQ3hCLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLHVCQUF1QjtJQUN2Qix5QkFBeUI7Q0FDMUIsQ0FBQztBQUVhLEtBQUssVUFBVSxzQkFBc0IsQ0FDbEQsU0FBMEI7SUFFMUIsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWpFLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQWtCLDJCQUFlLENBQUMsQ0FBQztJQUU1RSxNQUFNLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7SUFFMUQsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDN0MsTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUM7S0FDZCxDQUFDLENBQUM7SUFFSCxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ25DLE1BQU0sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUM7UUFDckQsSUFBSSxhQUFhLEdBQ2YsUUFBUSxDQUFDO1FBRVgsSUFBSSxNQUFNLEtBQUssYUFBYSxFQUFFLENBQUM7WUFD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
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSuccessResponse = createSuccessResponse;
4
+ exports.createErrorResponse = createErrorResponse;
5
+ exports.sendApiResponse = sendApiResponse;
6
+ /**
7
+ * Creates a success response with standard format
8
+ * @param data Response data
9
+ * @param message Success message (defaults to "OK")
10
+ * @returns Standardized success response
11
+ */
12
+ function createSuccessResponse(data, message = "OK") {
13
+ return {
14
+ data,
15
+ message,
16
+ status: 200,
17
+ success: true,
18
+ };
19
+ }
20
+ /**
21
+ * Creates an error response with standard format
22
+ * @param message Error message
23
+ * @param status HTTP status code (defaults to 200 as per requirements)
24
+ * @returns Standardized error response
25
+ */
26
+ function createErrorResponse(message, status) {
27
+ return {
28
+ data: null,
29
+ message,
30
+ status,
31
+ success: false,
32
+ };
33
+ }
34
+ /**
35
+ * Utility function to send a standardized API response
36
+ * @param res Response object
37
+ * @param response Standardized API response
38
+ */
39
+ function sendApiResponse(res, response) {
40
+ res.status(response.status).json(response);
41
+ }
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9hcGktcmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsc0RBVUM7QUFRRCxrREFVQztBQU9ELDBDQUVDO0FBM0NEOzs7OztHQUtHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQ25DLElBQU8sRUFDUCxPQUFPLEdBQUcsSUFBSTtJQUVkLE9BQU87UUFDTCxJQUFJO1FBQ0osT0FBTztRQUNQLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLElBQUk7S0FDZCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQ2pDLE9BQWUsRUFDZixNQUFjO0lBRWQsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJO1FBQ1YsT0FBTztRQUNQLE1BQU07UUFDTixPQUFPLEVBQUUsS0FBSztLQUNmLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxHQUFRLEVBQUUsUUFBMEI7SUFDbEUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzdDLENBQUMifQ==
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toTwoDecimal = exports.ProductType = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.ProductType = zod_1.z.enum(["SINGLE", "FREEBIE", "BYOB", "COMBO"]);
6
+ const toTwoDecimal = (value) => {
7
+ return Number(value.toFixed(2));
8
+ };
9
+ exports.toTwoDecimal = toTwoDecimal;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUF3QjtBQUVYLFFBQUEsV0FBVyxHQUFHLE9BQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBR25FLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7SUFDNUMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUZXLFFBQUEsWUFBWSxnQkFFdkIifQ==
@@ -0,0 +1,16 @@
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
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const discounts_1 = __importDefault(require("../modules/discounts"));
8
+ const customer_1 = __importDefault(require("@medusajs/medusa/customer"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: discounts_1.default.linkable.freebieRule,
11
+ isList: true,
12
+ }, {
13
+ linkable: customer_1.default.linkable.customer,
14
+ isList: true,
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXRtLWZyZWViaWUtcnVsZS13aXRoLWN1c3RvbWVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW5rcy9tdG0tZnJlZWJpZS1ydWxlLXdpdGgtY3VzdG9tZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQXVEO0FBQ3ZELHFFQUFrRDtBQUNsRCx5RUFBdUQ7QUFFdkQsa0JBQWUsSUFBQSxrQkFBVSxFQUNyQjtJQUNJLFFBQVEsRUFBRSxtQkFBYyxDQUFDLFFBQVEsQ0FBQyxXQUFXO0lBQzdDLE1BQU0sRUFBRSxJQUFJO0NBQ2YsRUFDRDtJQUNJLFFBQVEsRUFBRSxrQkFBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRO0lBQzFDLE1BQU0sRUFBRSxJQUFJO0NBQ2YsQ0FDSixDQUFBIn0=
@@ -0,0 +1,16 @@
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
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const product_1 = __importDefault(require("@medusajs/medusa/product"));
8
+ const discounts_1 = __importDefault(require("../modules/discounts"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: discounts_1.default.linkable.freebieRule,
11
+ isList: true,
12
+ }, {
13
+ linkable: product_1.default.linkable.productCategory,
14
+ isList: true,
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXRtLWZyZWViaWUtcnVsZS13aXRoLXByb2R1Y3RzLWNhdGVnb3JpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlua3MvbXRtLWZyZWViaWUtcnVsZS13aXRoLXByb2R1Y3RzLWNhdGVnb3JpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBdUQ7QUFDdkQsdUVBQXFEO0FBRXJELHFFQUFrRDtBQUVsRCxrQkFBZSxJQUFBLGtCQUFVLEVBQ3ZCO0lBQ0UsUUFBUSxFQUFFLG1CQUFjLENBQUMsUUFBUSxDQUFDLFdBQVc7SUFDN0MsTUFBTSxFQUFFLElBQUk7Q0FDYixFQUNEO0lBQ0UsUUFBUSxFQUFFLGlCQUFhLENBQUMsUUFBUSxDQUFDLGVBQWU7SUFDaEQsTUFBTSxFQUFFLElBQUk7Q0FDYixDQUNGLENBQUMifQ==
@@ -0,0 +1,18 @@
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
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const product_1 = __importDefault(require("@medusajs/medusa/product"));
8
+ const discounts_1 = __importDefault(require("../modules/discounts"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: discounts_1.default.linkable.freebieRule,
11
+ isList: true,
12
+ }, {
13
+ linkable: product_1.default.linkable.productVariant,
14
+ isList: true,
15
+ }, {
16
+ database: { extraColumns: { is_freebie: { type: "boolean" } } },
17
+ });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXRtLWZyZWViaWUtcnVsZS13aXRoLXByb2R1Y3RzLXZhcmlhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpbmtzL210bS1mcmVlYmllLXJ1bGUtd2l0aC1wcm9kdWN0cy12YXJpYW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUF1RDtBQUN2RCx1RUFBcUQ7QUFFckQscUVBQWtEO0FBRWxELGtCQUFlLElBQUEsa0JBQVUsRUFDdkI7SUFDRSxRQUFRLEVBQUUsbUJBQWMsQ0FBQyxRQUFRLENBQUMsV0FBVztJQUM3QyxNQUFNLEVBQUUsSUFBSTtDQUNiLEVBQ0Q7SUFDRSxRQUFRLEVBQUUsaUJBQWEsQ0FBQyxRQUFRLENBQUMsY0FBYztJQUMvQyxNQUFNLEVBQUUsSUFBSTtDQUNiLEVBQ0Q7SUFDRSxRQUFRLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtDQUNoRSxDQUNGLENBQUMifQ==
@@ -0,0 +1,16 @@
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
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const discounts_1 = __importDefault(require("../modules/discounts"));
8
+ const customer_1 = __importDefault(require("@medusajs/medusa/customer"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: discounts_1.default.linkable.discountPriceRule,
11
+ isList: true,
12
+ }, {
13
+ linkable: customer_1.default.linkable.customer,
14
+ isList: true,
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXRtLXByaWNlLXJ1bGUtd2l0aC1jdXN0b21lcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlua3MvbXRtLXByaWNlLXJ1bGUtd2l0aC1jdXN0b21lcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBdUQ7QUFDdkQscUVBQWtEO0FBQ2xELHlFQUF1RDtBQUV2RCxrQkFBZSxJQUFBLGtCQUFVLEVBQ3JCO0lBQ0ksUUFBUSxFQUFFLG1CQUFjLENBQUMsUUFBUSxDQUFDLGlCQUFpQjtJQUNuRCxNQUFNLEVBQUUsSUFBSTtDQUNmLEVBQ0Q7SUFDSSxRQUFRLEVBQUUsa0JBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUTtJQUMxQyxNQUFNLEVBQUUsSUFBSTtDQUNmLENBQ0osQ0FBQSJ9
@@ -0,0 +1,16 @@
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
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const product_1 = __importDefault(require("@medusajs/medusa/product"));
8
+ const discounts_1 = __importDefault(require("../modules/discounts"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: discounts_1.default.linkable.discountPriceRule,
11
+ isList: true,
12
+ }, {
13
+ linkable: product_1.default.linkable.productCategory,
14
+ isList: true,
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXRtLXByaWNlLXJ1bGUtd2l0aC1wcm9kdWN0cy1jYXRlZ29yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpbmtzL210bS1wcmljZS1ydWxlLXdpdGgtcHJvZHVjdHMtY2F0ZWdvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUF1RDtBQUN2RCx1RUFBcUQ7QUFFckQscUVBQWtEO0FBRWxELGtCQUFlLElBQUEsa0JBQVUsRUFDdkI7SUFDRSxRQUFRLEVBQUUsbUJBQWMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCO0lBQ25ELE1BQU0sRUFBRSxJQUFJO0NBQ2IsRUFDRDtJQUNFLFFBQVEsRUFBRSxpQkFBYSxDQUFDLFFBQVEsQ0FBQyxlQUFlO0lBQ2hELE1BQU0sRUFBRSxJQUFJO0NBQ2IsQ0FDRixDQUFDIn0=
@@ -0,0 +1,16 @@
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
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const product_1 = __importDefault(require("@medusajs/medusa/product"));
8
+ const discounts_1 = __importDefault(require("../modules/discounts"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: discounts_1.default.linkable.discountPriceRule,
11
+ isList: true,
12
+ }, {
13
+ linkable: product_1.default.linkable.productVariant,
14
+ isList: true,
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXRtLXByaWNlLXJ1bGUtd2l0aC1wcm9kdWN0cy12YXJpYW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW5rcy9tdG0tcHJpY2UtcnVsZS13aXRoLXByb2R1Y3RzLXZhcmlhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQXVEO0FBQ3ZELHVFQUFxRDtBQUVyRCxxRUFBa0Q7QUFFbEQsa0JBQWUsSUFBQSxrQkFBVSxFQUN2QjtJQUNFLFFBQVEsRUFBRSxtQkFBYyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUI7SUFDbkQsTUFBTSxFQUFFLElBQUk7Q0FDYixFQUNEO0lBQ0UsUUFBUSxFQUFFLGlCQUFhLENBQUMsUUFBUSxDQUFDLGNBQWM7SUFDL0MsTUFBTSxFQUFFLElBQUk7Q0FDYixDQUNGLENBQUMifQ==