@devx-commerce/plugin-discounts-svaraa 0.0.2-beta.2 → 0.0.2-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/api/admin/discounts/validators.js +16 -1
- package/.medusa/server/src/api/middlewares.js +4 -1
- package/.medusa/server/src/api/pos/discounts/apply/route.js +151 -0
- package/.medusa/server/src/api/pos/discounts/apply-freebie/route.js +20 -0
- package/.medusa/server/src/api/pos/discounts/auto-apply/route.js +188 -0
- package/.medusa/server/src/api/pos/discounts/cart-eligible-coupons/[cart_id]/route.js +39 -0
- package/.medusa/server/src/api/pos/discounts/coupons/[id]/route.js +25 -0
- package/.medusa/server/src/api/pos/discounts/middlewares.js +99 -0
- package/.medusa/server/src/api/pos/discounts/offers-on-product/[variant_id]/route.js +19 -0
- package/.medusa/server/src/api/pos/discounts/price-rules/route.js +89 -0
- package/.medusa/server/src/api/pos/discounts/price-rules-list/route.js +54 -0
- package/.medusa/server/src/api/pos/discounts/remove/route.js +41 -0
- package/.medusa/server/src/api/pos/discounts/remove-store-discount/route.js +54 -0
- package/.medusa/server/src/api/pos/discounts/validators.js +358 -0
- package/.medusa/server/src/api/pos/discounts/verify-store-discount/route.js +394 -0
- package/.medusa/server/src/api/store/discounts/apply/route.js +126 -8
- package/.medusa/server/src/api/store/discounts/auto-apply/route.js +143 -80
- package/.medusa/server/src/api/store/discounts/cart-eligible-coupons/[cart_id]/route.js +23 -3
- package/.medusa/server/src/api/store/discounts/price-rules/route.js +65 -2
- package/.medusa/server/src/api/store/discounts/remove/route.js +23 -3
- package/.medusa/server/src/index.js +2 -1
- package/.medusa/server/src/lib/constant.js +126 -0
- package/.medusa/server/src/lib/helper.js +68 -0
- package/.medusa/server/src/lib/redis-utils.js +33 -0
- package/.medusa/server/src/lib/send-otp-helper.js +37 -0
- package/.medusa/server/src/lib/utils.js +11 -2
- package/.medusa/server/src/modules/discounts/migrations/Migration20250822052209.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250825073038.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250901083847.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250918095658.js +14 -0
- package/.medusa/server/src/modules/discounts/models/price-rule.js +13 -1
- package/.medusa/server/src/modules/discounts/service.js +9 -7
- package/.medusa/server/src/subscribers/index.js +18 -0
- package/.medusa/server/src/subscribers/promocode-subscriber.js +77 -0
- package/.medusa/server/src/workflows/discount/add-more-code-in-price-rule/index.js +3 -3
- package/.medusa/server/src/workflows/discount/apply-coupon/index.js +36 -26
- package/.medusa/server/src/workflows/discount/apply-coupon/steps/apply-coupon-step.js +25 -187
- package/.medusa/server/src/workflows/discount/apply-coupon/steps/generate-adjustment-line-item.js +27 -9
- package/.medusa/server/src/workflows/discount/apply-coupon/steps/validate-coupon-step.js +3 -5
- package/.medusa/server/src/workflows/discount/auto-apply-coupon/steps/auto-apply-coupon.js +157 -87
- package/.medusa/server/src/workflows/discount/calculate-coupon-discount/index.js +36 -32
- package/.medusa/server/src/workflows/discount/calculate-coupon-discount/step/fetch-price-rule-by-code.js +36 -0
- package/.medusa/server/src/workflows/discount/create-discount-price-rule/steps/create-discount-price-rule-step.js +2 -2
- package/.medusa/server/src/workflows/discount/create-subscriber-to-discount-price-rule.js +10 -0
- package/.medusa/server/src/workflows/discount/get-cart-eligible-coupons/index.js +2 -1
- package/.medusa/server/src/workflows/discount/get-cart-eligible-coupons/step/get-cart-eligible-coupon.js +33 -10
- package/.medusa/server/src/workflows/discount/index.js +5 -1
- package/.medusa/server/src/workflows/discount/remove-coupon/index.js +22 -2
- package/.medusa/server/src/workflows/discount/remove-coupon/step/remove-coupon-step.js +45 -26
- package/.medusa/server/src/workflows/discount/rounded-cart-total/index.js +13 -0
- package/.medusa/server/src/workflows/discount/steps/rounded-cart-total.js +168 -0
- package/.medusa/server/src/workflows/discount/update-coupon-code-stats/index.js +12 -0
- package/.medusa/server/src/workflows/discount/update-coupon-code-stats/step/update-coupon-code-stats.js +52 -0
- package/.medusa/server/src/workflows/discount/update-discount-price-rule/index.js +1 -3
- package/package.json +4 -2
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapPromoToDiscountRule = mapPromoToDiscountRule;
|
|
4
|
+
function mapPromoToDiscountRule(promo, mappingIds = [], makeTypes = [], stockTypes = [], styleCodes = [], count = 0, code = "") {
|
|
5
|
+
const prefix = code?.toUpperCase().includes("BIRTH")
|
|
6
|
+
? "BIRTH"
|
|
7
|
+
: code?.toUpperCase().includes("ANN")
|
|
8
|
+
? "ANN"
|
|
9
|
+
: undefined;
|
|
10
|
+
return {
|
|
11
|
+
title: promo?.title || "",
|
|
12
|
+
description: promo?.promocode_description || "",
|
|
13
|
+
type: promo?.per_amt_on ? "FIXED" : "PERCENTAGE",
|
|
14
|
+
starts_at: new Date(promo.from_date).toISOString(),
|
|
15
|
+
ends_at: new Date(promo.to_date).toISOString(),
|
|
16
|
+
entry_date: new Date(promo.entry_date).toISOString(),
|
|
17
|
+
get_percent: promo?.per_amt_on ? undefined : promo?.per_amt_value ?? undefined,
|
|
18
|
+
get_flat_discount: promo?.per_amt_on ? promo?.per_amt_value : undefined,
|
|
19
|
+
code: "",
|
|
20
|
+
min_order_value: promo?.min_transaction_value ?? undefined,
|
|
21
|
+
min_order_qty: undefined,
|
|
22
|
+
max_discount: promo?.per_amt_on ? promo?.max_per_amt_value : 0,
|
|
23
|
+
usage_limit_per_customer_type: promo?.promocode_type_id == 0
|
|
24
|
+
? "UNLIMITED"
|
|
25
|
+
: promo?.promocode_type_id == 1 ? "SPECIFIC" : promo?.promocode_type_id == 2
|
|
26
|
+
? "ONLY_ONCE"
|
|
27
|
+
: "UNLIMITED",
|
|
28
|
+
usage_limit_per_customer_specific: promo?.promocode_type_id == 1 ? 1 : undefined,
|
|
29
|
+
usage_limit: promo?.promocode_type_id == 0
|
|
30
|
+
? "UNLIMITED"
|
|
31
|
+
: promo?.promocode_type_id == 1 ? "SPECIFIC" : promo?.promocode_type_id == 2
|
|
32
|
+
? "ONLY_ONCE"
|
|
33
|
+
: "UNLIMITED",
|
|
34
|
+
usage_limit_specific: promo?.promocode_type_id == 1 ? 1 : undefined,
|
|
35
|
+
usage_limit_per_cart_type: "ONLY_ONCE",
|
|
36
|
+
usage_limit_per_cart_specific: undefined,
|
|
37
|
+
status: new Date(promo?.to_date) < new Date()
|
|
38
|
+
? "EXPIRED"
|
|
39
|
+
: new Date(promo?.from_date) > new Date()
|
|
40
|
+
? "SCHEDULED"
|
|
41
|
+
: "ACTIVE",
|
|
42
|
+
promocode_type_id: promo?.promocode_type_id,
|
|
43
|
+
is_all_branch: promo?.is_all_branch ?? false,
|
|
44
|
+
is_category: promo?.is_category ?? false,
|
|
45
|
+
is_make_type: promo?.is_make_type ?? false,
|
|
46
|
+
is_style: promo?.is_style ?? false,
|
|
47
|
+
is_stock_type: promo?.is_stock_type ?? false,
|
|
48
|
+
is_birthday: !!(code?.toUpperCase().includes("BIRTH")),
|
|
49
|
+
is_anniversary: !!(code?.toUpperCase().includes("ANN")),
|
|
50
|
+
assign_branch_nos: promo?.assign_branch_nos ?? undefined,
|
|
51
|
+
visibility: true,
|
|
52
|
+
only_for_new_customer: false,
|
|
53
|
+
auto_apply: true,
|
|
54
|
+
applicable_on_bundle: false,
|
|
55
|
+
applies_on_components: undefined,
|
|
56
|
+
applies_on: "MRP",
|
|
57
|
+
applicable_category_ids: promo?.is_category ? mappingIds : [],
|
|
58
|
+
applicable_make_types: promo?.is_make_type ? makeTypes : [],
|
|
59
|
+
applicable_styles: promo?.is_style ? styleCodes : [],
|
|
60
|
+
applicable_stock_types: promo?.is_stock_type ? stockTypes : [],
|
|
61
|
+
buy_x: undefined,
|
|
62
|
+
get_y: undefined,
|
|
63
|
+
at_y: undefined,
|
|
64
|
+
prefix: undefined,
|
|
65
|
+
code_count: count,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUErQ0Esd0RBMEVDO0FBMUVELFNBQWdCLHNCQUFzQixDQUNwQyxLQUFVLEVBQ1YsYUFBdUIsRUFBRSxFQUN6QixZQUFzQixFQUFFLEVBQ3hCLGFBQXVCLEVBQUUsRUFDekIsYUFBdUIsRUFBRSxFQUN6QixRQUFlLENBQUMsRUFDaEIsT0FBYyxFQUFFO0lBRWhCLE1BQU0sTUFBTSxHQUFzQixJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNuRSxDQUFDLENBQUMsT0FBTztRQUNULENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUNuQyxDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDbEIsT0FBTztRQUNMLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDekIsV0FBVyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsSUFBSSxFQUFFO1FBQy9DLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVk7UUFDaEQsU0FBUyxFQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUU7UUFDakQsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUU7UUFDOUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLEVBQUU7UUFDcEQsV0FBVyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLGFBQWEsSUFB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
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CACHE_VALIDATION_TIMES = exports.buildRedisKey = void 0;
|
|
4
|
+
const buildRedisKey = (prefix, data) => {
|
|
5
|
+
const normalize = (obj) => {
|
|
6
|
+
if (obj === null || obj === undefined)
|
|
7
|
+
return String(obj);
|
|
8
|
+
if (typeof obj === "string" ||
|
|
9
|
+
typeof obj === "number" ||
|
|
10
|
+
typeof obj === "boolean")
|
|
11
|
+
return String(obj);
|
|
12
|
+
if (Array.isArray(obj)) {
|
|
13
|
+
return "[" + obj.map(normalize).join(",") + "]";
|
|
14
|
+
}
|
|
15
|
+
if (typeof obj === "object") {
|
|
16
|
+
const sortedKeys = Object.keys(obj).sort(); // sort for deterministic order
|
|
17
|
+
return ("{" +
|
|
18
|
+
sortedKeys.map((key) => `${key}:${normalize(obj[key])}`).join(",") +
|
|
19
|
+
"}");
|
|
20
|
+
}
|
|
21
|
+
throw new Error("Unsupported type in Redis key builder");
|
|
22
|
+
};
|
|
23
|
+
return `${prefix}:${normalize(data)}`;
|
|
24
|
+
};
|
|
25
|
+
exports.buildRedisKey = buildRedisKey;
|
|
26
|
+
exports.CACHE_VALIDATION_TIMES = {
|
|
27
|
+
PRICE_RULE: 600,
|
|
28
|
+
DISCOUNT_CODE: 3,
|
|
29
|
+
FREEBIE_RULE: 30,
|
|
30
|
+
ORDER: 30,
|
|
31
|
+
NON_NEGATIVE_ADJUSTMENT_LINE_ITEMS: 15,
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXMtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JlZGlzLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFPLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBYyxFQUFFLElBQVMsRUFBVSxFQUFFO0lBQ2pFLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBUSxFQUFVLEVBQUU7UUFDckMsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTO1lBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsSUFDRSxPQUFPLEdBQUcsS0FBSyxRQUFRO1lBQ3ZCLE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFDdkIsT0FBTyxHQUFHLEtBQUssU0FBUztZQUV4QixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDbEQsQ0FBQztRQUNELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLCtCQUErQjtZQUMzRSxPQUFPLENBQ0wsR0FBRztnQkFDSCxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ2xFLEdBQUcsQ0FDSixDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUM7SUFFRixPQUFPLEdBQUcsTUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQ3hDLENBQUMsQ0FBQztBQXhCVyxRQUFBLGFBQWEsaUJBd0J4QjtBQUVXLFFBQUEsc0JBQXNCLEdBQUc7SUFDcEMsVUFBVSxFQUFFLEdBQUc7SUFDZixhQUFhLEVBQUUsQ0FBQztJQUNoQixZQUFZLEVBQUUsRUFBRTtJQUNoQixLQUFLLEVBQUUsRUFBRTtJQUNULGtDQUFrQyxFQUFFLEVBQUU7Q0FDdkMsQ0FBQyJ9
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendOtpViaSNS = sendOtpViaSNS;
|
|
4
|
+
const client_sns_1 = require("@aws-sdk/client-sns");
|
|
5
|
+
async function sendOtpViaSNS(phone, code, options, logger) {
|
|
6
|
+
if (!options.snsOptions) {
|
|
7
|
+
logger.error("SNS options are required to send OTP");
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
logger.info("Sending SMS via SNS");
|
|
11
|
+
const { region, accessKeyId, secretAccessKey, template } = options.snsOptions;
|
|
12
|
+
// Validate required SNS options
|
|
13
|
+
if (!region || !accessKeyId || !secretAccessKey || !template) {
|
|
14
|
+
logger.error("Missing required SNS configuration options");
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
const message = template.replaceAll("{passCode}", code);
|
|
18
|
+
const client = new client_sns_1.SNSClient({
|
|
19
|
+
region,
|
|
20
|
+
credentials: { accessKeyId, secretAccessKey },
|
|
21
|
+
});
|
|
22
|
+
try {
|
|
23
|
+
const command = new client_sns_1.PublishCommand({
|
|
24
|
+
Message: message,
|
|
25
|
+
PhoneNumber: phone,
|
|
26
|
+
});
|
|
27
|
+
console.log(`Sending SMS via SNS command: ${JSON.stringify(command)}`);
|
|
28
|
+
await client.send(command);
|
|
29
|
+
logger.info(`SMS sent successfully to ${phone}`);
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
logger.error("Error sending SMS via SNS: ", error);
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1vdHAtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZW5kLW90cC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxzQ0F3Q0M7QUE1Q0Qsb0RBQWdFO0FBSXpELEtBQUssVUFBVSxhQUFhLENBQ2pDLEtBQWEsRUFDYixJQUFZLEVBQ1osT0FBWSxFQUNaLE1BQWM7SUFFZCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUNyRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDbkMsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFFOUUsZ0NBQWdDO0lBQ2hDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3RCxNQUFNLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDM0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxzQkFBUyxDQUFDO1FBQzNCLE1BQU07UUFDTixXQUFXLEVBQUUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFO0tBQzlDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLElBQUksMkJBQWMsQ0FBQztZQUNqQyxPQUFPLEVBQUUsT0FBTztZQUNoQixXQUFXLEVBQUUsS0FBSztTQUNuQixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RSxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toMajor = exports.toMinor = exports.toTwoDecimal = exports.ProductType = void 0;
|
|
3
|
+
exports.getISTMonthDay = exports.toMajor = exports.toMinor = exports.toTwoDecimal = exports.ProductType = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
exports.ProductType = zod_1.z.enum(["SINGLE", "FREEBIE", "BYOB", "COMBO"]);
|
|
6
6
|
const toTwoDecimal = (value) => {
|
|
@@ -11,4 +11,13 @@ const toMinor = (n) => Math.round(n * 100);
|
|
|
11
11
|
exports.toMinor = toMinor;
|
|
12
12
|
const toMajor = (n) => (0, exports.toTwoDecimal)(n / 100);
|
|
13
13
|
exports.toMajor = toMajor;
|
|
14
|
-
|
|
14
|
+
const getISTMonthDay = (date) => {
|
|
15
|
+
const d = new Date(date);
|
|
16
|
+
return d.toLocaleDateString("en-CA", {
|
|
17
|
+
timeZone: "Asia/Kolkata",
|
|
18
|
+
month: "2-digit",
|
|
19
|
+
day: "2-digit",
|
|
20
|
+
}); // "MM-DD"
|
|
21
|
+
};
|
|
22
|
+
exports.getISTMonthDay = getISTMonthDay;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUF3QjtBQUVYLFFBQUEsV0FBVyxHQUFHLE9BQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBR25FLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7SUFDNUMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUZXLFFBQUEsWUFBWSxnQkFFdkI7QUFFSyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFBN0MsUUFBQSxPQUFPLFdBQXNDO0FBQ25ELE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFBLG9CQUFZLEVBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQS9DLFFBQUEsT0FBTyxXQUF3QztBQUdyRCxNQUFPLGNBQWMsR0FBRyxDQUFDLElBQW1CLEVBQUMsRUFBRTtJQUNwRCxNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixPQUFPLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7UUFDbkMsUUFBUSxFQUFFLGNBQWM7UUFDeEIsS0FBSyxFQUFFLFNBQVM7UUFDaEIsR0FBRyxFQUFFLFNBQVM7S0FDZixDQUFDLENBQUMsQ0FBQyxVQUFVO0FBQ2hCLENBQUMsQ0FBQTtBQVBhLFFBQUEsY0FBYyxrQkFPM0IifQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20250822052209 = void 0;
|
|
4
|
+
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
+
class Migration20250822052209 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table if exists "discount_price_rule" add column if not exists "promocode_type_id" integer not null, add column if not exists "is_all_branch" boolean not null, add column if not exists "assign_branch_nos" text null, add column if not exists "thumbnail" text null;`);
|
|
8
|
+
}
|
|
9
|
+
async down() {
|
|
10
|
+
this.addSql(`alter table if exists "discount_price_rule" drop column if exists "promocode_type_id", drop column if exists "is_all_branch", drop column if exists "assign_branch_nos", drop column if exists "thumbnail";`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Migration20250822052209 = Migration20250822052209;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA4MjIwNTIyMDkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kaXNjb3VudHMvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDgyMjA1MjIwOS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsK1FBQStRLENBQUMsQ0FBQztJQUMvUixDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2TUFBNk0sQ0FBQyxDQUFDO0lBQzdOLENBQUM7Q0FFRjtBQVZELDBEQVVDIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20250825073038 = void 0;
|
|
4
|
+
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
+
class Migration20250825073038 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table if exists "discount_price_rule" add column if not exists "term_and_conditions" text null;`);
|
|
8
|
+
}
|
|
9
|
+
async down() {
|
|
10
|
+
this.addSql(`alter table if exists "discount_price_rule" drop column if exists "term_and_conditions";`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Migration20250825073038 = Migration20250825073038;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA4MjUwNzMwMzguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kaXNjb3VudHMvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDgyNTA3MzAzOC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsdUdBQXVHLENBQUMsQ0FBQztJQUN2SCxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQywwRkFBMEYsQ0FBQyxDQUFDO0lBQzFHLENBQUM7Q0FFRjtBQVZELDBEQVVDIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20250901083847 = void 0;
|
|
4
|
+
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
+
class Migration20250901083847 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table if exists "discount_price_rule" add column if not exists "is_category" boolean null, add column if not exists "is_make_type" boolean null, add column if not exists "is_style" boolean null, add column if not exists "is_stock_type" boolean null, add column if not exists "is_birthday" boolean null, add column if not exists "is_anniversary" boolean null;`);
|
|
8
|
+
}
|
|
9
|
+
async down() {
|
|
10
|
+
this.addSql(`alter table if exists "discount_price_rule" drop column if exists "is_category", drop column if exists "is_make_type", drop column if exists "is_style", drop column if exists "is_stock_type", drop column if exists "is_birthday", drop column if exists "is_anniversary";`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Migration20250901083847 = Migration20250901083847;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA5MDEwODM4NDcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kaXNjb3VudHMvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDkwMTA4Mzg0Ny50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsOFdBQThXLENBQUMsQ0FBQztJQUM5WCxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyw4UUFBOFEsQ0FBQyxDQUFDO0lBQzlSLENBQUM7Q0FFRjtBQVZELDBEQVVDIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20250918095658 = void 0;
|
|
4
|
+
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
+
class Migration20250918095658 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table if exists "discount_price_rule" add column if not exists "entry_date" timestamptz not null;`);
|
|
8
|
+
}
|
|
9
|
+
async down() {
|
|
10
|
+
this.addSql(`alter table if exists "discount_price_rule" drop column if exists "entry_date";`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Migration20250918095658 = Migration20250918095658;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA5MTgwOTU2NTguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kaXNjb3VudHMvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDkxODA5NTY1OC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMseUdBQXlHLENBQUMsQ0FBQztJQUN6SCxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpRkFBaUYsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7Q0FFRjtBQVZELDBEQVVDIn0=
|
|
@@ -9,15 +9,27 @@ const DiscountPriceRule = utils_1.model.define("discount_price_rule", {
|
|
|
9
9
|
id: utils_1.model.id().primaryKey(),
|
|
10
10
|
title: utils_1.model.text().searchable().nullable(),
|
|
11
11
|
description: utils_1.model.text().nullable(),
|
|
12
|
+
promocode_type_id: utils_1.model.number(),
|
|
12
13
|
type: utils_1.model.enum(["FIXED", "PERCENTAGE", "BXGY", "BXAY"]),
|
|
13
14
|
starts_at: utils_1.model.dateTime(),
|
|
14
15
|
ends_at: utils_1.model.dateTime().nullable(),
|
|
16
|
+
entry_date: utils_1.model.dateTime(),
|
|
15
17
|
status: utils_1.model.enum(["ACTIVE", "EXPIRED", "SCHEDULED", "DEACTIVATED"]),
|
|
16
18
|
applies_on: utils_1.model.enum(["MRP", "PRICE"]), //MRP: extended cost, PRICE: medusa variant price / extended variant mrp
|
|
17
19
|
applies_on_components: utils_1.model.enum(["MAKING_AMOUNT", "MAKING_RATE"]).nullable(),
|
|
18
20
|
min_order_value: utils_1.model.float().nullable(),
|
|
19
21
|
min_order_qty: utils_1.model.number().nullable(),
|
|
20
22
|
max_discount: utils_1.model.float().nullable(),
|
|
23
|
+
is_all_branch: utils_1.model.boolean(),
|
|
24
|
+
is_category: utils_1.model.boolean().nullable(),
|
|
25
|
+
is_make_type: utils_1.model.boolean().nullable(),
|
|
26
|
+
is_style: utils_1.model.boolean().nullable(),
|
|
27
|
+
is_stock_type: utils_1.model.boolean().nullable(),
|
|
28
|
+
is_birthday: utils_1.model.boolean().nullable(),
|
|
29
|
+
is_anniversary: utils_1.model.boolean().nullable(),
|
|
30
|
+
assign_branch_nos: utils_1.model.text().nullable(),
|
|
31
|
+
thumbnail: utils_1.model.text().nullable(),
|
|
32
|
+
term_and_conditions: utils_1.model.text().nullable(),
|
|
21
33
|
usage_limit_per_customer_type: utils_1.model.enum([
|
|
22
34
|
"ONLY_ONCE",
|
|
23
35
|
"UNLIMITED",
|
|
@@ -51,4 +63,4 @@ const DiscountPriceRule = utils_1.model.define("discount_price_rule", {
|
|
|
51
63
|
}),
|
|
52
64
|
});
|
|
53
65
|
exports.default = DiscountPriceRule;
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2Rpc2NvdW50cy9tb2RlbHMvcHJpY2UtcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLHFEQUFrRDtBQUVsRCxvRUFBMkM7QUFFM0MsTUFBTSxpQkFBaUIsR0FBRyxhQUFLLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFO0lBQzVELEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLEtBQUssRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNDLFdBQVcsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3BDLGlCQUFpQixFQUFFLGFBQUssQ0FBQyxNQUFNLEVBQUU7SUFDakMsSUFBSSxFQUFFLGFBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN6RCxTQUFTLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRTtJQUMzQixPQUFPLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwQyxVQUFVLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRTtJQUM1QixNQUFNLEVBQUUsYUFBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3JFLFVBQVUsRUFBRSxhQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsd0VBQXdFO0lBQ2xILHFCQUFxQixFQUFFLGFBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFD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
|
|
@@ -48,12 +48,13 @@ class DiscountService extends (0, utils_1.MedusaService)({
|
|
|
48
48
|
return await Promise.all(priceRules.map(async (priceRule) => {
|
|
49
49
|
if (priceRule.prefix)
|
|
50
50
|
return priceRule;
|
|
51
|
-
const
|
|
51
|
+
const data = await this.listDiscountCodes({
|
|
52
52
|
price_rule_id: priceRule.id,
|
|
53
|
-
|
|
53
|
+
...((priceRule.usage_limit_per_customer_type === "SPECIFIC" || priceRule.usage_limit_per_customer_type === "ONLY_ONCE") && { usage_count: 0 }),
|
|
54
|
+
}, { order: { created_at: "DESC" } });
|
|
54
55
|
return {
|
|
55
56
|
...priceRule,
|
|
56
|
-
discount_code: code,
|
|
57
|
+
discount_code: data?.[0]?.code || '',
|
|
57
58
|
};
|
|
58
59
|
}));
|
|
59
60
|
}
|
|
@@ -64,12 +65,13 @@ class DiscountService extends (0, utils_1.MedusaService)({
|
|
|
64
65
|
const updatedPriceRules = await Promise.all(priceRules.map(async (priceRule) => {
|
|
65
66
|
if (priceRule.prefix)
|
|
66
67
|
return priceRule;
|
|
67
|
-
const
|
|
68
|
+
const data = await this.listDiscountCodes({
|
|
68
69
|
price_rule_id: priceRule.id,
|
|
69
|
-
|
|
70
|
+
...((priceRule.usage_limit_per_customer_type === "SPECIFIC" || priceRule.usage_limit_per_customer_type === "ONLY_ONCE") && { usage_count: 0 }),
|
|
71
|
+
}, { order: { created_at: "DESC" } });
|
|
70
72
|
return {
|
|
71
73
|
...priceRule,
|
|
72
|
-
discount_code: code,
|
|
74
|
+
discount_code: data?.[0]?.code || '',
|
|
73
75
|
};
|
|
74
76
|
}));
|
|
75
77
|
return [updatedPriceRules, metadata];
|
|
@@ -95,4 +97,4 @@ __decorate([
|
|
|
95
97
|
__metadata("design:returntype", Promise)
|
|
96
98
|
], DiscountService.prototype, "listAndCountDiscountPriceRules", null);
|
|
97
99
|
exports.default = DiscountService;
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2Rpc2NvdW50cy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EscURBSW1DO0FBR25DLDJFQUFrRDtBQUNsRCx5RUFBZ0Q7QUFDaEQscUVBQStFO0FBRS9FLE1BQU0sZUFBZ0IsU0FBUSxJQUFBLHFCQUFhLEVBQUM7SUFDMUMsaUJBQWlCLEVBQWpCLG9CQUFpQjtJQUNqQixZQUFZLEVBQVosdUJBQVk7SUFDWixXQUFXLEVBQVgsc0JBQVc7Q0FDWixDQUFDO0lBQ0E7Ozs7T0FJRztJQUVHLEFBQU4sS0FBSyxDQUFDLGtCQUFrQixDQUN0QixXQUFtQixFQUNuQixLQUFhLEVBQ0ksVUFBa0MsRUFBRTtRQUVyRCxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBRUQsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUUzQixnREFBZ0Q7UUFDaEQsTUFBTSxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsT0FBTyxDQUM5Qjs7OztPQUlDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQ3JCLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYTtJQUNQLEFBQU4sS0FBSyxDQUFDLHNCQUFzQixDQUMxQixPQUFhLEVBQ2IsTUFBb0MsRUFDbkIsYUFBbUM7UUFFcEQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBRXZCLE1BQU0sVUFBVSxHQUFHLE1BQU0sS0FBSyxDQUFDLHNCQUFzQixDQUNuRCxPQUFPLEVBQ1AsTUFBTSxFQUNOLGFBQWEsQ0FDZCxDQUFDO1FBRUYsT0FBTyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ3RCLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFO1lBQ2pDLElBQUksU0FBUyxDQUFDLE1BQU07Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFFdkMsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUM7Z0JBQ3hDLGFBQWEsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDM0IsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLDZCQUE2QixLQUFLLFVBQVUsSUFBSSxTQUFTLENBQUMsNkJBQTZCLEtBQUssV0FBVyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDL0ksRUFBQyxFQUFDLEtBQUssRUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUMsRUFBQyxDQUFDLENBQUM7WUFFakMsT0FBTztnQkFDTCxHQUFHLFNBQVM7Z0JBQ1osYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFO2FBQ3JDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWE7SUFDUCxBQUFOLEtBQUssQ0FBQyw4QkFBOEIsQ0FDbEMsT0FBYSxFQUNiLE1BQW9DLEVBQ25CLGFBQW1DO1FBRXBELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUV2QixNQUFNLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxHQUFHLE1BQU0sS0FBSyxDQUFDLDhCQUE4QixDQUN2RSxPQUFPLEVBQ1AsTUFBTSxFQUNOLGFBQWEsQ0FDZCxDQUFDO1FBRUYsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ3pDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFO1lBQ2pDLElBQUksU0FBUyxDQUFDLE1BQU07Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFFdkMsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUM7Z0JBQ3hDLGFBQWEsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDM0IsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLDZCQUE2QixLQUFLLFVBQVUsSUFBSSxTQUFTLENBQUMsNkJBQTZCLEtBQUssV0FBVyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDL0ksRUFBQyxFQUFDLEtBQUssRUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUMsRUFBQyxDQUFDLENBQUM7WUFDakMsT0FBTztnQkFDTCxHQUFHLFNBQVM7Z0JBQ1osYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFO2FBQ3JDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsT0FBTyxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQXBGTztJQURMLElBQUEscUJBQWEsR0FBRTtJQUliLFdBQUEsSUFBQSxxQkFBYSxHQUFFLENBQUE7Ozs7eURBaUJqQjtBQUdLO0lBR0gsV0FBQSxJQUFBLHFCQUFhLEdBQUUsQ0FBQTs7Ozs2REF5QmpCO0FBR0s7SUFHSCxXQUFBLElBQUEscUJBQWEsR0FBRSxDQUFBOzs7O3FFQTBCakI7QUFHSCxrQkFBZSxlQUFlLENBQUMifQ==
|
|
@@ -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("./promocode-subscriber"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3Vic2NyaWJlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlEQUF1QyJ9
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.config = void 0;
|
|
4
|
+
exports.default = promocodeMasterHandler;
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const helper_1 = require("../lib/helper");
|
|
7
|
+
const discounts_1 = require("../modules/discounts");
|
|
8
|
+
const create_subscriber_to_discount_price_rule_1 = require("../workflows/discount/create-subscriber-to-discount-price-rule");
|
|
9
|
+
async function promocodeMasterHandler({ event, container, }) {
|
|
10
|
+
const { operation, data } = event.data;
|
|
11
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
12
|
+
const discountService = container.resolve(discounts_1.DISCOUNT_MODULE);
|
|
13
|
+
switch (operation) {
|
|
14
|
+
case "create": {
|
|
15
|
+
await Promise.all(data.map(async (promo) => {
|
|
16
|
+
const { data: promoCodeSeries } = await query.graph({
|
|
17
|
+
entity: "promocode_series_master",
|
|
18
|
+
fields: ["id", "promocode", "promocode_master_id", "is_block", "promocode_series_id"],
|
|
19
|
+
filters: {
|
|
20
|
+
promocode_master_id: promo.id,
|
|
21
|
+
promocode_id: promo.promocode_id,
|
|
22
|
+
is_block: false
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
const { data: promoCodeCate } = await query.graph({
|
|
26
|
+
entity: "promocode_on",
|
|
27
|
+
fields: ["id", "grp_no", "make_type_code", "stock_type_code", "style_code"],
|
|
28
|
+
filters: {
|
|
29
|
+
promocode_master_id: promo.id,
|
|
30
|
+
promocode_id: promo.promocode_id,
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
const cateIds = [...new Set(promoCodeCate.map((cate) => Number(cate.grp_no)))];
|
|
34
|
+
const makeTypes = [...new Set(promoCodeCate.map((cate) => cate.make_type_code))];
|
|
35
|
+
const stockTypes = [...new Set(promoCodeCate.map((cate) => cate.stock_type_code))];
|
|
36
|
+
const styleCodes = [...new Set(promoCodeCate.map((cate) => cate.style_code))];
|
|
37
|
+
const { data: categoryData } = cateIds.length
|
|
38
|
+
? await query.graph({
|
|
39
|
+
entity: "category_master",
|
|
40
|
+
fields: ["id", "mapping_id", "grp_no"],
|
|
41
|
+
filters: {
|
|
42
|
+
grp_no: { $in: cateIds },
|
|
43
|
+
},
|
|
44
|
+
})
|
|
45
|
+
: { data: [] };
|
|
46
|
+
const mappingIds = categoryData.map((cate) => cate.mapping_id);
|
|
47
|
+
if (new Date(promo.to_date) >= new Date()) {
|
|
48
|
+
const input = (0, helper_1.mapPromoToDiscountRule)(promo, mappingIds, makeTypes, stockTypes, styleCodes, promoCodeSeries?.length, promoCodeSeries?.[0].promocode);
|
|
49
|
+
const { result: discountPriceRule } = await (0, create_subscriber_to_discount_price_rule_1.createSubScriberToDiscountPriceRuleWorkflow)(container).run({
|
|
50
|
+
input,
|
|
51
|
+
throwOnError: true,
|
|
52
|
+
});
|
|
53
|
+
await Promise.all(promoCodeSeries.map(async (series) => {
|
|
54
|
+
await discountService.createDiscountCodes({ code: series?.promocode || "", price_rule_id: discountPriceRule.id });
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
throw new Error(`Promo code "${promo.promocode_description}" has expired.`);
|
|
59
|
+
}
|
|
60
|
+
console.log("✅ Promo codes created:", promo.promocode_description);
|
|
61
|
+
}));
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
case "update":
|
|
65
|
+
console.log("✏️ Promocode updated:", data);
|
|
66
|
+
break;
|
|
67
|
+
case "delete":
|
|
68
|
+
console.log("🗑️ Promocode deleted:", data);
|
|
69
|
+
break;
|
|
70
|
+
default:
|
|
71
|
+
console.log("⚠️ Unknown operation:", operation, data);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.config = {
|
|
75
|
+
event: "promocode_master",
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW9jb2RlLXN1YnNjcmliZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3Vic2NyaWJlcnMvcHJvbW9jb2RlLXN1YnNjcmliZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBU0EseUNBK0VDO0FBdkZELHFEQUFzRTtBQUN0RSwwQ0FBdUQ7QUFFdkQsb0RBQXVEO0FBQ3ZELDZIQUV3RTtBQUV6RCxLQUFLLFVBQVUsc0JBQXNCLENBQUMsRUFDRSxLQUFLLEVBQ0wsU0FBUyxHQUN3QztJQUN0RyxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUE7SUFDdEMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRSxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFrQiwyQkFBZSxDQUFDLENBQUM7SUFDNUUsUUFBUSxTQUFTLEVBQUUsQ0FBQztRQUNsQixLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFFZCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBRXZCLE1BQU0sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO29CQUNsRCxNQUFNLEVBQUUseUJBQXlCO29CQUNqQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFDLFVBQVUsRUFBRSxxQkFBcUIsQ0FBQztvQkFDcEYsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxFQUFFO3dCQUM3QixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7d0JBQ2hDLFFBQVEsRUFBQyxLQUFLO3FCQUNmO2lCQUNGLENBQUMsQ0FBQztnQkFDSCxNQUFNLEVBQUUs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
|
|
@@ -9,8 +9,8 @@ const add_bulk_codes_to_rule_1 = require("../create-bulk-discount/steps/add-bulk
|
|
|
9
9
|
exports.addMoreCodesToPriceRuleWorkflow = (0, workflows_sdk_1.createWorkflow)("add-more-codes-to-price-rule", (input) => {
|
|
10
10
|
const validate = (0, workflows_sdk_1.createHook)("validate", { input });
|
|
11
11
|
const { data: priceRules } = (0, core_flows_1.useQueryGraphStep)({
|
|
12
|
-
entity: "
|
|
13
|
-
fields: ["
|
|
12
|
+
entity: "form_responses",
|
|
13
|
+
fields: ["*", "id"],
|
|
14
14
|
filters: { id: input.price_rule_id },
|
|
15
15
|
options: { throwIfKeyNotFound: true },
|
|
16
16
|
});
|
|
@@ -25,4 +25,4 @@ exports.addMoreCodesToPriceRuleWorkflow = (0, workflows_sdk_1.createWorkflow)("a
|
|
|
25
25
|
});
|
|
26
26
|
return new workflows_sdk_1.WorkflowResponse({ message: "Codes addition to price rule started" }, { hooks: [validate] });
|
|
27
27
|
});
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2FkZC1tb3JlLWNvZGUtaW4tcHJpY2UtcnVsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBc0Q7QUFDdEQscUVBSzJDO0FBQzNDLDREQUFnRTtBQUdoRSxtRUFBOEQ7QUFDOUQsaUdBQThGO0FBRWpGLFFBQUEsK0JBQStCLEdBQUcsSUFBQSw4QkFBYyxFQUMzRCw4QkFBOEIsRUFDOUIsQ0FDRSxLQUVDLEVBQ0QsRUFBRTtJQUNGLE1BQU0sUUFBUSxHQUFHLElBQUEsMEJBQVUsRUFBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRW5ELE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUM3QyxNQUFNLEVBQUUsZ0JBQWdCO1FBQ3hCLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBQyxJQUFJLENBQUM7UUFDbEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUU7UUFDcEMsT0FBTyxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFO0tBQ3RDLENBQUMsQ0FBQztJQUVILElBQUEsb0JBQUksRUFDRiw0Q0FBNEMsRUFDNUMsVUFBVSxFQUNWLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUEsaUJBQVMsRUFBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FDcEQsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1YsSUFBQSxpQ0FBYyxFQUFDO1lBQ2IsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBQSwrQ0FBc0IsRUFBQztRQUNyQixXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDN0IsY0FBYyxFQUFFLEtBQUssQ0FBQyxLQUFLO0tBQzVCLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxnQ0FBZ0IsQ0FDekIsRUFBRSxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsRUFDbkQsRUFBRSxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQVUsRUFBRSxDQUMvQixDQUFDO0FBQ0osQ0FBQyxDQUNGLENBQUMifQ==
|
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.applyCouponWorkflow = void 0;
|
|
7
7
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
8
|
-
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
9
8
|
const locking_1 = require("../../locking");
|
|
10
9
|
const calculate_coupon_discount_1 = require("../calculate-coupon-discount");
|
|
11
10
|
const remove_coupon_step_1 = require("../remove-coupon/step/remove-coupon-step");
|
|
@@ -16,33 +15,44 @@ exports.applyCouponWorkflow = (0, workflows_sdk_1.createWorkflow)("apply-coupon"
|
|
|
16
15
|
timeout: 30000,
|
|
17
16
|
ttl: 120000,
|
|
18
17
|
});
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
// Run discount calc only if response not provided
|
|
19
|
+
const response = (0, workflows_sdk_1.when)({ input }, ({ input }) => {
|
|
20
|
+
return !input.calculateCouponDiscountResponse;
|
|
21
|
+
}).then(() => {
|
|
22
|
+
return calculate_coupon_discount_1.calculateCouponDiscountWorkflow.runAsStep({
|
|
23
|
+
input: {
|
|
24
|
+
cart: input.cart,
|
|
25
|
+
code: input.code,
|
|
26
|
+
cart_id: input.cart_id,
|
|
27
|
+
customerId: input.customerId,
|
|
28
|
+
},
|
|
29
|
+
});
|
|
25
30
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
(0,
|
|
40
|
-
(0, generate_adjustment_line_item_1.default)(response.adjustmentLineItems);
|
|
31
|
+
// Choose either pre-passed response or workflow response
|
|
32
|
+
const { discount, isApplied, message, adjustmentLineItems, } = (0, workflows_sdk_1.transform)({
|
|
33
|
+
response,
|
|
34
|
+
calculateCouponDiscountResponse: input.calculateCouponDiscountResponse,
|
|
35
|
+
}, ({ response, calculateCouponDiscountResponse }) => {
|
|
36
|
+
if (calculateCouponDiscountResponse) {
|
|
37
|
+
return calculateCouponDiscountResponse;
|
|
38
|
+
}
|
|
39
|
+
return response;
|
|
40
|
+
});
|
|
41
|
+
// Always clear existing coupons first
|
|
42
|
+
(0, remove_coupon_step_1.removeCouponStep)({ cart: input.cart });
|
|
43
|
+
// Add new adjustments
|
|
44
|
+
(0, generate_adjustment_line_item_1.default)(adjustmentLineItems);
|
|
41
45
|
(0, locking_1.releaseLockStep)({ key: input.cart_id });
|
|
46
|
+
// Hook for external extensions
|
|
47
|
+
const couponApplied = (0, workflows_sdk_1.createHook)("couponApplied", {
|
|
48
|
+
cart: input.cart,
|
|
49
|
+
});
|
|
42
50
|
return new workflows_sdk_1.WorkflowResponse({
|
|
43
|
-
discount
|
|
44
|
-
isApplied
|
|
45
|
-
message
|
|
51
|
+
discount,
|
|
52
|
+
isApplied,
|
|
53
|
+
message,
|
|
54
|
+
}, {
|
|
55
|
+
hooks: [couponApplied],
|
|
46
56
|
});
|
|
47
57
|
});
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L2FwcGx5LWNvdXBvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxRUFNMkM7QUFTM0MsMkNBQWlFO0FBQ2pFLDRFQUErRTtBQUMvRSxpRkFBNEU7QUFDNUUsMEdBQStFO0FBRWxFLFFBQUEsbUJBQW1CLEdBQUcsSUFBQSw4QkFBYyxFQUMvQyxjQUFjLEVBQ2QsQ0FDRSxLQWtCQyxFQUNELEVBQUU7SUFDRixJQUFBLHlCQUFlLEVBQUM7UUFDZCxHQUFHLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDbEIsT0FBTyxFQUFFLEtBQUs7UUFDZCxHQUFHLEVBQUUsTUFBTTtLQUNaLENBQUMsQ0FBQztJQUVILGtEQUFrRDtJQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFBLG9CQUFJLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM3QyxPQUFPLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDO0lBQ2hELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDWCxPQUFPLDJEQUErQixDQUFDLFNBQVMsQ0FBQztZQUMvQyxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2dCQUNoQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7Z0JBQ2hCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDdEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO2FBQzdCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCx5REFBeUQ7SUFDekQsTUFBTSxFQUNKLFFBQVEsRUFDUixTQUFTLEVBQ1QsT0FBTyxFQUNQLG1CQUFtQixHQUNwQixHQUFHLElBQUEseUJBQVMsRUFDWDtRQUNFLFFBQVE7UUFDUiwrQkFBK0IsRUFBRSxLQUFLLENBQUMsK0JBQStCO0tBQ3ZFLEVBQ0QsQ0FBQyxFQUFFLFFBQVEsRUFBRSwrQkFBK0IsRUFBRSxFQUFFLEVBQUU7UUFDaEQsSUFBSSwrQkFBK0IsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sK0JBQStCLENBQUM7UUFDekMsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsQ0FDRixDQUFDO0lBRUYsc0NBQXNDO0lBQ3RDLElBQUEscUNBQWdCLEVBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFdkMsc0JBQXNCO0lBQ3RCLElBQUEsdUNBQTBCLEVBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUVoRCxJQUFBLHlCQUFlLEVBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFeEMsK0JBQStCO0lBQy9CLE1BQU0sYUFBYSxHQUFHLElBQUEsMEJBQVUsRUFBQyxlQUFlLEVBQUU7UUFDaEQsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO0tBQ2pCLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxnQ0FBZ0IsQ0FDekI7UUFDRSxRQUFRO1FBQ1IsU0FBUztRQUNULE9BQU87S0FDUixFQUNEO1FBQ0UsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFVO0tBQ2hDLENBQ0YsQ0FBQztBQUNKLENBQUMsQ0FDRixDQUFDIn0=
|