@devx-commerce/plugin-gati 0.0.34-beta.2 → 0.0.34

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 (113) hide show
  1. package/.medusa/server/development/erp-order-payload-example.js +76 -0
  2. package/.medusa/server/src/api/admin/middlewares.js +2 -6
  3. package/.medusa/server/src/api/erp/webhook/config.js +6 -32
  4. package/.medusa/server/src/api/middlewares.js +1 -3
  5. package/.medusa/server/src/api/store/middleware.js +1 -3
  6. package/.medusa/server/src/modules/erp/service.js +1 -59
  7. package/.medusa/server/src/modules/extended-product/models/extended-product.js +9 -89
  8. package/.medusa/server/src/modules/extended-variant/models/extended-variant.js +12 -145
  9. package/.medusa/server/src/modules/raw-master/models/raw-master.js +1 -2
  10. package/.medusa/server/src/modules/shape-master/models/shape-master.js +1 -2
  11. package/.medusa/server/src/modules/shipping-info-master/models/shipping-info-master.js +2 -2
  12. package/.medusa/server/src/subscribers/cutomer-updated.js +2 -1
  13. package/.medusa/server/src/subscribers/party-master.js +2 -2
  14. package/.medusa/server/src/workflows/create-or-update-product-options/steps/create-update-product-options.js +2 -39
  15. package/.medusa/server/src/workflows/helpers/product-helper.js +106 -409
  16. package/.medusa/server/src/workflows/inward-master/helper/index.js +39 -88
  17. package/.medusa/server/src/workflows/party-master/steps/delete-party.js +7 -4
  18. package/.medusa/server/src/workflows/party-master/workflows/create-or-update-party-master.js +49 -1
  19. package/.medusa/server/src/workflows/party-master/workflows/index.js +1 -2
  20. package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-deletion.js +189 -307
  21. package/.medusa/server/src/workflows/party-style-master/workflows/create-or-update-party-style-master.js +4 -120
  22. package/.medusa/server/src/workflows/raw-master/steps/delete-raw.js +11 -9
  23. package/.medusa/server/src/workflows/shape-master/steps/delete-shape.js +9 -9
  24. package/package.json +1 -1
  25. package/.medusa/server/src/api/admin/masters/[master]/[id]/route.js +0 -121
  26. package/.medusa/server/src/api/admin/masters/[master]/route.js +0 -33
  27. package/.medusa/server/src/api/admin/masters/middlewares.js +0 -35
  28. package/.medusa/server/src/api/admin/masters/query-config.js +0 -14
  29. package/.medusa/server/src/api/admin/masters/search-middleware.js +0 -16
  30. package/.medusa/server/src/api/admin/masters/utils.js +0 -108
  31. package/.medusa/server/src/api/admin/masters/validators.js +0 -28
  32. package/.medusa/server/src/api/admin/variant-options/sync/route.js +0 -313
  33. package/.medusa/server/src/api/pos/gold-rate/middleware.js +0 -13
  34. package/.medusa/server/src/api/pos/gold-rate/route.js +0 -96
  35. package/.medusa/server/src/api/pos/middleware.js +0 -13
  36. package/.medusa/server/src/api/store/gold-rate/current/route.js +0 -70
  37. package/.medusa/server/src/api/store/gold-rate/historical/route.js +0 -108
  38. package/.medusa/server/src/api/store/gold-rate/middleware.js +0 -19
  39. package/.medusa/server/src/api/store/gold-rate/validators.js +0 -37
  40. package/.medusa/server/src/jobs/process-variant-option-sync.js +0 -521
  41. package/.medusa/server/src/modules/category-group-master/migrations/Migration20251031061116.js +0 -14
  42. package/.medusa/server/src/modules/category-group-master/migrations/Migration20251104045912.js +0 -14
  43. package/.medusa/server/src/modules/category-master/migrations/Migration20251031061327.js +0 -14
  44. package/.medusa/server/src/modules/category-master/migrations/Migration20251104045755.js +0 -14
  45. package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251031061432.js +0 -14
  46. package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251104050102.js +0 -14
  47. package/.medusa/server/src/modules/collection-master/migrations/Migration20251031060941.js +0 -14
  48. package/.medusa/server/src/modules/collection-master/migrations/Migration20251104050012.js +0 -14
  49. package/.medusa/server/src/modules/discount-master/migrations/Migration20251031061523.js +0 -14
  50. package/.medusa/server/src/modules/discount-master/migrations/Migration20251104050153.js +0 -14
  51. package/.medusa/server/src/modules/extended-product/migrations/Migration20251103182726.js +0 -14
  52. package/.medusa/server/src/modules/extended-product/migrations/Migration20251119062526.js +0 -16
  53. package/.medusa/server/src/modules/extended-product/migrations/Migration20251202055742.js +0 -14
  54. package/.medusa/server/src/modules/extended-product/migrations/Migration20251202064200.js +0 -16
  55. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251119063328.js +0 -20
  56. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120045708.js +0 -14
  57. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120051832.js +0 -14
  58. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120052514.js +0 -14
  59. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251202055952.js +0 -14
  60. package/.medusa/server/src/modules/item-size-master/index.js +0 -13
  61. package/.medusa/server/src/modules/item-size-master/migrations/Migration20251031111036.js +0 -17
  62. package/.medusa/server/src/modules/item-size-master/models/item-size-master.js +0 -14
  63. package/.medusa/server/src/modules/item-size-master/service.js +0 -10
  64. package/.medusa/server/src/modules/party-master/migrations/Migration20251031061657.js +0 -14
  65. package/.medusa/server/src/modules/party-master/migrations/Migration20251104050242.js +0 -14
  66. package/.medusa/server/src/modules/promocode-master/migrations/Migration20251031061829.js +0 -14
  67. package/.medusa/server/src/modules/promocode-master/migrations/Migration20251104050332.js +0 -14
  68. package/.medusa/server/src/modules/quality-master/index.js +0 -13
  69. package/.medusa/server/src/modules/quality-master/migrations/Migration20251031095211.js +0 -16
  70. package/.medusa/server/src/modules/quality-master/migrations/Migration20251105045114.js +0 -14
  71. package/.medusa/server/src/modules/quality-master/models/quality-master.js +0 -17
  72. package/.medusa/server/src/modules/quality-master/service.js +0 -10
  73. package/.medusa/server/src/modules/raw-master/migrations/Migration20251031061912.js +0 -14
  74. package/.medusa/server/src/modules/shape-master/migrations/Migration20251031062019.js +0 -14
  75. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251031062128.js +0 -14
  76. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251104050501.js +0 -14
  77. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251203083315.js +0 -16
  78. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251031062303.js +0 -14
  79. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251104050743.js +0 -14
  80. package/.medusa/server/src/modules/tone-master/index.js +0 -13
  81. package/.medusa/server/src/modules/tone-master/migrations/Migration20251031104320.js +0 -16
  82. package/.medusa/server/src/modules/tone-master/models/tone-master.js +0 -15
  83. package/.medusa/server/src/modules/tone-master/service.js +0 -10
  84. package/.medusa/server/src/modules/variant-option-sync-queue/index.js +0 -13
  85. package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251101082220.js +0 -19
  86. package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251103123857.js +0 -16
  87. package/.medusa/server/src/modules/variant-option-sync-queue/models/variant-option-sync-queue.js +0 -23
  88. package/.medusa/server/src/modules/variant-option-sync-queue/service.js +0 -49
  89. package/.medusa/server/src/utils/build-redis-key.js +0 -30
  90. package/.medusa/server/src/workflows/helpers/update-variant-option-metadata.js +0 -105
  91. package/.medusa/server/src/workflows/helpers/variant-helper.js +0 -212
  92. package/.medusa/server/src/workflows/item-size-master/create-or-update-item-size-master.js +0 -51
  93. package/.medusa/server/src/workflows/item-size-master/index.js +0 -15
  94. package/.medusa/server/src/workflows/item-size-master/steps/create-item-size.js +0 -21
  95. package/.medusa/server/src/workflows/item-size-master/steps/delete-item-size.js +0 -23
  96. package/.medusa/server/src/workflows/item-size-master/steps/fetch-item-size-master.js +0 -55
  97. package/.medusa/server/src/workflows/item-size-master/steps/update-item-size.js +0 -36
  98. package/.medusa/server/src/workflows/party-master/workflows/delete-party-master.js +0 -60
  99. package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-variant-update.js +0 -367
  100. package/.medusa/server/src/workflows/quality-master/create-or-update-quality-master.js +0 -58
  101. package/.medusa/server/src/workflows/quality-master/index.js +0 -30
  102. package/.medusa/server/src/workflows/quality-master/steps/create-quality.js +0 -22
  103. package/.medusa/server/src/workflows/quality-master/steps/delete-quality.js +0 -20
  104. package/.medusa/server/src/workflows/quality-master/steps/fetch-quality-master.js +0 -54
  105. package/.medusa/server/src/workflows/quality-master/steps/update-quality.js +0 -37
  106. package/.medusa/server/src/workflows/raw-master/create-or-update-raw-master.js +0 -58
  107. package/.medusa/server/src/workflows/shape-master/create-or-update-shape-master.js +0 -53
  108. package/.medusa/server/src/workflows/tone-master/create-or-update-tone-master.js +0 -52
  109. package/.medusa/server/src/workflows/tone-master/index.js +0 -30
  110. package/.medusa/server/src/workflows/tone-master/steps/create-tone.js +0 -22
  111. package/.medusa/server/src/workflows/tone-master/steps/delete-tone.js +0 -20
  112. package/.medusa/server/src/workflows/tone-master/steps/fetch-tone-master.js +0 -54
  113. package/.medusa/server/src/workflows/tone-master/steps/update-tone.js +0 -37
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Migration20251031062303 = void 0;
4
- const migrations_1 = require("@mikro-orm/migrations");
5
- class Migration20251031062303 extends migrations_1.Migration {
6
- async up() {
7
- this.addSql(`alter table if exists "sub_category_master" add column if not exists "title" text null;`);
8
- }
9
- async down() {
10
- this.addSql(`alter table if exists "sub_category_master" drop column if exists "title";`);
11
- }
12
- }
13
- exports.Migration20251031062303 = Migration20251031062303;
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTEwMzEwNjIzMDMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9zdWItY2F0ZWdvcnktbWFzdGVyL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNTEwMzEwNjIzMDMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQWtEO0FBRWxELE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFFM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLHlGQUF5RixDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsNEVBQTRFLENBQUMsQ0FBQztJQUM1RixDQUFDO0NBRUY7QUFWRCwwREFVQyJ9
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Migration20251104050743 = void 0;
4
- const migrations_1 = require("@mikro-orm/migrations");
5
- class Migration20251104050743 extends migrations_1.Migration {
6
- async up() {
7
- this.addSql(`alter table if exists "sub_category_master" drop column if exists "title";`);
8
- }
9
- async down() {
10
- this.addSql(`alter table if exists "sub_category_master" add column if not exists "title" text null;`);
11
- }
12
- }
13
- exports.Migration20251104050743 = Migration20251104050743;
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTExMDQwNTA3NDMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9zdWItY2F0ZWdvcnktbWFzdGVyL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNTExMDQwNTA3NDMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQWtEO0FBRWxELE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFFM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLDRFQUE0RSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMseUZBQXlGLENBQUMsQ0FBQztJQUN6RyxDQUFDO0NBRUY7QUFWRCwwREFVQyJ9
@@ -1,13 +0,0 @@
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.TONE_MASTER_MODULE = void 0;
7
- const utils_1 = require("@medusajs/framework/utils");
8
- const service_1 = __importDefault(require("./service"));
9
- exports.TONE_MASTER_MODULE = "tone_master";
10
- exports.default = (0, utils_1.Module)(exports.TONE_MASTER_MODULE, {
11
- service: service_1.default,
12
- });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy90b25lLW1hc3Rlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxREFBbUQ7QUFDbkQsd0RBQTBDO0FBRTdCLFFBQUEsa0JBQWtCLEdBQUcsYUFBYSxDQUFDO0FBRWhELGtCQUFlLElBQUEsY0FBTSxFQUFDLDBCQUFrQixFQUFFO0lBQ3hDLE9BQU8sRUFBRSxpQkFBaUI7Q0FDM0IsQ0FBQyxDQUFDIn0=
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Migration20251031104320 = void 0;
4
- const migrations_1 = require("@mikro-orm/migrations");
5
- class Migration20251031104320 extends migrations_1.Migration {
6
- async up() {
7
- this.addSql(`create table if not exists "tone_master" ("id" text not null, "title" text null, "tone_no" integer not null, "tone_for" text not null, "tone_code" text not null, "tone_name" text not null, "tone_alias_name" text not null, "is_block_for_use" boolean not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "tone_master_pkey" primary key ("id"));`);
8
- this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_tone_master_tone_code" ON "tone_master" (tone_code) WHERE deleted_at IS NULL;`);
9
- this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_tone_master_deleted_at" ON "tone_master" (deleted_at) WHERE deleted_at IS NULL;`);
10
- }
11
- async down() {
12
- this.addSql(`drop table if exists "tone_master" cascade;`);
13
- }
14
- }
15
- exports.Migration20251031104320 = Migration20251031104320;
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTEwMzExMDQzMjAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy90b25lLW1hc3Rlci9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjUxMDMxMTA0MzIwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUFrRDtBQUVsRCxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBRTNDLEtBQUssQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3YkFBd2IsQ0FBQyxDQUFDO1FBQ3RjLElBQUksQ0FBQyxNQUFNLENBQUMsK0dBQStHLENBQUMsQ0FBQztRQUM3SCxJQUFJLENBQUMsTUFBTSxDQUFDLGlIQUFpSCxDQUFDLENBQUM7SUFDakksQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0NBRUY7QUFaRCwwREFZQyJ9
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ToneMaster = void 0;
4
- const utils_1 = require("@medusajs/framework/utils");
5
- exports.ToneMaster = utils_1.model.define("tone_master", {
6
- id: utils_1.model.id().primaryKey(),
7
- title: utils_1.model.text().nullable(),
8
- tone_no: utils_1.model.number(),
9
- tone_for: utils_1.model.text(),
10
- tone_code: utils_1.model.text().index(),
11
- tone_name: utils_1.model.text(),
12
- tone_alias_name: utils_1.model.text(),
13
- is_block_for_use: utils_1.model.boolean(),
14
- });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uZS1tYXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy90b25lLW1hc3Rlci9tb2RlbHMvdG9uZS1tYXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWtEO0FBRXJDLFFBQUEsVUFBVSxHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFO0lBQ3BELEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLEtBQUssRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzlCLE9BQU8sRUFBRSxhQUFLLENBQUMsTUFBTSxFQUFFO0lBQ3ZCLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3RCLFNBQVMsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFO0lBQy9CLFNBQVMsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3ZCLGVBQWUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQzdCLGdCQUFnQixFQUFFLGFBQUssQ0FBQyxPQUFPLEVBQUU7Q0FDbEMsQ0FBQyxDQUFDIn0=
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const utils_1 = require("@medusajs/framework/utils");
4
- const tone_master_1 = require("./models/tone-master");
5
- class ToneMasterService extends (0, utils_1.MedusaService)({
6
- ToneMaster: tone_master_1.ToneMaster,
7
- }) {
8
- }
9
- exports.default = ToneMasterService;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3RvbmUtbWFzdGVyL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBMEQ7QUFDMUQsc0RBQWtEO0FBRWxELE1BQU0saUJBQWtCLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQzVDLFVBQVUsRUFBVix3QkFBVTtDQUNYLENBQUM7Q0FBRztBQUVMLGtCQUFlLGlCQUFpQixDQUFDIn0=
@@ -1,13 +0,0 @@
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.VARIANT_OPTION_SYNC_QUEUE_MODULE = void 0;
7
- const utils_1 = require("@medusajs/framework/utils");
8
- const service_1 = __importDefault(require("./service"));
9
- exports.VARIANT_OPTION_SYNC_QUEUE_MODULE = "variant_option_sync_queue";
10
- exports.default = (0, utils_1.Module)(exports.VARIANT_OPTION_SYNC_QUEUE_MODULE, {
11
- service: service_1.default,
12
- });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy92YXJpYW50LW9wdGlvbi1zeW5jLXF1ZXVlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHFEQUFtRDtBQUNuRCx3REFBc0Q7QUFFekMsUUFBQSxnQ0FBZ0MsR0FBRywyQkFBMkIsQ0FBQztBQUU1RSxrQkFBZSxJQUFBLGNBQU0sRUFBQyx3Q0FBZ0MsRUFBRTtJQUN0RCxPQUFPLEVBQUUsaUJBQTZCO0NBQ3ZDLENBQUMsQ0FBQyJ9
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Migration20251101082220 = void 0;
4
- const migrations_1 = require("@mikro-orm/migrations");
5
- class Migration20251101082220 extends migrations_1.Migration {
6
- async up() {
7
- this.addSql(`create table if not exists "variant_option_sync_queue" ("id" text not null, "master_type" text check ("master_type" in ('RawMst', 'QualityMst', 'ToneMst', 'ItemSizeMst')) not null, "master_code" text not null, "master_id" text not null, "old_title" text not null, "new_title" text not null, "status" text check ("status" in ('pending', 'processing', 'completed', 'failed')) not null default 'pending', "processed_at" timestamptz null, "error_message" text null, "affected_variant_count" integer not null default 0, "updated_by" text null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "variant_option_sync_queue_pkey" primary key ("id"));`);
8
- this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_variant_option_sync_queue_master_type" ON "variant_option_sync_queue" (master_type) WHERE deleted_at IS NULL;`);
9
- this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_variant_option_sync_queue_master_code" ON "variant_option_sync_queue" (master_code) WHERE deleted_at IS NULL;`);
10
- this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_variant_option_sync_queue_master_id" ON "variant_option_sync_queue" (master_id) WHERE deleted_at IS NULL;`);
11
- this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_variant_option_sync_queue_status" ON "variant_option_sync_queue" (status) WHERE deleted_at IS NULL;`);
12
- this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_variant_option_sync_queue_deleted_at" ON "variant_option_sync_queue" (deleted_at) WHERE deleted_at IS NULL;`);
13
- }
14
- async down() {
15
- this.addSql(`drop table if exists "variant_option_sync_queue" cascade;`);
16
- }
17
- }
18
- exports.Migration20251101082220 = Migration20251101082220;
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTExMDEwODIyMjAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy92YXJpYW50LW9wdGlvbi1zeW5jLXF1ZXVlL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNTExMDEwODIyMjAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQWtEO0FBRWxELE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFFM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLDh0QkFBOHRCLENBQUMsQ0FBQztRQUM1dUIsSUFBSSxDQUFDLE1BQU0sQ0FBQywrSUFBK0ksQ0FBQyxDQUFDO1FBQzdKLElBQUksQ0FBQyxNQUFNLENBQUMsK0lBQStJLENBQUMsQ0FBQztRQUM3SixJQUFJLENBQUMsTUFBTSxDQUFDLDJJQUEySSxDQUFDLENBQUM7UUFDekosSUFBSSxDQUFDLE1BQU0sQ0FBQyxxSUFBcUksQ0FBQyxDQUFDO1FBQ25KLElBQUksQ0FBQyxNQUFNLENBQUMsNklBQTZJLENBQUMsQ0FBQztJQUM3SixDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQzNFLENBQUM7Q0FFRjtBQWZELDBEQWVDIn0=
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Migration20251103123857 = void 0;
4
- const migrations_1 = require("@mikro-orm/migrations");
5
- class Migration20251103123857 extends migrations_1.Migration {
6
- async up() {
7
- this.addSql(`alter table if exists "variant_option_sync_queue" drop constraint if exists "variant_option_sync_queue_master_type_check";`);
8
- this.addSql(`alter table if exists "variant_option_sync_queue" add constraint "variant_option_sync_queue_master_type_check" check("master_type" in ('RawMst', 'QualityMst', 'ToneMst', 'ItemSizeMst', 'ShapeMst'));`);
9
- }
10
- async down() {
11
- this.addSql(`alter table if exists "variant_option_sync_queue" drop constraint if exists "variant_option_sync_queue_master_type_check";`);
12
- this.addSql(`alter table if exists "variant_option_sync_queue" add constraint "variant_option_sync_queue_master_type_check" check("master_type" in ('RawMst', 'QualityMst', 'ToneMst', 'ItemSizeMst'));`);
13
- }
14
- }
15
- exports.Migration20251103123857 = Migration20251103123857;
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTExMDMxMjM4NTcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy92YXJpYW50LW9wdGlvbi1zeW5jLXF1ZXVlL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNTExMDMxMjM4NTcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQWtEO0FBRWxELE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFFM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLDRIQUE0SCxDQUFDLENBQUM7UUFFMUksSUFBSSxDQUFDLE1BQU0sQ0FBQyx3TUFBd00sQ0FBQyxDQUFDO0lBQ3hOLENBQUM7SUFFUSxLQUFLLENBQUMsSUFBSTtRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLDRIQUE0SCxDQUFDLENBQUM7UUFFMUksSUFBSSxDQUFDLE1BQU0sQ0FBQyw0TEFBNEwsQ0FBQyxDQUFDO0lBQzVNLENBQUM7Q0FFRjtBQWRELDBEQWNDIn0=
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VariantOptionSyncQueue = void 0;
4
- const utils_1 = require("@medusajs/framework/utils");
5
- exports.VariantOptionSyncQueue = utils_1.model.define("variant_option_sync_queue", {
6
- id: utils_1.model.id().primaryKey(),
7
- master_type: utils_1.model
8
- .enum(["RawMst", "QualityMst", "ToneMst", "ItemSizeMst", "ShapeMst"])
9
- .index(),
10
- master_code: utils_1.model.text().index(),
11
- master_id: utils_1.model.text().index(),
12
- old_title: utils_1.model.text(),
13
- new_title: utils_1.model.text(),
14
- status: utils_1.model
15
- .enum(["pending", "processing", "completed", "failed"])
16
- .default("pending")
17
- .index(),
18
- processed_at: utils_1.model.dateTime().nullable(),
19
- error_message: utils_1.model.text().nullable(),
20
- affected_variant_count: utils_1.model.number().default(0),
21
- updated_by: utils_1.model.text().nullable(),
22
- });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC1vcHRpb24tc3luYy1xdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3ZhcmlhbnQtb3B0aW9uLXN5bmMtcXVldWUvbW9kZWxzL3ZhcmlhbnQtb3B0aW9uLXN5bmMtcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWtEO0FBRXJDLFFBQUEsc0JBQXNCLEdBQUcsYUFBSyxDQUFDLE1BQU0sQ0FDaEQsMkJBQTJCLEVBQzNCO0lBQ0UsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDM0IsV0FBVyxFQUFFLGFBQUs7U0FDZixJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDcEUsS0FBSyxFQUFFO0lBQ1YsV0FBVyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUU7SUFDakMsU0FBUyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUU7SUFDL0IsU0FBUyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDdkIsU0FBUyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDdkIsTUFBTSxFQUFFLGFBQUs7U0FDVixJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUN0RCxPQUFPLENBQUMsU0FBUyxDQUFDO1NBQ2xCLEtBQUssRUFBRTtJQUNWLFlBQVksRUFBRSxhQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3pDLGFBQWEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3RDLHNCQUFzQixFQUFFLGFBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pELFVBQVUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ3BDLENBQ0YsQ0FBQyJ9
@@ -1,49 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const utils_1 = require("@medusajs/framework/utils");
16
- const variant_option_sync_queue_1 = require("./models/variant-option-sync-queue");
17
- class VariantOptionSyncQueueService extends (0, utils_1.MedusaService)({
18
- VariantOptionSyncQueue: variant_option_sync_queue_1.VariantOptionSyncQueue,
19
- }) {
20
- async updateVariantOptionMetadata(updates, sharedContext) {
21
- if (!updates || updates.length === 0) {
22
- return;
23
- }
24
- const manager = sharedContext.manager;
25
- if (!manager) {
26
- throw new Error("Manager not available in shared context");
27
- }
28
- // Use nativeUpdate to update product_option_value metadata
29
- for (const update of updates) {
30
- try {
31
- const metadataJson = JSON.stringify(update.metadata);
32
- await manager.nativeUpdate("product_option_value", { id: update.id }, { metadata: metadataJson });
33
- }
34
- catch (error) {
35
- console.error(`Error updating product_option_value ${update.id}:`, error);
36
- throw error;
37
- }
38
- }
39
- }
40
- }
41
- __decorate([
42
- (0, utils_1.InjectManager)(),
43
- __param(1, (0, utils_1.MedusaContext)()),
44
- __metadata("design:type", Function),
45
- __metadata("design:paramtypes", [Array, Object]),
46
- __metadata("design:returntype", Promise)
47
- ], VariantOptionSyncQueueService.prototype, "updateVariantOptionMetadata", null);
48
- exports.default = VariantOptionSyncQueueService;
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3ZhcmlhbnQtb3B0aW9uLXN5bmMtcXVldWUvc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUltQztBQUduQyxrRkFBNEU7QUFFNUUsTUFBTSw2QkFBOEIsU0FBUSxJQUFBLHFCQUFhLEVBQUM7SUFDeEQsc0JBQXNCLEVBQXRCLGtEQUFzQjtDQUN2QixDQUFDO0lBVU0sQUFBTixLQUFLLENBQUMsMkJBQTJCLENBQy9CLE9BR0UsRUFFRixhQUFrRTtRQUVsRSxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsMkRBQTJEO1FBQzNELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDO2dCQUNILE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNyRCxNQUFNLE9BQU8sQ0FBQyxZQUFZLENBQ3hCLHNCQUFzQixFQUN0QixFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQ2pCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUMzQixDQUFDO1lBQ0osQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMxRSxNQUFNLEtBQUssQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBaENPO0lBREwsSUFBQSxxQkFBYSxHQUFFO0lBTWIsV0FBQSxJQUFBLHFCQUFhLEdBQUUsQ0FBQTs7cUNBSlAsS0FBSzs7Z0ZBOEJmO0FBR0gsa0JBQWUsNkJBQTZCLENBQUMifQ==
@@ -1,30 +0,0 @@
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
- VARIANT_OPTIONS: 60 * 60 * 12, // 12 hours
28
- GOLD_RATE: 60 * 60 * 4, // 4 hours
29
- };
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcmVkaXMta2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL2J1aWxkLXJlZGlzLWtleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBTyxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQWMsRUFBRSxJQUFTLEVBQVUsRUFBRTtJQUNqRSxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQVEsRUFBVSxFQUFFO1FBQ3JDLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUztZQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFELElBQ0UsT0FBTyxHQUFHLEtBQUssUUFBUTtZQUN2QixPQUFPLEdBQUcsS0FBSyxRQUFRO1lBQ3ZCLE9BQU8sR0FBRyxLQUFLLFNBQVM7WUFFeEIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkIsT0FBTyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ2xELENBQUM7UUFDRCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQywrQkFBK0I7WUFDM0UsT0FBTyxDQUNMLEdBQUc7Z0JBQ0gsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUNsRSxHQUFHLENBQ0osQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDM0QsQ0FBQyxDQUFDO0lBRUYsT0FBTyxHQUFHLE1BQU0sSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUN4QyxDQUFDLENBQUM7QUF4QlcsUUFBQSxhQUFhLGlCQXdCeEI7QUFFVyxRQUFBLHNCQUFzQixHQUFHO0lBQ3BDLGVBQWUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXO0lBQzFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxVQUFVO0NBQ25DLENBQUMifQ==
@@ -1,105 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateVariantOptionMetadata = updateVariantOptionMetadata;
4
- const utils_1 = require("@medusajs/framework/utils");
5
- const variant_option_sync_queue_1 = require("../../modules/variant-option-sync-queue");
6
- /**
7
- * Updates product_option_value metadata with raw values
8
- *
9
- * This function:
10
- * 1. Queries product variants to get their option values (product_option_value IDs)
11
- * 2. Matches the raw values with the option values using variantId + optionTitle + optionValue
12
- * 3. Updates the product_option_value.metadata column with the raw_value
13
- *
14
- * @param container - Medusa container
15
- * @param rawValueMappings - Array of variant option raw value mappings
16
- *
17
- * @example
18
- * // Assume you want to attach a raw_value "R" to the "Color" option value "Rose"
19
- * // for variant "variant_123", and "W" for "Color":"White" for "variant_456":
20
- * const rawValueMappings = [
21
- * {
22
- * variantId: "variant_123",
23
- * optionTitle: "Metal Color",
24
- * optionValue: "Rose",
25
- * rawValue: "R"
26
- * },
27
- * {
28
- * variantId: "variant_456",
29
- * optionTitle: "Metal Color",
30
- * optionValue: "White",
31
- * rawValue: "W"
32
- * }
33
- * ];
34
- * await updateVariantOptionMetadata(container, rawValueMappings);
35
- */
36
- async function updateVariantOptionMetadata(container, rawValueMappings) {
37
- if (!rawValueMappings || rawValueMappings.length === 0) {
38
- return;
39
- }
40
- const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
41
- const service = container.resolve(variant_option_sync_queue_1.VARIANT_OPTION_SYNC_QUEUE_MODULE);
42
- try {
43
- // Step 1: Get unique variant IDs
44
- const variantIds = [...new Set(rawValueMappings.map((m) => m.variantId))];
45
- // Step 2: Query variants with their options to get product_option_value IDs
46
- const { data: productVariants } = await query.graph({
47
- entity: "product_variant",
48
- fields: [
49
- "id",
50
- "options.id", // This is the product_option_value.id
51
- "options.value",
52
- "options.option.title",
53
- "options.metadata",
54
- ],
55
- filters: {
56
- id: variantIds,
57
- },
58
- });
59
- // Step 3: Build lookup map: variantId:optionTitle:optionValue -> rawValue
60
- // Example:
61
- // { variantId: "variant_123", optionTitle: "Metal Color", optionValue: "Rose", rawValue: "R" }
62
- // the key will be "variant_123:Metal Color:Rose" and value will be "R"
63
- const rawValueMap = new Map();
64
- for (const mapping of rawValueMappings) {
65
- const key = `${mapping.variantId}:${mapping.optionTitle}:${mapping.optionValue}`;
66
- rawValueMap.set(key, mapping.rawValue);
67
- }
68
- // Step 4: Match queried options with raw values and prepare updates
69
- const updates = [];
70
- for (const variant of productVariants || []) {
71
- if (!variant.options)
72
- continue;
73
- for (const option of variant.options) {
74
- const optionTitle = option.option?.title; // example: "Metal Color"
75
- const optionValue = option.value; // example: "Rose"
76
- const optionId = option.id; // This is product_option_value.id
77
- if (!optionTitle || !optionValue || !optionId)
78
- continue;
79
- // Match using variantId:optionTitle:optionValue
80
- const key = `${variant.id}:${optionTitle}:${optionValue}`;
81
- const rawValue = rawValueMap.get(key);
82
- if (rawValue) {
83
- // Merge with existing metadata and add raw_value example: { raw_value: "R" }
84
- const existingMetadata = option.metadata || {};
85
- updates.push({
86
- id: optionId,
87
- metadata: {
88
- ...existingMetadata,
89
- raw_value: rawValue,
90
- },
91
- });
92
- }
93
- }
94
- }
95
- // Step 5: Execute updates via service
96
- if (updates.length > 0) {
97
- await service.updateVariantOptionMetadata(updates);
98
- }
99
- }
100
- catch (error) {
101
- console.error("Error updating variant option metadata:", error);
102
- // Don't throw - we don't want to break the main flow if metadata update fails
103
- }
104
- }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXZhcmlhbnQtb3B0aW9uLW1ldGFkYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9oZWxwZXJzL3VwZGF0ZS12YXJpYW50LW9wdGlvbi1tZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTRDQSxrRUFvRkM7QUFoSUQscURBQXNFO0FBQ3RFLHVGQUEyRjtBQWEzRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSSxLQUFLLFVBQVUsMkJBQTJCLENBQy9DLFNBQWMsRUFDZCxnQkFBeUM7SUFFekMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsTUFBTSxPQUFPLEdBQWtDLFNBQVMsQ0FBQyxPQUFPLENBQzlELDREQUFnQyxDQUNqQyxDQUFDO0lBRUYsSUFBSSxDQUFDO1FBQ0gsaUNBQWlDO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUUsNEVBQTRFO1FBQzVFLE1BQU0sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ2xELE1BQU0sRUFBRSxpQkFBaUI7WUFDekIsTUFBTSxFQUFFO2dCQUNOLElBQUk7Z0JBQ0osWUFBWSxFQUFFLHNDQUFzQztnQkFDcEQsZUFBZTtnQkFDZixzQkFBc0I7Z0JBQ3RCLGtCQUFrQjthQUNuQjtZQUNELE9BQU8sRUFBRTtnQkFDUCxFQUFFLEVBQUUsVUFBVTthQUNmO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsMEVBQTBFO1FBQzFFLFlBQVk7UUFDWixnR0FBZ0c7UUFDaEcsd0VBQXdFO1FBQ3hFLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQzlDLEtBQUssTUFBTSxPQUFPLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN2QyxNQUFNLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakYsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxvRUFBb0U7UUFDcEUsTUFBTSxPQUFPLEdBR1IsRUFBRSxDQUFDO1FBRVIsS0FBSyxNQUFNLE9BQU8sSUFBSSxlQUFlLElBQUksRUFBRSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO2dCQUFFLFNBQVM7WUFFL0IsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMseUJBQXlCO2dCQUNuRSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsa0JBQWtCO2dCQUNwRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsa0NBQWtDO2dCQUU5RCxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsUUFBUTtvQkFBRSxTQUFTO2dCQUV4RCxnREFBZ0Q7Z0JBQ2hELE1BQU0sR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxXQUFXLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQzFELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRXRDLElBQUksUUFBUSxFQUFFLENBQUM7b0JBQ2IsNkVBQTZFO29CQUM3RSxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO29CQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDO3dCQUNYLEVBQUUsRUFBRSxRQUFRO3dCQUNaLFFBQVEsRUFBRTs0QkFDUixHQUFHLGdCQUFnQjs0QkFDbkIsU0FBUyxFQUFFLFFBQVE7eUJBQ3BCO3FCQUNGLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxzQ0FBc0M7UUFDdEMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sT0FBTyxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMseUNBQXlDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEUsOEVBQThFO0lBQ2hGLENBQUM7QUFDSCxDQUFDIn0=
@@ -1,212 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findVariantsAffectedByMasterUpdate = findVariantsAffectedByMasterUpdate;
4
- /**
5
- * Finds variants affected by a master title update
6
- * @param query - Query service instance
7
- * @param masterType - Type of master (RawMst, QualityMst, ToneMst, ItemSizeMst)
8
- * @param masterCode - The master code to search for
9
- * @returns Array of affected variants with their product IDs
10
- */
11
- async function findVariantsAffectedByMasterUpdate(query, masterType, masterCode) {
12
- const affectedVariants = [];
13
- try {
14
- switch (masterType) {
15
- case "RawMst": {
16
- // Find variants where party_style_details have matching raw_code AND is_base === true
17
- const { data: extendedVariants } = await query.graph({
18
- entity: "extended_variant",
19
- fields: [
20
- "id",
21
- "mapping_id",
22
- "style_id",
23
- "party_style_details.raw_code",
24
- "party_style_details.is_base",
25
- "party_style_details.raw_type",
26
- ],
27
- });
28
- if (extendedVariants) {
29
- for (const ev of extendedVariants) {
30
- if (ev.party_style_details) {
31
- const hasMatchingBaseMetal = ev.party_style_details.some((detail) => detail.raw_code === masterCode &&
32
- detail.is_base === true &&
33
- detail.raw_type === "Metal");
34
- if (hasMatchingBaseMetal && ev.mapping_id) {
35
- // Get product_id from variant
36
- const { data: variant } = await query.graph({
37
- entity: "product_variant",
38
- fields: ["id", "product_id"],
39
- filters: {
40
- id: ev.mapping_id,
41
- // product: { status: ProductUtils.ProductStatus.PUBLISHED },
42
- },
43
- });
44
- if (variant?.[0]?.product_id) {
45
- affectedVariants.push({
46
- variantId: ev.mapping_id,
47
- productId: variant[0].product_id,
48
- extendedVariantId: ev.id,
49
- });
50
- }
51
- }
52
- }
53
- }
54
- }
55
- break;
56
- }
57
- case "QualityMst": {
58
- // Find variants where party_style_details have matching qly_code
59
- const { data: extendedVariants } = await query.graph({
60
- entity: "extended_variant",
61
- fields: [
62
- "id",
63
- "mapping_id",
64
- "style_id",
65
- "party_style_details.qly_code",
66
- ],
67
- });
68
- if (extendedVariants) {
69
- for (const ev of extendedVariants) {
70
- if (ev.party_style_details) {
71
- const hasMatchingQuality = ev.party_style_details.some((detail) => detail.qly_code === masterCode);
72
- if (hasMatchingQuality && ev.mapping_id) {
73
- const { data: variant } = await query.graph({
74
- entity: "product_variant",
75
- fields: ["id", "product_id"],
76
- filters: {
77
- id: ev.mapping_id,
78
- // product: { status: ProductUtils.ProductStatus.PUBLISHED },
79
- },
80
- });
81
- if (variant?.[0]?.product_id) {
82
- affectedVariants.push({
83
- variantId: ev.mapping_id,
84
- productId: variant[0].product_id,
85
- extendedVariantId: ev.id,
86
- });
87
- }
88
- }
89
- }
90
- }
91
- }
92
- break;
93
- }
94
- case "ToneMst": {
95
- // Find variants where party_style_details have matching tone_code
96
- const { data: extendedVariants } = await query.graph({
97
- entity: "extended_variant",
98
- fields: [
99
- "id",
100
- "mapping_id",
101
- "style_id",
102
- "party_style_details.tone_code",
103
- ],
104
- });
105
- if (extendedVariants) {
106
- for (const ev of extendedVariants) {
107
- if (ev.party_style_details) {
108
- const hasMatchingTone = ev.party_style_details.some((detail) => detail.tone_code === masterCode);
109
- if (hasMatchingTone && ev.mapping_id) {
110
- const { data: variant } = await query.graph({
111
- entity: "product_variant",
112
- fields: ["id", "product_id"],
113
- filters: {
114
- id: ev.mapping_id,
115
- // product: { status: ProductUtils.ProductStatus.PUBLISHED },
116
- },
117
- });
118
- if (variant?.[0]?.product_id) {
119
- affectedVariants.push({
120
- variantId: ev.mapping_id,
121
- productId: variant[0].product_id,
122
- extendedVariantId: ev.id,
123
- });
124
- }
125
- }
126
- }
127
- }
128
- }
129
- break;
130
- }
131
- case "ItemSizeMst": {
132
- // Find variants where extended_variant.item_size matches masterCode
133
- const { data: extendedVariants } = await query.graph({
134
- entity: "extended_variant",
135
- fields: ["id", "mapping_id", "style_id", "item_size"],
136
- filters: {
137
- item_size: masterCode,
138
- },
139
- });
140
- if (extendedVariants) {
141
- for (const ev of extendedVariants) {
142
- if (ev.mapping_id) {
143
- const { data: variant } = await query.graph({
144
- entity: "product_variant",
145
- fields: ["id", "product_id"],
146
- filters: {
147
- id: ev.mapping_id,
148
- // product: { status: ProductUtils.ProductStatus.PUBLISHED },
149
- },
150
- });
151
- if (variant?.[0]?.product_id) {
152
- affectedVariants.push({
153
- variantId: ev.mapping_id,
154
- productId: variant[0].product_id,
155
- extendedVariantId: ev.id,
156
- });
157
- }
158
- }
159
- }
160
- }
161
- break;
162
- }
163
- case "ShapeMst": {
164
- // Find variants where party_style_details have matching shape_code on base Diamond
165
- const { data: extendedVariants } = await query.graph({
166
- entity: "extended_variant",
167
- fields: [
168
- "id",
169
- "mapping_id",
170
- "style_id",
171
- "party_style_details.shape_code",
172
- "party_style_details.raw_type",
173
- "party_style_details.is_base",
174
- ],
175
- });
176
- if (extendedVariants) {
177
- for (const ev of extendedVariants) {
178
- if (ev.party_style_details) {
179
- const hasMatchingShape = ev.party_style_details.some((detail) => detail.shape_code === masterCode &&
180
- detail.is_base === true &&
181
- detail.raw_type === "Diamond");
182
- if (hasMatchingShape && ev.mapping_id) {
183
- const { data: variant } = await query.graph({
184
- entity: "product_variant",
185
- fields: ["id", "product_id"],
186
- filters: {
187
- id: ev.mapping_id,
188
- // product: { status: ProductUtils.ProductStatus.PUBLISHED },
189
- },
190
- });
191
- if (variant?.[0]?.product_id) {
192
- affectedVariants.push({
193
- variantId: ev.mapping_id,
194
- productId: variant[0].product_id,
195
- extendedVariantId: ev.id,
196
- });
197
- }
198
- }
199
- }
200
- }
201
- }
202
- break;
203
- }
204
- }
205
- }
206
- catch (error) {
207
- console.error(`Error finding affected variants for ${masterType} with code ${masterCode}:`, error);
208
- throw error;
209
- }
210
- return affectedVariants;
211
- }
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2hlbHBlcnMvdmFyaWFudC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFlQSxnRkE0T0M7QUFuUEQ7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLGtDQUFrQyxDQUN0RCxLQUFVLEVBQ1YsVUFBNEUsRUFDNUUsVUFBa0I7SUFFbEIsTUFBTSxnQkFBZ0IsR0FBc0IsRUFBRSxDQUFDO0lBRS9DLElBQUksQ0FBQztRQUNILFFBQVEsVUFBVSxFQUFFLENBQUM7WUFDbkIsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNkLHNGQUFzRjtnQkFDdEYsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztvQkFDbkQsTUFBTSxFQUFFLGtCQUFrQjtvQkFDMUIsTUFBTSxFQUFFO3dCQUNOLElBQUk7d0JBQ0osWUFBWTt3QkFDWixVQUFVO3dCQUNWLDhCQUE4Qjt3QkFDOUIsNkJBQTZCO3dCQUM3Qiw4QkFBOEI7cUJBQy9CO2lCQUNGLENBQUMsQ0FBQztnQkFFSCxJQUFJLGdCQUFnQixFQUFFLENBQUM7b0JBQ3JCLEtBQUssTUFBTSxFQUFFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQzt3QkFDbEMsSUFBSSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzs0QkFDM0IsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUN0RCxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQ2QsTUFBTSxDQUFDLFFBQVEsS0FBSyxVQUFVO2dDQUM5QixNQUFNLENBQUMsT0FBTyxLQUFLLElBQUk7Z0NBQ3ZCLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUM5QixDQUFDOzRCQUVGLElBQUksb0JBQW9CLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFD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