@devx-commerce/plugin-gati 0.0.30 → 0.0.31-beta.1
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/masters/[master]/[id]/route.js +121 -0
- package/.medusa/server/src/api/admin/masters/[master]/route.js +33 -0
- package/.medusa/server/src/api/admin/masters/middlewares.js +35 -0
- package/.medusa/server/src/api/admin/masters/query-config.js +14 -0
- package/.medusa/server/src/api/admin/masters/search-middleware.js +16 -0
- package/.medusa/server/src/api/admin/masters/utils.js +108 -0
- package/.medusa/server/src/api/admin/masters/validators.js +28 -0
- package/.medusa/server/src/api/admin/middlewares.js +6 -2
- package/.medusa/server/src/api/admin/variant-options/sync/route.js +313 -0
- package/.medusa/server/src/api/erp/webhook/config.js +28 -5
- package/.medusa/server/src/api/store/gold-rate/current/route.js +70 -0
- package/.medusa/server/src/api/store/gold-rate/historical/route.js +108 -0
- package/.medusa/server/src/api/store/gold-rate/middleware.js +19 -0
- package/.medusa/server/src/api/store/gold-rate/validators.js +37 -0
- package/.medusa/server/src/api/store/middleware.js +3 -1
- package/.medusa/server/src/jobs/process-variant-option-sync.js +428 -0
- package/.medusa/server/src/modules/category-group-master/migrations/Migration20251031061116.js +14 -0
- package/.medusa/server/src/modules/category-group-master/migrations/Migration20251104045912.js +14 -0
- package/.medusa/server/src/modules/category-master/migrations/Migration20251031061327.js +14 -0
- package/.medusa/server/src/modules/category-master/migrations/Migration20251104045755.js +14 -0
- package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251031061432.js +14 -0
- package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251104050102.js +14 -0
- package/.medusa/server/src/modules/collection-master/migrations/Migration20251031060941.js +14 -0
- package/.medusa/server/src/modules/collection-master/migrations/Migration20251104050012.js +14 -0
- package/.medusa/server/src/modules/discount-master/migrations/Migration20251031061523.js +14 -0
- package/.medusa/server/src/modules/discount-master/migrations/Migration20251104050153.js +14 -0
- package/.medusa/server/src/modules/erp/service.js +14 -1
- package/.medusa/server/src/modules/extended-product/migrations/Migration20251103182726.js +14 -0
- package/.medusa/server/src/modules/extended-product/models/extended-product.js +2 -1
- package/.medusa/server/src/modules/item-size-master/index.js +13 -0
- package/.medusa/server/src/modules/item-size-master/migrations/Migration20251031111036.js +17 -0
- package/.medusa/server/src/modules/item-size-master/models/item-size-master.js +14 -0
- package/.medusa/server/src/modules/item-size-master/service.js +10 -0
- package/.medusa/server/src/modules/party-master/migrations/Migration20251031061657.js +14 -0
- package/.medusa/server/src/modules/party-master/migrations/Migration20251104050242.js +14 -0
- package/.medusa/server/src/modules/promocode-master/migrations/Migration20251031061829.js +14 -0
- package/.medusa/server/src/modules/promocode-master/migrations/Migration20251104050332.js +14 -0
- package/.medusa/server/src/modules/quality-master/index.js +13 -0
- package/.medusa/server/src/modules/quality-master/migrations/Migration20251031095211.js +16 -0
- package/.medusa/server/src/modules/quality-master/migrations/Migration20251105045114.js +14 -0
- package/.medusa/server/src/modules/quality-master/models/quality-master.js +17 -0
- package/.medusa/server/src/modules/quality-master/service.js +10 -0
- package/.medusa/server/src/modules/raw-master/migrations/Migration20251031061912.js +14 -0
- package/.medusa/server/src/modules/raw-master/models/raw-master.js +2 -1
- package/.medusa/server/src/modules/shape-master/migrations/Migration20251031062019.js +14 -0
- package/.medusa/server/src/modules/shape-master/models/shape-master.js +2 -1
- package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251031062128.js +14 -0
- package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251104050501.js +14 -0
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251031062303.js +14 -0
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251104050743.js +14 -0
- package/.medusa/server/src/modules/tone-master/index.js +13 -0
- package/.medusa/server/src/modules/tone-master/migrations/Migration20251031104320.js +16 -0
- package/.medusa/server/src/modules/tone-master/models/tone-master.js +15 -0
- package/.medusa/server/src/modules/tone-master/service.js +10 -0
- package/.medusa/server/src/modules/variant-option-sync-queue/index.js +13 -0
- package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251101082220.js +19 -0
- package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251103123857.js +16 -0
- package/.medusa/server/src/modules/variant-option-sync-queue/models/variant-option-sync-queue.js +23 -0
- package/.medusa/server/src/modules/variant-option-sync-queue/service.js +10 -0
- package/.medusa/server/src/utils/build-redis-key.js +30 -0
- package/.medusa/server/src/workflows/create-or-update-product-options/steps/create-update-product-options.js +39 -2
- package/.medusa/server/src/workflows/helpers/product-helper.js +122 -66
- package/.medusa/server/src/workflows/helpers/variant-helper.js +212 -0
- package/.medusa/server/src/workflows/item-size-master/create-or-update-item-size-master.js +51 -0
- package/.medusa/server/src/workflows/item-size-master/index.js +15 -0
- package/.medusa/server/src/workflows/item-size-master/steps/create-item-size.js +21 -0
- package/.medusa/server/src/workflows/item-size-master/steps/delete-item-size.js +23 -0
- package/.medusa/server/src/workflows/item-size-master/steps/fetch-item-size-master.js +55 -0
- package/.medusa/server/src/workflows/item-size-master/steps/update-item-size.js +36 -0
- package/.medusa/server/src/workflows/party-master/steps/delete-party.js +2 -6
- package/.medusa/server/src/workflows/party-style-master/workflows/create-or-update-party-style-master.js +89 -2
- package/.medusa/server/src/workflows/quality-master/create-or-update-quality-master.js +58 -0
- package/.medusa/server/src/workflows/quality-master/index.js +30 -0
- package/.medusa/server/src/workflows/quality-master/steps/create-quality.js +22 -0
- package/.medusa/server/src/workflows/quality-master/steps/delete-quality.js +20 -0
- package/.medusa/server/src/workflows/quality-master/steps/fetch-quality-master.js +54 -0
- package/.medusa/server/src/workflows/quality-master/steps/update-quality.js +37 -0
- package/.medusa/server/src/workflows/raw-master/create-or-update-raw-master.js +58 -0
- package/.medusa/server/src/workflows/raw-master/steps/delete-raw.js +9 -11
- package/.medusa/server/src/workflows/shape-master/create-or-update-shape-master.js +53 -0
- package/.medusa/server/src/workflows/shape-master/steps/delete-shape.js +9 -9
- package/.medusa/server/src/workflows/tone-master/create-or-update-tone-master.js +52 -0
- package/.medusa/server/src/workflows/tone-master/index.js +30 -0
- package/.medusa/server/src/workflows/tone-master/steps/create-tone.js +22 -0
- package/.medusa/server/src/workflows/tone-master/steps/delete-tone.js +20 -0
- package/.medusa/server/src/workflows/tone-master/steps/fetch-tone-master.js +54 -0
- package/.medusa/server/src/workflows/tone-master/steps/update-tone.js +37 -0
- package/package.json +1 -1
- package/.medusa/server/development/erp-order-payload-example.js +0 -76
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const http_1 = require("@medusajs/framework/http");
|
|
4
|
+
const validators_1 = require("./validators");
|
|
5
|
+
exports.default = (0, http_1.defineMiddlewares)({
|
|
6
|
+
routes: [
|
|
7
|
+
{
|
|
8
|
+
matcher: "/store/gold-rate/current",
|
|
9
|
+
method: "POST",
|
|
10
|
+
middlewares: [(0, http_1.validateAndTransformBody)(validators_1.GetCurrentGoldRateBody)],
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
matcher: "/store/gold-rate/historical",
|
|
14
|
+
method: "POST",
|
|
15
|
+
middlewares: [(0, http_1.validateAndTransformBody)(validators_1.GetHistoricalGoldRateBody)],
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvZ29sZC1yYXRlL21pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtREFHa0M7QUFDbEMsNkNBR3NCO0FBRXRCLGtCQUFlLElBQUEsd0JBQWlCLEVBQUM7SUFDL0IsTUFBTSxFQUFFO1FBQ047WUFDRSxPQUFPLEVBQUUsMEJBQTBCO1lBQ25DLE1BQU0sRUFBRSxNQUFNO1lBQ2QsV0FBVyxFQUFFLENBQUMsSUFBQSwrQkFBd0IsRUFBQyxtQ0FBc0IsQ0FBQyxDQUFDO1NBQ2hFO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsNkJBQTZCO1lBQ3RDLE1BQU0sRUFBRSxNQUFNO1lBQ2QsV0FBVyxFQUFFLENBQUMsSUFBQSwrQkFBd0IsRUFBQyxzQ0FBeUIsQ0FBQyxDQUFDO1NBQ25FO0tBQ0Y7Q0FDRixDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetHistoricalGoldRateBody = exports.GetCurrentGoldRateBody = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.GetCurrentGoldRateBody = zod_1.z
|
|
6
|
+
.object({
|
|
7
|
+
grams: zod_1.z
|
|
8
|
+
.number({
|
|
9
|
+
required_error: "Grams is required",
|
|
10
|
+
invalid_type_error: "Grams must be a number",
|
|
11
|
+
})
|
|
12
|
+
.positive({
|
|
13
|
+
message: "Grams must be a positive number",
|
|
14
|
+
}),
|
|
15
|
+
purity: zod_1.z
|
|
16
|
+
.number({
|
|
17
|
+
required_error: "Purity is required",
|
|
18
|
+
invalid_type_error: "Purity must be a number",
|
|
19
|
+
})
|
|
20
|
+
.positive({
|
|
21
|
+
message: "Purity must be a positive number",
|
|
22
|
+
}),
|
|
23
|
+
})
|
|
24
|
+
.strict();
|
|
25
|
+
exports.GetHistoricalGoldRateBody = zod_1.z
|
|
26
|
+
.object({
|
|
27
|
+
grams: zod_1.z
|
|
28
|
+
.number({
|
|
29
|
+
required_error: "Grams is required",
|
|
30
|
+
invalid_type_error: "Grams must be a number",
|
|
31
|
+
})
|
|
32
|
+
.positive({
|
|
33
|
+
message: "Grams must be a positive number",
|
|
34
|
+
}),
|
|
35
|
+
})
|
|
36
|
+
.strict();
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvZ29sZC1yYXRlL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBRVgsUUFBQSxzQkFBc0IsR0FBRyxPQUFDO0tBQ3BDLE1BQU0sQ0FBQztJQUNOLEtBQUssRUFBRSxPQUFDO1NBQ0wsTUFBTSxDQUFDO1FBQ04sY0FBYyxFQUFFLG1CQUFtQjtRQUNuQyxrQkFBa0IsRUFBRSx3QkFBd0I7S0FDN0MsQ0FBQztTQUNELFFBQVEsQ0FBQztRQUNSLE9BQU8sRUFBRSxpQ0FBaUM7S0FDM0MsQ0FBQztJQUNKLE1BQU0sRUFBRSxPQUFDO1NBQ04sTUFBTSxDQUFDO1FBQ04sY0FBYyxFQUFFLG9CQUFvQjtRQUNwQyxrQkFBa0IsRUFBRSx5QkFBeUI7S0FDOUMsQ0FBQztTQUNELFFBQVEsQ0FBQztRQUNSLE9BQU8sRUFBRSxrQ0FBa0M7S0FDNUMsQ0FBQztDQUNMLENBQUM7S0FDRCxNQUFNLEVBQUUsQ0FBQztBQUlDLFFBQUEseUJBQXlCLEdBQUcsT0FBQztLQUN2QyxNQUFNLENBQUM7SUFDTixLQUFLLEVBQUUsT0FBQztTQUNMLE1BQU0sQ0FBQztRQUNOLGNBQWMsRUFBRSxtQkFBbUI7UUFDbkMsa0JBQWtCLEVBQUUsd0JBQXdCO0tBQzdDLENBQUM7U0FDRCxRQUFRLENBQUM7UUFDUixPQUFPLEVBQUUsaUNBQWlDO0tBQzNDLENBQUM7Q0FDTCxDQUFDO0tBQ0QsTUFBTSxFQUFFLENBQUMifQ==
|
|
@@ -6,10 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const framework_1 = require("@medusajs/framework");
|
|
7
7
|
const middleware_1 = __importDefault(require("./carts/middleware"));
|
|
8
8
|
const middleware_2 = __importDefault(require("./custom-price/middleware"));
|
|
9
|
+
const middleware_3 = __importDefault(require("./gold-rate/middleware"));
|
|
9
10
|
exports.default = (0, framework_1.defineMiddlewares)({
|
|
10
11
|
routes: [
|
|
11
12
|
...(middleware_1.default.routes || []),
|
|
12
13
|
...(middleware_2.default.routes || []),
|
|
14
|
+
...(middleware_3.default.routes || []),
|
|
13
15
|
],
|
|
14
16
|
});
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1EQUF3RDtBQUV4RCxvRUFBdUQ7QUFDdkQsMkVBQW9FO0FBQ3BFLHdFQUE4RDtBQUU5RCxrQkFBZSxJQUFBLDZCQUFpQixFQUFDO0lBQy9CLE1BQU0sRUFBRTtRQUNOLEdBQUcsQ0FBQyxvQkFBcUIsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3ZDLEdBQUcsQ0FBQyxvQkFBMkIsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQzdDLEdBQUcsQ0FBQyxvQkFBd0IsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0tBQzNDO0NBQ0YsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,428 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.config = void 0;
|
|
4
|
+
exports.default = processVariantOptionSync;
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
7
|
+
const variant_option_sync_queue_1 = require("../modules/variant-option-sync-queue");
|
|
8
|
+
const variant_helper_1 = require("../workflows/helpers/variant-helper");
|
|
9
|
+
/**
|
|
10
|
+
/**
|
|
11
|
+
* This function processes queued variant/product option sync records
|
|
12
|
+
* (triggered by changes to master tables like Raw, Quality, Tone, Size).
|
|
13
|
+
*
|
|
14
|
+
* - It fetches all pending queue records,
|
|
15
|
+
* - Determines all affected variants and their products,
|
|
16
|
+
* - Regenerates option values for each variant based on master data,
|
|
17
|
+
* - Updates products to ensure their option lists include all required values,
|
|
18
|
+
* - Updates the product variants with the correct options,
|
|
19
|
+
* - Marks each queue record as complete or failed.
|
|
20
|
+
*/
|
|
21
|
+
async function processVariantOptionSync(container) {
|
|
22
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
23
|
+
const logger = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
24
|
+
const syncQueueService = container.resolve(variant_option_sync_queue_1.VARIANT_OPTION_SYNC_QUEUE_MODULE);
|
|
25
|
+
logger.info("------Starting variant option sync job------");
|
|
26
|
+
try {
|
|
27
|
+
// Query all pending tracking records
|
|
28
|
+
const { data: pendingRecords } = await query.graph({
|
|
29
|
+
entity: "variant_option_sync_queue",
|
|
30
|
+
fields: [
|
|
31
|
+
"id",
|
|
32
|
+
"master_type",
|
|
33
|
+
"master_code",
|
|
34
|
+
"master_id",
|
|
35
|
+
"old_title",
|
|
36
|
+
"new_title",
|
|
37
|
+
],
|
|
38
|
+
filters: {
|
|
39
|
+
status: "pending",
|
|
40
|
+
},
|
|
41
|
+
pagination: {
|
|
42
|
+
take: 50, // Process 50 records at a time
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
if (!pendingRecords || pendingRecords.length === 0) {
|
|
46
|
+
logger.info("------No pending variant option sync records found------");
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
logger.info(`------Found ${pendingRecords.length} pending records to process------`);
|
|
50
|
+
// Build master maps once for all records
|
|
51
|
+
const { data: rawMasterArr } = await query.graph({
|
|
52
|
+
entity: "raw_master",
|
|
53
|
+
fields: ["id", "title", "raw_code"],
|
|
54
|
+
});
|
|
55
|
+
const { data: qualityMasterArr } = await query.graph({
|
|
56
|
+
entity: "quality_master",
|
|
57
|
+
fields: ["id", "title", "qly_code"],
|
|
58
|
+
});
|
|
59
|
+
const { data: toneMasterArr } = await query.graph({
|
|
60
|
+
entity: "tone_master",
|
|
61
|
+
fields: ["id", "title", "tone_code"],
|
|
62
|
+
});
|
|
63
|
+
const { data: itemSizeMasterArr } = await query.graph({
|
|
64
|
+
entity: "item_size_master",
|
|
65
|
+
fields: ["id", "title", "item_size_code"],
|
|
66
|
+
});
|
|
67
|
+
const { data: shapeMasterArr } = await query.graph({
|
|
68
|
+
entity: "shape_master",
|
|
69
|
+
fields: ["id", "title", "shape_code"],
|
|
70
|
+
});
|
|
71
|
+
const rawMasterMap = new Map();
|
|
72
|
+
rawMasterArr?.forEach((x) => rawMasterMap.set(x.raw_code, x.title));
|
|
73
|
+
const qualityMasterMap = new Map();
|
|
74
|
+
qualityMasterArr?.forEach((x) => qualityMasterMap.set(x.qly_code, x.title));
|
|
75
|
+
const toneMasterMap = new Map();
|
|
76
|
+
toneMasterArr?.forEach((x) => toneMasterMap.set(x.tone_code, x.title));
|
|
77
|
+
const itemSizeMasterMap = new Map();
|
|
78
|
+
itemSizeMasterArr?.forEach((x) => itemSizeMasterMap.set(x.item_size_code, x.title));
|
|
79
|
+
const shapeMasterMap = new Map();
|
|
80
|
+
shapeMasterArr?.forEach((x) => shapeMasterMap.set(x.shape_code, x.title));
|
|
81
|
+
const masterMaps = {
|
|
82
|
+
rawMasterMap,
|
|
83
|
+
qualityMasterMap,
|
|
84
|
+
toneMasterMap,
|
|
85
|
+
itemSizeMasterMap,
|
|
86
|
+
shapeMasterMap,
|
|
87
|
+
};
|
|
88
|
+
// Process each tracking record
|
|
89
|
+
for (const record of pendingRecords) {
|
|
90
|
+
try {
|
|
91
|
+
// Update status to processing
|
|
92
|
+
await syncQueueService.updateVariantOptionSyncQueues([
|
|
93
|
+
{
|
|
94
|
+
id: record.id,
|
|
95
|
+
status: "processing",
|
|
96
|
+
},
|
|
97
|
+
]);
|
|
98
|
+
logger.info(`------Processing record ${record.id}: ${record.master_type} - ${record.master_code}------`);
|
|
99
|
+
// Find affected variants
|
|
100
|
+
const affectedVariants = await (0, variant_helper_1.findVariantsAffectedByMasterUpdate)(query, record.master_type, record.master_code);
|
|
101
|
+
if (affectedVariants.length === 0) {
|
|
102
|
+
logger.info(`------No affected variants found for ${record.master_type} - ${record.master_code}------ (record id: ${record.id})`);
|
|
103
|
+
// Mark as completed with 0 affected variants
|
|
104
|
+
await syncQueueService.updateVariantOptionSyncQueues([
|
|
105
|
+
{
|
|
106
|
+
id: record.id,
|
|
107
|
+
status: "completed",
|
|
108
|
+
affected_variant_count: 0,
|
|
109
|
+
processed_at: new Date(),
|
|
110
|
+
},
|
|
111
|
+
]);
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
logger.info(`------Found ${affectedVariants.length} affected variants for record ${record.id}------`);
|
|
115
|
+
// Group variants by product_id
|
|
116
|
+
const variantsByProduct = new Map();
|
|
117
|
+
for (const variant of affectedVariants) {
|
|
118
|
+
if (!variantsByProduct.has(variant.productId)) {
|
|
119
|
+
variantsByProduct.set(variant.productId, []);
|
|
120
|
+
}
|
|
121
|
+
variantsByProduct.get(variant.productId).push(variant);
|
|
122
|
+
}
|
|
123
|
+
// Get all affected products with their options
|
|
124
|
+
const productIds = Array.from(variantsByProduct.keys());
|
|
125
|
+
const { data: products } = await query.graph({
|
|
126
|
+
entity: "product",
|
|
127
|
+
fields: ["id", "external_id", "options.*"],
|
|
128
|
+
filters: {
|
|
129
|
+
id: productIds,
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
// Process variants in batches
|
|
133
|
+
const BATCH_SIZE = 25;
|
|
134
|
+
const variantBatches = [];
|
|
135
|
+
for (let i = 0; i < affectedVariants.length; i += BATCH_SIZE) {
|
|
136
|
+
variantBatches.push(affectedVariants.slice(i, i + BATCH_SIZE));
|
|
137
|
+
}
|
|
138
|
+
const variantsToUpdate = [];
|
|
139
|
+
// Collect all new option values that will be used across all affected variants
|
|
140
|
+
// This is needed to update product options BEFORE updating variants
|
|
141
|
+
const newOptionValuesByProduct = new Map();
|
|
142
|
+
// For each batch of variants
|
|
143
|
+
let batchIndex = 0;
|
|
144
|
+
for (const batch of variantBatches) {
|
|
145
|
+
batchIndex++;
|
|
146
|
+
// Get extended variants data for this batch
|
|
147
|
+
const extendedVariantIds = batch.map((v) => v.extendedVariantId);
|
|
148
|
+
const { data: extendedVariants } = await query.graph({
|
|
149
|
+
entity: "extended_variant",
|
|
150
|
+
fields: [
|
|
151
|
+
"id",
|
|
152
|
+
"mapping_id",
|
|
153
|
+
"party_style_id",
|
|
154
|
+
"style_id",
|
|
155
|
+
"item_size",
|
|
156
|
+
"party_style_details.*",
|
|
157
|
+
],
|
|
158
|
+
filters: {
|
|
159
|
+
id: extendedVariantIds,
|
|
160
|
+
},
|
|
161
|
+
});
|
|
162
|
+
logger.info(`------Found ${extendedVariants?.length} extended variants for batch : ${batchIndex}------`);
|
|
163
|
+
// For each variant, regenerate options
|
|
164
|
+
for (const variant of batch) {
|
|
165
|
+
const extendedVariant = extendedVariants?.find((ev) => ev.id === variant.extendedVariantId);
|
|
166
|
+
const product = products?.find((p) => p.id === variant.productId);
|
|
167
|
+
if (!extendedVariant || !product) {
|
|
168
|
+
logger.warn(`------Extended variant or product not found for variant ${variant.variantId} (product id: ${variant.productId}) batch: ${batchIndex}------`);
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
// Initialize product's option map if not exists
|
|
172
|
+
if (!newOptionValuesByProduct.has(variant.productId)) {
|
|
173
|
+
newOptionValuesByProduct.set(variant.productId, new Map());
|
|
174
|
+
}
|
|
175
|
+
const productOptionMap = newOptionValuesByProduct.get(variant.productId);
|
|
176
|
+
// Generate options directly from extended_variant data
|
|
177
|
+
const variantOptions = {};
|
|
178
|
+
// Size
|
|
179
|
+
if (extendedVariant.item_size) {
|
|
180
|
+
const sizeTitle = (masterMaps.itemSizeMasterMap.get(extendedVariant.item_size) ||
|
|
181
|
+
String(extendedVariant.item_size)).trim();
|
|
182
|
+
// Always set on variant and track for product options update
|
|
183
|
+
variantOptions["Size"] = sizeTitle;
|
|
184
|
+
if (!productOptionMap.has("Size")) {
|
|
185
|
+
productOptionMap.set("Size", new Set());
|
|
186
|
+
}
|
|
187
|
+
productOptionMap.get("Size").add(sizeTitle);
|
|
188
|
+
}
|
|
189
|
+
// Process party_style_details for metals, metal colors, diamond qualities, and shapes
|
|
190
|
+
let hasMetalOption = false;
|
|
191
|
+
let hasDiamondOption = false;
|
|
192
|
+
if (extendedVariant.party_style_details) {
|
|
193
|
+
for (const detail of extendedVariant.party_style_details) {
|
|
194
|
+
// Metal options
|
|
195
|
+
if (detail.raw_type === "Metal" && detail.is_base) {
|
|
196
|
+
hasMetalOption = true;
|
|
197
|
+
const qualityTitle = (masterMaps.qualityMasterMap.get(detail.qly_code) ||
|
|
198
|
+
detail.qly_code).trim();
|
|
199
|
+
const rawTitle = (masterMaps.rawMasterMap.get(detail.raw_code) ||
|
|
200
|
+
detail.raw_code).trim();
|
|
201
|
+
const metalValue = `${qualityTitle} ${rawTitle}`.trim();
|
|
202
|
+
const metalOption = product.options?.find((opt) => opt.title === "Metal");
|
|
203
|
+
if (metalOption) {
|
|
204
|
+
variantOptions["Metal"] = metalValue;
|
|
205
|
+
// Track this value for product options update
|
|
206
|
+
if (!productOptionMap.has("Metal")) {
|
|
207
|
+
productOptionMap.set("Metal", new Set());
|
|
208
|
+
}
|
|
209
|
+
productOptionMap.get("Metal").add(metalValue);
|
|
210
|
+
}
|
|
211
|
+
// Metal Color
|
|
212
|
+
if (detail.tone_code) {
|
|
213
|
+
let colorTitle = masterMaps.toneMasterMap.get(detail.tone_code) ||
|
|
214
|
+
detail.tone_code;
|
|
215
|
+
// Fallback to static mappings if not in master
|
|
216
|
+
if (!masterMaps.toneMasterMap.has(detail.tone_code)) {
|
|
217
|
+
if (detail.tone_code === "R")
|
|
218
|
+
colorTitle = "Rose";
|
|
219
|
+
else if (detail.tone_code === "Y")
|
|
220
|
+
colorTitle = "Yellow";
|
|
221
|
+
else if (detail.tone_code === "W")
|
|
222
|
+
colorTitle = "White";
|
|
223
|
+
else if (detail.tone_code === "YRW")
|
|
224
|
+
colorTitle = "YELLOW/ROSE/WHITE";
|
|
225
|
+
else if (detail.tone_code === "YW")
|
|
226
|
+
colorTitle = "YELLOW/WHITE";
|
|
227
|
+
else if (detail.tone_code === "RW")
|
|
228
|
+
colorTitle = "ROSE/WHITE";
|
|
229
|
+
else if (detail.tone_code === "BU")
|
|
230
|
+
colorTitle = "BLUE";
|
|
231
|
+
else if (detail.tone_code === "BL")
|
|
232
|
+
colorTitle = "BLACK";
|
|
233
|
+
}
|
|
234
|
+
colorTitle = colorTitle.trim();
|
|
235
|
+
const metalColorOption = product.options?.find((opt) => opt.title === "Metal Color");
|
|
236
|
+
if (metalColorOption) {
|
|
237
|
+
variantOptions["Metal Color"] = colorTitle;
|
|
238
|
+
// Track this value for product options update
|
|
239
|
+
if (!productOptionMap.has("Metal Color")) {
|
|
240
|
+
productOptionMap.set("Metal Color", new Set());
|
|
241
|
+
}
|
|
242
|
+
productOptionMap.get("Metal Color").add(colorTitle);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
// Diamond Quality
|
|
247
|
+
if (detail.raw_type === "Diamond" &&
|
|
248
|
+
detail.tone_code &&
|
|
249
|
+
detail.qly_code &&
|
|
250
|
+
detail.is_base) {
|
|
251
|
+
hasDiamondOption = true;
|
|
252
|
+
const toneTitle = (masterMaps.toneMasterMap.get(detail.tone_code) ||
|
|
253
|
+
detail.tone_code).trim();
|
|
254
|
+
const qualityTitle = (masterMaps.qualityMasterMap.get(detail.qly_code) ||
|
|
255
|
+
detail.qly_code).trim();
|
|
256
|
+
const diamondValue = `${toneTitle} ${qualityTitle}`.trim();
|
|
257
|
+
const diamondOption = product.options?.find((opt) => opt.title === "Diamond Quality");
|
|
258
|
+
if (diamondOption) {
|
|
259
|
+
variantOptions["Diamond Quality"] = diamondValue;
|
|
260
|
+
// Track this value for product options update
|
|
261
|
+
if (!productOptionMap.has("Diamond Quality")) {
|
|
262
|
+
productOptionMap.set("Diamond Quality", new Set());
|
|
263
|
+
}
|
|
264
|
+
productOptionMap.get("Diamond Quality").add(diamondValue);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
if (detail.raw_type === "Diamond" &&
|
|
268
|
+
detail.is_base) {
|
|
269
|
+
const shapeTitle = (masterMaps.shapeMasterMap.get(detail.shape_code) ||
|
|
270
|
+
String(detail.shape_code || "")).trim();
|
|
271
|
+
if (shapeTitle) {
|
|
272
|
+
const shapeOption = product.options?.find((opt) => opt.title === "Shape");
|
|
273
|
+
if (shapeOption) {
|
|
274
|
+
variantOptions["Shape"] = shapeTitle;
|
|
275
|
+
if (!productOptionMap.has("Shape")) {
|
|
276
|
+
productOptionMap.set("Shape", new Set());
|
|
277
|
+
}
|
|
278
|
+
productOptionMap.get("Shape").add(shapeTitle);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
variantsToUpdate.push({
|
|
285
|
+
variant: {
|
|
286
|
+
id: variant.variantId,
|
|
287
|
+
options: variantOptions,
|
|
288
|
+
},
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
// STEP 1: Update product options FIRST to include all new values
|
|
293
|
+
// This ensures option values exist before assigning them to variants
|
|
294
|
+
const productsToUpdate = [];
|
|
295
|
+
for (const productId of productIds) {
|
|
296
|
+
const product = products?.find((p) => p.id === productId);
|
|
297
|
+
if (!product)
|
|
298
|
+
continue;
|
|
299
|
+
// Get all existing variants for this product to preserve existing option values
|
|
300
|
+
const { data: allVariants } = await query.graph({
|
|
301
|
+
entity: "product_variant",
|
|
302
|
+
fields: ["id", "options.*"],
|
|
303
|
+
filters: {
|
|
304
|
+
product_id: productId,
|
|
305
|
+
},
|
|
306
|
+
});
|
|
307
|
+
// Collect unique option values from existing variants
|
|
308
|
+
const productOptionsMap = new Map();
|
|
309
|
+
// Map option_id -> canonical product option title
|
|
310
|
+
const optionIdToTitle = new Map();
|
|
311
|
+
const canonicalTitleByLower = new Map();
|
|
312
|
+
for (const po of product.options || []) {
|
|
313
|
+
if (po?.id && po?.title) {
|
|
314
|
+
const t = String(po.title).trim();
|
|
315
|
+
optionIdToTitle.set(po.id, t);
|
|
316
|
+
canonicalTitleByLower.set(t.toLowerCase(), t);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
// First, collect from existing variants
|
|
320
|
+
for (const variant of allVariants || []) {
|
|
321
|
+
if (variant.options) {
|
|
322
|
+
for (const opt of variant.options) {
|
|
323
|
+
// Resolve canonical title: prefer option_id mapping, then normalize provided title
|
|
324
|
+
let resolvedTitle = undefined;
|
|
325
|
+
if (opt.option_id) {
|
|
326
|
+
resolvedTitle = optionIdToTitle.get(opt.option_id);
|
|
327
|
+
}
|
|
328
|
+
if (!resolvedTitle && opt.title) {
|
|
329
|
+
const t = String(opt.title).trim();
|
|
330
|
+
resolvedTitle = canonicalTitleByLower.get(t.toLowerCase()) || t;
|
|
331
|
+
}
|
|
332
|
+
const value = opt.value ? String(opt.value).trim() : "";
|
|
333
|
+
if (resolvedTitle && value) {
|
|
334
|
+
if (!productOptionsMap.has(resolvedTitle)) {
|
|
335
|
+
productOptionsMap.set(resolvedTitle, new Set());
|
|
336
|
+
}
|
|
337
|
+
productOptionsMap.get(resolvedTitle).add(value);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
// Then, merge in the new option values we'll be using
|
|
343
|
+
const newValuesForProduct = newOptionValuesByProduct.get(productId);
|
|
344
|
+
if (newValuesForProduct) {
|
|
345
|
+
for (const [optionTitle, newValues,] of newValuesForProduct.entries()) {
|
|
346
|
+
if (!productOptionsMap.has(optionTitle)) {
|
|
347
|
+
productOptionsMap.set(optionTitle, new Set());
|
|
348
|
+
}
|
|
349
|
+
// Merge new values into existing set
|
|
350
|
+
for (const value of newValues) {
|
|
351
|
+
productOptionsMap.get(optionTitle).add(value.trim());
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
// Convert to options format, filtering out empty strings
|
|
356
|
+
const productOptions = Array.from(productOptionsMap.entries())
|
|
357
|
+
.map(([title, values]) => ({
|
|
358
|
+
title,
|
|
359
|
+
values: Array.from(values).filter((v) => v.length > 0),
|
|
360
|
+
}))
|
|
361
|
+
.filter((opt) => opt.values.length > 0); // Only include options with values
|
|
362
|
+
productsToUpdate.push({
|
|
363
|
+
product: {
|
|
364
|
+
id: productId,
|
|
365
|
+
options: productOptions,
|
|
366
|
+
},
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
// Update products FIRST
|
|
370
|
+
if (productsToUpdate.length > 0) {
|
|
371
|
+
logger.info(`------Updating ${productsToUpdate.length} products with new option values before variant update------`);
|
|
372
|
+
await (0, core_flows_1.updateProductsWorkflow)(container).run({
|
|
373
|
+
input: {
|
|
374
|
+
products: productsToUpdate.map((p) => p.product),
|
|
375
|
+
},
|
|
376
|
+
});
|
|
377
|
+
logger.info(`------Updated ${productsToUpdate.length} products for record ${record.id}------`);
|
|
378
|
+
}
|
|
379
|
+
// STEP 2: Now update variants with the new option values
|
|
380
|
+
// The option values now exist in the products, so this will succeed
|
|
381
|
+
if (variantsToUpdate.length > 0) {
|
|
382
|
+
logger.info(`------Updating ${variantsToUpdate.length} variants with new option values------`);
|
|
383
|
+
await (0, core_flows_1.updateProductVariantsWorkflow)(container).run({
|
|
384
|
+
input: {
|
|
385
|
+
product_variants: variantsToUpdate.map((v) => v.variant),
|
|
386
|
+
},
|
|
387
|
+
});
|
|
388
|
+
logger.info(`------Updated ${variantsToUpdate.length} variants for record ${record.id}------`);
|
|
389
|
+
}
|
|
390
|
+
// Mark record as completed
|
|
391
|
+
await syncQueueService.updateVariantOptionSyncQueues([
|
|
392
|
+
{
|
|
393
|
+
id: record.id,
|
|
394
|
+
status: "completed",
|
|
395
|
+
affected_variant_count: affectedVariants.length,
|
|
396
|
+
processed_at: new Date(),
|
|
397
|
+
},
|
|
398
|
+
]);
|
|
399
|
+
logger.info(`------Completed processing record ${record.id}: ${affectedVariants.length} variants affected------`);
|
|
400
|
+
}
|
|
401
|
+
catch (recordError) {
|
|
402
|
+
const affectedVariants = await (0, variant_helper_1.findVariantsAffectedByMasterUpdate)(query, record.master_type, record.master_code);
|
|
403
|
+
logger.error(`------Error processing record ${record.id}: ${recordError?.message}------ (affected variants: ${affectedVariants.length})`, recordError);
|
|
404
|
+
// Mark record as failed
|
|
405
|
+
await syncQueueService.updateVariantOptionSyncQueues([
|
|
406
|
+
{
|
|
407
|
+
id: record.id,
|
|
408
|
+
status: "failed",
|
|
409
|
+
error_message: recordError?.message || "Unknown error",
|
|
410
|
+
affected_variant_count: affectedVariants.length,
|
|
411
|
+
processed_at: new Date(),
|
|
412
|
+
},
|
|
413
|
+
]);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
logger.info("Variant option sync job completed");
|
|
417
|
+
}
|
|
418
|
+
catch (error) {
|
|
419
|
+
logger.error("Error in variant option sync job:", error);
|
|
420
|
+
throw error;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
exports.config = {
|
|
424
|
+
name: "process-variant-option-sync",
|
|
425
|
+
// schedule: "0 3 * * *", // At 3:00 AM every day
|
|
426
|
+
schedule: "*/30 * * * *", // Every 30 minutes
|
|
427
|
+
};
|
|
428
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy12YXJpYW50LW9wdGlvbi1zeW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2pvYnMvcHJvY2Vzcy12YXJpYW50LW9wdGlvbi1zeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTBCQSwyQ0FvaUJDO0FBN2pCRCxxREFBc0U7QUFDdEUsNERBR3FDO0FBRXJDLG9GQUF3RjtBQUN4Rix3RUFHNkM7QUFHN0M7Ozs7Ozs7Ozs7O0lBV0k7QUFDVyxLQUFLLFVBQVUsd0JBQXdCLENBQ3BELFNBQTBCO0lBRTFCLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRSxNQUFNLGdCQUFnQixHQUFrQyxTQUFTLENBQUMsT0FBTyxDQUN2RSw0REFBZ0MsQ0FDakMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUU1RCxJQUFJLENBQUM7UUFDSCxxQ0FBcUM7UUFDckMsTUFBTSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDakQsTUFBTSxFQUFFLDJCQUEyQjtZQUNuQyxNQUFNLEVBQUU7Z0JBQ04sSUFBSTtnQkFDSixhQUFhO2dCQUNiLGFBQWE7Z0JBQ2IsV0FBVztnQkFDWCxXQUFXO2dCQUNYLFdBQVc7YUFDWjtZQUNELE9BQU8sRUFBRTtnQkFDUCxNQUFNLEVBQUUsU0FBUzthQUNsQjtZQUNELFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsRUFBRSxFQUFFLCtCQUErQjthQUMxQztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZ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
|
package/.medusa/server/src/modules/category-group-master/migrations/Migration20251031061116.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20251031061116 = void 0;
|
|
4
|
+
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
+
class Migration20251031061116 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table if exists "category_group_master" add column if not exists "title" text null;`);
|
|
8
|
+
}
|
|
9
|
+
async down() {
|
|
10
|
+
this.addSql(`alter table if exists "category_group_master" drop column if exists "title";`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Migration20251031061116 = Migration20251031061116;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTEwMzEwNjExMTYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jYXRlZ29yeS1ncm91cC1tYXN0ZXIvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MTAzMTA2MTExNi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsMkZBQTJGLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyw4RUFBOEUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7Q0FFRjtBQVZELDBEQVVDIn0=
|
package/.medusa/server/src/modules/category-group-master/migrations/Migration20251104045912.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20251104045912 = void 0;
|
|
4
|
+
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
+
class Migration20251104045912 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table if exists "category_group_master" drop column if exists "title";`);
|
|
8
|
+
}
|
|
9
|
+
async down() {
|
|
10
|
+
this.addSql(`alter table if exists "category_group_master" add column if not exists "title" text null;`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Migration20251104045912 = Migration20251104045912;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTExMDQwNDU5MTIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jYXRlZ29yeS1ncm91cC1tYXN0ZXIvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MTEwNDA0NTkxMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsOEVBQThFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQywyRkFBMkYsQ0FBQyxDQUFDO0lBQzNHLENBQUM7Q0FFRjtBQVZELDBEQVVDIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20251031061327 = void 0;
|
|
4
|
+
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
+
class Migration20251031061327 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table if exists "category_master" add column if not exists "title" text null;`);
|
|
8
|
+
}
|
|
9
|
+
async down() {
|
|
10
|
+
this.addSql(`alter table if exists "category_master" drop column if exists "title";`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Migration20251031061327 = Migration20251031061327;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTEwMzEwNjEzMjcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jYXRlZ29yeS1tYXN0ZXIvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MTAzMTA2MTMyNy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMscUZBQXFGLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7Q0FFRjtBQVZELDBEQVVDIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20251104045755 = void 0;
|
|
4
|
+
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
+
class Migration20251104045755 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table if exists "category_master" drop column if exists "title";`);
|
|
8
|
+
}
|
|
9
|
+
async down() {
|
|
10
|
+
this.addSql(`alter table if exists "category_master" add column if not exists "title" text null;`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Migration20251104045755 = Migration20251104045755;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTExMDQwNDU3NTUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jYXRlZ29yeS1tYXN0ZXIvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MTEwNDA0NTc1NS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsd0VBQXdFLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxRkFBcUYsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7Q0FFRjtBQVZELDBEQVVDIn0=
|
package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251031061432.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20251031061432 = void 0;
|
|
4
|
+
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
+
class Migration20251031061432 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table if exists "collection_group_master" add column if not exists "title" text null;`);
|
|
8
|
+
}
|
|
9
|
+
async down() {
|
|
10
|
+
this.addSql(`alter table if exists "collection_group_master" drop column if exists "title";`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Migration20251031061432 = Migration20251031061432;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTEwMzEwNjE0MzIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb2xsZWN0aW9uLWdyb3VwLW1hc3Rlci9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjUxMDMxMDYxNDMyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUFrRDtBQUVsRCxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBRTNDLEtBQUssQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2RkFBNkYsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFUSxLQUFLLENBQUMsSUFBSTtRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLGdGQUFnRixDQUFDLENBQUM7SUFDaEcsQ0FBQztDQUVGO0FBVkQsMERBVUMifQ==
|
package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251104050102.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20251104050102 = void 0;
|
|
4
|
+
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
+
class Migration20251104050102 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table if exists "collection_group_master" drop column if exists "title";`);
|
|
8
|
+
}
|
|
9
|
+
async down() {
|
|
10
|
+
this.addSql(`alter table if exists "collection_group_master" add column if not exists "title" text null;`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Migration20251104050102 = Migration20251104050102;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTExMDQwNTAxMDIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb2xsZWN0aW9uLWdyb3VwLW1hc3Rlci9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjUxMTA0MDUwMTAyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUFrRDtBQUVsRCxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBRTNDLEtBQUssQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnRkFBZ0YsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFUSxLQUFLLENBQUMsSUFBSTtRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLDZGQUE2RixDQUFDLENBQUM7SUFDN0csQ0FBQztDQUVGO0FBVkQsMERBVUMifQ==
|