@devx-commerce/plugin-gati 0.0.2 → 0.0.3

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 (148) hide show
  1. package/.medusa/server/src/api/erp/webhook/route.js +99 -14
  2. package/.medusa/server/src/links/extended-product.js +10 -0
  3. package/.medusa/server/src/links/extended-variant.js +10 -0
  4. package/.medusa/server/src/modules/category-group-master/index.js +13 -0
  5. package/.medusa/server/src/modules/category-group-master/migrations/Migration20250531004725.js +15 -0
  6. package/.medusa/server/src/modules/category-group-master/models/category-group-master.js +12 -0
  7. package/.medusa/server/src/modules/category-group-master/service.js +10 -0
  8. package/.medusa/server/src/modules/category-master/index.js +13 -0
  9. package/.medusa/server/src/modules/category-master/migrations/Migration20250513122212.js +15 -0
  10. package/.medusa/server/src/modules/category-master/migrations/Migration20250519180539.js +14 -0
  11. package/.medusa/server/src/modules/category-master/migrations/Migration20250531004724.js +14 -0
  12. package/.medusa/server/src/modules/category-master/models/category-master.js +15 -0
  13. package/.medusa/server/src/modules/category-master/service.js +10 -0
  14. package/.medusa/server/src/modules/collection-group-master/index.js +13 -0
  15. package/.medusa/server/src/modules/collection-group-master/migrations/Migration20250531022203.js +15 -0
  16. package/.medusa/server/src/modules/collection-group-master/models/collection-group-master.js +12 -0
  17. package/.medusa/server/src/modules/collection-group-master/service.js +10 -0
  18. package/.medusa/server/src/modules/collection-master/index.js +13 -0
  19. package/.medusa/server/src/modules/collection-master/migrations/Migration20250513122211.js +16 -0
  20. package/.medusa/server/src/modules/collection-master/migrations/Migration20250531025048.js +14 -0
  21. package/.medusa/server/src/modules/collection-master/models/collection-master.js +15 -0
  22. package/.medusa/server/src/modules/collection-master/service.js +10 -0
  23. package/.medusa/server/src/modules/erp/migrations/Migration20250513121436.js +16 -0
  24. package/.medusa/server/src/modules/erp/models/erp.js +10 -0
  25. package/.medusa/server/src/modules/erp/service.js +1 -1
  26. package/.medusa/server/src/modules/erp-event/index.js +13 -0
  27. package/.medusa/server/src/modules/erp-event/migrations/Migration20250608221239.js +15 -0
  28. package/.medusa/server/src/modules/erp-event/models/erp-event.js +11 -0
  29. package/.medusa/server/src/modules/erp-event/service.js +10 -0
  30. package/.medusa/server/src/modules/extended-product/index.js +13 -0
  31. package/.medusa/server/src/modules/extended-product/migrations/Migration20250519043358.js +27 -0
  32. package/.medusa/server/src/modules/extended-product/migrations/Migration20250601030519.js +23 -0
  33. package/.medusa/server/src/modules/extended-product/models/extended-product.js +173 -0
  34. package/.medusa/server/src/modules/extended-product/service.js +13 -0
  35. package/.medusa/server/src/modules/extended-variant/index.js +13 -0
  36. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250507055941.js +27 -0
  37. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250508025507.js +14 -0
  38. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250601045242.js +18 -0
  39. package/.medusa/server/src/modules/extended-variant/models/extended-variant.js +162 -0
  40. package/.medusa/server/src/modules/extended-variant/service.js +12 -0
  41. package/.medusa/server/src/modules/party-master/index.js +13 -0
  42. package/.medusa/server/src/modules/party-master/migrations/Migration20250604104235.js +16 -0
  43. package/.medusa/server/src/modules/party-master/migrations/Migration20250604115453.js +16 -0
  44. package/.medusa/server/src/modules/party-master/migrations/Migration20250604120348.js +16 -0
  45. package/.medusa/server/src/modules/party-master/migrations/Migration20250604120701.js +14 -0
  46. package/.medusa/server/src/modules/party-master/migrations/Migration20250608220924.js +16 -0
  47. package/.medusa/server/src/modules/party-master/migrations/Migration20250612225738.js +20 -0
  48. package/.medusa/server/src/modules/party-master/migrations/Migration20250612231031.js +16 -0
  49. package/.medusa/server/src/modules/party-master/models/party-master.js +60 -0
  50. package/.medusa/server/src/modules/party-master/service.js +10 -0
  51. package/.medusa/server/src/modules/raw-master/index.js +13 -0
  52. package/.medusa/server/src/modules/raw-master/migrations/Migration20250509190057.js +16 -0
  53. package/.medusa/server/src/modules/raw-master/migrations/Migration20250509190322.js +14 -0
  54. package/.medusa/server/src/modules/raw-master/models/raw-master.js +17 -0
  55. package/.medusa/server/src/modules/raw-master/service.js +10 -0
  56. package/.medusa/server/src/modules/shape-master/index.js +13 -0
  57. package/.medusa/server/src/modules/shape-master/migrations/Migration20250509174455.js +16 -0
  58. package/.medusa/server/src/modules/shape-master/models/shape-master.js +13 -0
  59. package/.medusa/server/src/modules/shape-master/service.js +10 -0
  60. package/.medusa/server/src/modules/sub-category-master/index.js +13 -0
  61. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250513115356.js +15 -0
  62. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250519180538.js +14 -0
  63. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250531010409.js +14 -0
  64. package/.medusa/server/src/modules/sub-category-master/models/sub-category-master.js +15 -0
  65. package/.medusa/server/src/modules/sub-category-master/service.js +10 -0
  66. package/.medusa/server/src/subscribers/category-group-master.js +117 -0
  67. package/.medusa/server/src/subscribers/category-master.js +130 -0
  68. package/.medusa/server/src/subscribers/collection-master.js +115 -0
  69. package/.medusa/server/src/subscribers/party-master-location.js +128 -0
  70. package/.medusa/server/src/subscribers/party-master.js +226 -0
  71. package/.medusa/server/src/subscribers/sub-category-master.js +130 -0
  72. package/.medusa/server/src/utils/address-formatter.js +60 -0
  73. package/.medusa/server/src/utils/phone-mapper.js +28 -0
  74. package/.medusa/server/src/workflows/category-group-master/index.js +58 -0
  75. package/.medusa/server/src/workflows/category-group-master/steps/create-category-group.js +18 -0
  76. package/.medusa/server/src/workflows/category-group-master/steps/delete-category-group.js +23 -0
  77. package/.medusa/server/src/workflows/category-group-master/steps/fetch-category-master.js +70 -0
  78. package/.medusa/server/src/workflows/category-group-master/steps/update-category-group.js +26 -0
  79. package/.medusa/server/src/workflows/category-master/index.js +58 -0
  80. package/.medusa/server/src/workflows/category-master/steps/create-category.js +21 -0
  81. package/.medusa/server/src/workflows/category-master/steps/delete-category.js +23 -0
  82. package/.medusa/server/src/workflows/category-master/steps/fetch-category-master.js +70 -0
  83. package/.medusa/server/src/workflows/category-master/steps/update-category.js +29 -0
  84. package/.medusa/server/src/workflows/collection-group-master/index.js +37 -0
  85. package/.medusa/server/src/workflows/collection-group-master/steps/create-category.js +50 -0
  86. package/.medusa/server/src/workflows/collection-group-master/steps/create-collection-group.js +18 -0
  87. package/.medusa/server/src/workflows/collection-group-master/steps/delete-collection-group.js +23 -0
  88. package/.medusa/server/src/workflows/collection-group-master/steps/fetch-collection-grp-master.js +70 -0
  89. package/.medusa/server/src/workflows/collection-group-master/steps/update-collection-group.js +26 -0
  90. package/.medusa/server/src/workflows/collection-master/index.js +68 -0
  91. package/.medusa/server/src/workflows/collection-master/steps/create-category.js +60 -0
  92. package/.medusa/server/src/workflows/collection-master/steps/create-collection.js +22 -0
  93. package/.medusa/server/src/workflows/collection-master/steps/delete-collection.js +22 -0
  94. package/.medusa/server/src/workflows/collection-master/steps/fetch-collection-master.js +70 -0
  95. package/.medusa/server/src/workflows/collection-master/steps/update-collection.js +32 -0
  96. package/.medusa/server/src/workflows/create-extended-product-from-product/index.js +86 -0
  97. package/.medusa/server/src/workflows/create-extended-product-from-product/steps/create-extended-product.js +18 -0
  98. package/.medusa/server/src/workflows/create-extended-product-from-product/steps/create-style-collection-lines.js +25 -0
  99. package/.medusa/server/src/workflows/create-extended-product-from-product/steps/create-style-detail-lines.js +25 -0
  100. package/.medusa/server/src/workflows/create-extended-product-from-product/steps/create-style-exploration-lines.js +26 -0
  101. package/.medusa/server/src/workflows/create-extended-variant-from-variant/index.js +74 -0
  102. package/.medusa/server/src/workflows/create-extended-variant-from-variant/steps/create-extended-variant.js +18 -0
  103. package/.medusa/server/src/workflows/create-extended-variant-from-variant/steps/create-style-detail-lines.js +25 -0
  104. package/.medusa/server/src/workflows/create-or-update-party-style-master/index.js +191 -0
  105. package/.medusa/server/src/workflows/create-or-update-party-style-master/steps/fetch-party-styles.js +70 -0
  106. package/.medusa/server/src/workflows/create-or-update-product-options/index.js +25 -0
  107. package/.medusa/server/src/workflows/create-or-update-product-options/steps/create-update-product-options.js +28 -0
  108. package/.medusa/server/src/workflows/create-or-update-style-master/index.js +203 -105
  109. package/.medusa/server/src/workflows/create-or-update-style-master/steps/fetch-styles.js +70 -0
  110. package/.medusa/server/src/workflows/erp-event/index.js +10 -0
  111. package/.medusa/server/src/workflows/erp-event/steps/create-erp-event.js +18 -0
  112. package/.medusa/server/src/workflows/helpers/product-helper.js +585 -8
  113. package/.medusa/server/src/workflows/hooks/product-created.js +16 -0
  114. package/.medusa/server/src/workflows/hooks/product-updated.js +16 -0
  115. package/.medusa/server/src/workflows/hooks/variant-created.js +16 -0
  116. package/.medusa/server/src/workflows/index.js +18 -0
  117. package/.medusa/server/src/workflows/party-master/helpers/index.js +9 -0
  118. package/.medusa/server/src/workflows/party-master/index.js +139 -0
  119. package/.medusa/server/src/workflows/party-master/steps/create-party.js +71 -0
  120. package/.medusa/server/src/workflows/party-master/steps/delete-party.js +23 -0
  121. package/.medusa/server/src/workflows/party-master/steps/fetch-party-master.js +70 -0
  122. package/.medusa/server/src/workflows/party-master/steps/update-party-master-with-field.js +15 -0
  123. package/.medusa/server/src/workflows/party-master/steps/update-party.js +79 -0
  124. package/.medusa/server/src/workflows/party-master/workflows/update-party-master-with-field.js +11 -0
  125. package/.medusa/server/src/workflows/raw-master/index.js +30 -0
  126. package/.medusa/server/src/workflows/raw-master/steps/create-raw.js +25 -0
  127. package/.medusa/server/src/workflows/raw-master/steps/delete-raw.js +23 -0
  128. package/.medusa/server/src/workflows/raw-master/steps/fetch-raw-master.js +70 -0
  129. package/.medusa/server/src/workflows/raw-master/steps/update-raw.js +34 -0
  130. package/.medusa/server/src/workflows/shape-master/index.js +30 -0
  131. package/.medusa/server/src/workflows/shape-master/steps/create-shape.js +20 -0
  132. package/.medusa/server/src/workflows/shape-master/steps/delete-shape.js +23 -0
  133. package/.medusa/server/src/workflows/shape-master/steps/fetch-shape-master.js +70 -0
  134. package/.medusa/server/src/workflows/shape-master/steps/update-shape.js +30 -0
  135. package/.medusa/server/src/workflows/sub-category-master/index.js +58 -0
  136. package/.medusa/server/src/workflows/sub-category-master/steps/create-sub-category.js +21 -0
  137. package/.medusa/server/src/workflows/sub-category-master/steps/delete-sub-category.js +23 -0
  138. package/.medusa/server/src/workflows/sub-category-master/steps/fetch-category-master.js +70 -0
  139. package/.medusa/server/src/workflows/sub-category-master/steps/update-sub-category.js +31 -0
  140. package/.medusa/server/src/workflows/types/index.js +9 -1
  141. package/.medusa/server/src/workflows/update-extended-product-from-product/index.js +48 -0
  142. package/.medusa/server/src/workflows/update-extended-product-from-product/steps/update-extended-product-from-product.js +56 -0
  143. package/.medusa/server/src/workflows/update-extended-product-from-product/steps/update-extended-product-with-field.js +15 -0
  144. package/.medusa/server/src/workflows/update-extended-variant-from-variant/index.js +43 -0
  145. package/.medusa/server/src/workflows/update-extended-variant-from-variant/steps/update-extended-product-from-product.js +54 -0
  146. package/.medusa/server/src/workflows/update-extended-variant-from-variant/steps/update-extended-variant-with-field.js +15 -0
  147. package/package.json +6 -2
  148. package/.medusa/server/src/workflows/create-or-update-style-master/steps/index.js +0 -18
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = subCategoryMasterHandler;
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
7
+ const sub_category_master_1 = require("../modules/sub-category-master");
8
+ const product_helper_1 = require("../workflows/helpers/product-helper");
9
+ /**
10
+ * Handles sub category master events by syncing them with Medusa sub categories
11
+ */
12
+ async function subCategoryMasterHandler({ event: { data: eventData }, container, }) {
13
+ try {
14
+ const { operation, data } = eventData;
15
+ for (const item of data) {
16
+ switch (operation) {
17
+ case "create":
18
+ await handleCreate(container, item);
19
+ break;
20
+ case "update":
21
+ await handleUpdate(container, item);
22
+ break;
23
+ case "delete":
24
+ await handleDelete(container, item);
25
+ break;
26
+ default:
27
+ throw new Error(`Unsupported operation: ${operation}`);
28
+ }
29
+ }
30
+ }
31
+ catch (error) {
32
+ console.error("Error in category master handler:", error);
33
+ throw error;
34
+ }
35
+ }
36
+ /**
37
+ * Creates a new collection in Medusa and updates the collection master mapping
38
+ */
39
+ async function handleCreate(container, data) {
40
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
41
+ const { data: [category_master], } = await query.graph({
42
+ entity: "category_master",
43
+ fields: ["id", "mapping_id"],
44
+ filters: { category_code: data.category_code },
45
+ });
46
+ // TODO: remove math.random from handle
47
+ const { result } = await (0, core_flows_1.createProductCategoriesWorkflow)(container).run({
48
+ input: {
49
+ product_categories: [
50
+ {
51
+ name: data.sub_category_name,
52
+ handle: (0, product_helper_1.toKebabCase)([
53
+ data.sub_category_name,
54
+ data.sub_category_code,
55
+ Math.random().toString(36).substring(2, 15),
56
+ ]),
57
+ is_active: false,
58
+ is_internal: false,
59
+ parent_category_id: category_master.mapping_id,
60
+ metadata: {
61
+ external_id: data.id,
62
+ },
63
+ },
64
+ ],
65
+ additional_data: {
66
+ [data.id]: {
67
+ thumbnail: "",
68
+ images: [],
69
+ is_featured: false,
70
+ is_custom: false,
71
+ },
72
+ },
73
+ },
74
+ });
75
+ const subCategoryMasterService = container.resolve(sub_category_master_1.SUB_CATEGORY_MASTER_MODULE);
76
+ await subCategoryMasterService.updateSubCategoryMasters([
77
+ {
78
+ id: data.id,
79
+ mapping_id: result[0].id,
80
+ },
81
+ ]);
82
+ }
83
+ /**
84
+ * Updates an existing category in Medusa if it has a mapping
85
+ */
86
+ async function handleUpdate(container, data) {
87
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
88
+ const { data: [sub_category_master], } = await query.graph({
89
+ entity: "sub_category_master",
90
+ fields: ["id", "mapping_id"],
91
+ filters: { id: data.id },
92
+ });
93
+ const { data: [category_master], } = await query.graph({
94
+ entity: "category_master",
95
+ fields: ["id", "mapping_id"],
96
+ filters: { grp_no: sub_category_master.grp_no },
97
+ });
98
+ if (!sub_category_master?.mapping_id) {
99
+ return;
100
+ }
101
+ await (0, core_flows_1.updateProductCategoriesWorkflow)(container).run({
102
+ input: {
103
+ selector: {
104
+ id: sub_category_master.mapping_id,
105
+ },
106
+ update: {
107
+ name: data.sub_category_name,
108
+ parent_category_id: category_master.mapping_id,
109
+ metadata: {
110
+ external_id: data.id,
111
+ },
112
+ },
113
+ },
114
+ });
115
+ }
116
+ /**
117
+ * Deletes a collection in Medusa if it has a mapping
118
+ */
119
+ async function handleDelete(container, data) {
120
+ if (!data?.mapping_id) {
121
+ return;
122
+ }
123
+ await (0, core_flows_1.deleteProductCategoriesWorkflow)(container).run({
124
+ input: [data.mapping_id],
125
+ });
126
+ }
127
+ exports.config = {
128
+ event: "sub_category_master",
129
+ };
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWNhdGVnb3J5LW1hc3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9zdWItY2F0ZWdvcnktbWFzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQThCQSwyQ0F5QkM7QUF0REQscURBQXNFO0FBQ3RFLDREQUlxQztBQUVyQyx3RUFBNEU7QUFFNUUsd0VBQWtFO0FBaUJsRTs7R0FFRztBQUNZLEtBQUssVUFBVSx3QkFBd0IsQ0FBQyxFQUNyRCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQzFCLFNBQVMsR0FDOEI7SUFDdkMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxTQUFTLENBQUM7UUFDdEMsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN4QixRQUFRLFNBQVMsRUFBRSxDQUFDO2dCQUNsQixLQUFLLFFBQVE7b0JBQ1gsTUFBTSxZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUNwQyxNQUFNO2dCQUNSLEtBQUssUUFBUTtvQkFDWCxNQUFNLFlBQVksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3BDLE1BQU07Z0JBQ1IsS0FBSyxRQUFRO29CQUNYLE1BQU0sWUFBWSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDcEMsTUFBTTtnQkFDUjtvQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQzNELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFELE1BQU0sS0FBSyxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUss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
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findMatchingAddress = exports.compareAddresses = exports.formatAddress = void 0;
4
+ const lodash_1 = require("lodash");
5
+ /**
6
+ * Formats address fields by handling commas and cleaning up the text
7
+ * @param address - The address object containing address fields
8
+ * @returns Formatted address object
9
+ */
10
+ const formatAddress = (address) => {
11
+ const formattedAddress = { ...address };
12
+ // Helper function to clean address field
13
+ const cleanAddressField = (field) => {
14
+ if (!field)
15
+ return "";
16
+ return field.trim().replace(/,\s*$/, ""); // Remove trailing comma and spaces
17
+ };
18
+ // Clean and format address_1
19
+ if (formattedAddress.address_1) {
20
+ formattedAddress.address_1 =
21
+ cleanAddressField(formattedAddress.address_1) || "";
22
+ }
23
+ // Combine address_2 and address_3 with proper comma handling
24
+ if (formattedAddress.address_2 || formattedAddress.address_3) {
25
+ const addr2 = cleanAddressField(formattedAddress.address_2);
26
+ const addr3 = cleanAddressField(formattedAddress.address_3);
27
+ if (addr2 && addr3) {
28
+ formattedAddress.address_2 = `${addr2}, ${addr3}`;
29
+ }
30
+ else {
31
+ formattedAddress.address_2 = addr2 || addr3;
32
+ }
33
+ // Remove address_3 as it's now combined with address_2
34
+ delete formattedAddress.address_3;
35
+ }
36
+ return formattedAddress;
37
+ };
38
+ exports.formatAddress = formatAddress;
39
+ const ADDRESS_FIELDS_TO_COMPARE = [
40
+ "first_name",
41
+ "last_name",
42
+ "address_1",
43
+ "company",
44
+ "postal_code",
45
+ "city",
46
+ "country_code",
47
+ "province",
48
+ "phone",
49
+ ];
50
+ const compareAddresses = (address1, address2) => {
51
+ const address1Fields = (0, lodash_1.pick)(address1, ADDRESS_FIELDS_TO_COMPARE);
52
+ const address2Fields = (0, lodash_1.pick)(address2, ADDRESS_FIELDS_TO_COMPARE);
53
+ return (0, lodash_1.isEqual)(address1Fields, address2Fields);
54
+ };
55
+ exports.compareAddresses = compareAddresses;
56
+ const findMatchingAddress = (targetAddress, addresses) => {
57
+ return addresses.find((address) => (0, exports.compareAddresses)(targetAddress, address));
58
+ };
59
+ exports.findMatchingAddress = findMatchingAddress;
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvYWRkcmVzcy1mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbUNBQXVDO0FBRXZDOzs7O0dBSUc7QUFDSSxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BSzdCLEVBQWtCLEVBQUU7SUFDbkIsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFFeEMseUNBQXlDO0lBQ3pDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFnQyxFQUFVLEVBQUU7UUFDckUsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN0QixPQUFPLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO0lBQy9FLENBQUMsQ0FBQztJQUVGLDZCQUE2QjtJQUM3QixJQUFJLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQy9CLGdCQUFnQixDQUFDLFNBQVM7WUFDeEIsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRCw2REFBNkQ7SUFDN0QsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLElBQUksZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDN0QsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUQsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFNUQsSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLENBQUM7WUFDbkIsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLEdBQUcsS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQ3BELENBQUM7YUFBTSxDQUFDO1lBQ04sZ0JBQWdCLENBQUMsU0FBUyxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUM7UUFDOUMsQ0FBQztRQUVELHVEQUF1RDtRQUN2RCxPQUFPLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDLENBQUM7QUFwQ1csUUFBQSxhQUFhLGlCQW9DeEI7QUFFRixNQUFNLHlCQUF5QixHQUFHO0lBQ2hDLFlBQVk7SUFDWixXQUFXO0lBQ1gsV0FBVztJQUNYLFNBQVM7SUFDVCxhQUFhO0lBQ2IsTUFBTTtJQUNOLGNBQWM7SUFDZCxVQUFVO0lBQ1YsT0FBTztDQUNDLENBQUM7QUFFSixNQUFNLGdCQUFnQixHQUFHLENBQzlCLFFBQWtDLEVBQ2xDLFFBQWtDLEVBQ3pCLEVBQUU7SUFDWCxNQUFNLGNBQWMsR0FBRyxJQUFBLGFBQUksRUFBQyxRQUFRLEVBQUUseUJBQXlCLENBQUMsQ0FBQztJQUNqRSxNQUFNLGNBQWMsR0FBRyxJQUFBLGFBQUksRUFBQyxRQUFRLEVBQUUseUJBQXlCLENBQUMsQ0FBQztJQUVqRSxPQUFPLElBQUEsZ0JBQU8sRUFBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDakQsQ0FBQyxDQUFDO0FBUlcsUUFBQSxnQkFBZ0Isb0JBUTNCO0FBRUssTUFBTSxtQkFBbUIsR0FBRyxDQUNqQyxhQUF1QyxFQUN2QyxTQUE0QixFQUNDLEVBQUU7SUFDL0IsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFBLHdCQUFnQixFQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUxXLFFBQUEsbUJBQW1CLHVCQUs5QiJ9
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatIndianPhoneNumber = void 0;
4
+ /**
5
+ * Adds +91 prefix to phone number if not present
6
+ * @param phoneNumber - The phone number to format
7
+ * @returns Formatted phone number with +91 prefix
8
+ */
9
+ const formatIndianPhoneNumber = (phoneNumber) => {
10
+ // Remove any existing spaces or special characters
11
+ const cleanedNumber = phoneNumber.replace(/[\s\-\(\)]/g, "");
12
+ // If number already has +91, return as is
13
+ if (cleanedNumber.startsWith("+91")) {
14
+ return cleanedNumber;
15
+ }
16
+ // If number starts with 91 and is 12 digits (91 + 10 digits), add + prefix
17
+ if (cleanedNumber.startsWith("91") && cleanedNumber.length === 12) {
18
+ return `+${cleanedNumber}`;
19
+ }
20
+ // If number is 10 digits, add +91 prefix
21
+ if (/^\d{10}$/.test(cleanedNumber)) {
22
+ return `+91${cleanedNumber}`;
23
+ }
24
+ // If number doesn't match any pattern, return original
25
+ return phoneNumber;
26
+ };
27
+ exports.formatIndianPhoneNumber = formatIndianPhoneNumber;
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Bob25lLW1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7OztHQUlHO0FBQ0ksTUFBTSx1QkFBdUIsR0FBRyxDQUFDLFdBQW1CLEVBQVUsRUFBRTtJQUNyRSxtREFBbUQ7SUFDbkQsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFN0QsMENBQTBDO0lBQzFDLElBQUksYUFBYSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCwyRUFBMkU7SUFDM0UsSUFBSSxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDbEUsT0FBTyxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDbkMsT0FBTyxNQUFNLGFBQWEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCx1REFBdUQ7SUFDdkQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBckJXLFFBQUEsdUJBQXVCLDJCQXFCbEMifQ==
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.categoryGroupMasterWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const create_category_group_1 = require("./steps/create-category-group");
6
+ const delete_category_group_1 = require("./steps/delete-category-group");
7
+ const fetch_category_master_1 = require("./steps/fetch-category-master");
8
+ const update_category_group_1 = require("./steps/update-category-group");
9
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
10
+ exports.categoryGroupMasterWorkflow = (0, workflows_sdk_1.createWorkflow)("category-group-master", (input) => {
11
+ const categoryData = (0, fetch_category_master_1.fetchCategoryData)(input);
12
+ (0, workflows_sdk_1.when)("create-category-group", input, (input) => {
13
+ return input.operation === "add";
14
+ }).then(() => {
15
+ const category = (0, create_category_group_1.createCategoryGroupStep)(categoryData);
16
+ (0, core_flows_1.emitEventStep)({
17
+ eventName: "category_group_master",
18
+ data: {
19
+ operation: "create",
20
+ data: category,
21
+ },
22
+ }).config({
23
+ name: "create-category-group-event",
24
+ });
25
+ return new workflows_sdk_1.WorkflowResponse(category);
26
+ });
27
+ (0, workflows_sdk_1.when)("update-category-group", input, (input) => {
28
+ return input.operation === "update";
29
+ }).then(() => {
30
+ const category = (0, update_category_group_1.updateCategoryGroupStep)(categoryData);
31
+ (0, core_flows_1.emitEventStep)({
32
+ eventName: "category_group_master",
33
+ data: {
34
+ operation: "update",
35
+ data: category,
36
+ },
37
+ }).config({
38
+ name: "update-category-group-event",
39
+ });
40
+ return new workflows_sdk_1.WorkflowResponse(category);
41
+ });
42
+ (0, workflows_sdk_1.when)("delete-category-group", input, (input) => {
43
+ return input.operation === "delete";
44
+ }).then(() => {
45
+ const category = (0, delete_category_group_1.deleteCategoryGroupStep)(categoryData);
46
+ (0, core_flows_1.emitEventStep)({
47
+ eventName: "category_group_master",
48
+ data: {
49
+ operation: "delete",
50
+ data: category,
51
+ },
52
+ }).config({
53
+ name: "delete-category-group-event",
54
+ });
55
+ return new workflows_sdk_1.WorkflowResponse(category);
56
+ });
57
+ });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NhdGVnb3J5LWdyb3VwLW1hc3Rlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFJMkM7QUFHM0MseUVBQXdFO0FBQ3hFLHlFQUF3RTtBQUN4RSx5RUFBa0U7QUFDbEUseUVBQXdFO0FBQ3hFLDREQUE0RDtBQUUvQyxRQUFBLDJCQUEyQixHQUFHLElBQUEsOEJBQWMsRUFDdkQsdUJBQXVCLEVBQ3ZCLENBQUMsS0FBa0IsRUFBRSxFQUFFO0lBQ3JCLE1BQU0sWUFBWSxHQUFHLElBQUEseUNBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFFOUMsSUFBQSxvQkFBSSxFQUFDLHVCQUF1QixFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQzdDLE9BQU8sS0FBSyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNYLE1BQU0sUUFBUSxHQUFHLElBQUEsK0NBQXVCLEVBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkQsSUFBQSwwQkFBYSxFQUFDO1lBQ1osU0FBUyxFQUFFLHVCQUF1QjtZQUNsQyxJQUFJLEVBQUU7Z0JBQ0osU0FBUyxFQUFFLFFBQVE7Z0JBQ25CLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRixDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ1IsSUFBSSxFQUFFLDZCQUE2QjtTQUNwQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksZ0NBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFBLG9CQUFJLEVBQUMsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDN0MsT0FBTyxLQUFLLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1gsTUFBTSxRQUFRLEdBQUcsSUFBQSwrQ0FBdUIsRUFBQyxZQUFZLENBQUMsQ0FBQztRQUN2RCxJQUFBLDBCQUFhLEVBQUM7WUFDWixTQUFTLEVBQUUsdUJBQXVCO1lBQ2xDLElBQUksRUFBRTtnQkFDSixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDUixJQUFJLEVBQUUsNkJBQTZCO1NBQ3BDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsb0JBQUksRUFBQyx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUM3QyxPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDWCxNQUFNLFFBQVEsR0FBRyxJQUFBLCtDQUF1QixFQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZELElBQUEsMEJBQWEsRUFBQztZQUNaLFNBQVMsRUFBRSx1QkFBdUI7WUFDbEMsSUFBSSxFQUFFO2dCQUNKLFNBQVMsRUFBRSxRQUFRO2dCQUNuQixJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0YsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNSLElBQUksRUFBRSw2QkFBNkI7U0FDcEMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLGdDQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCategoryGroupStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const category_group_master_1 = require("../../../modules/category-group-master");
6
+ exports.createCategoryGroupStep = (0, workflows_sdk_1.createStep)("create-category-group-step", async (input, { container }) => {
7
+ const categoryGroupMasterModuleService = container.resolve(category_group_master_1.CATEGORY_GROUP_MASTER_MODULE);
8
+ const category = await categoryGroupMasterModuleService.createCategoryGroupMasters(input.map((item) => ({
9
+ grp_no: item.GrpGroupNo,
10
+ category_group_code: item.CategoryGroupCode,
11
+ category_group_name: item.CategoryGroupName,
12
+ })));
13
+ return new workflows_sdk_1.StepResponse(category, category.map((item) => item.id));
14
+ }, async (ids, { container }) => {
15
+ const categoryGroupMasterModuleService = container.resolve(category_group_master_1.CATEGORY_GROUP_MASTER_MODULE);
16
+ await categoryGroupMasterModuleService.deleteCategoryGroupMasters(ids);
17
+ });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNhdGVnb3J5LWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jYXRlZ29yeS1ncm91cC1tYXN0ZXIvc3RlcHMvY3JlYXRlLWNhdGVnb3J5LWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUU3RSxrRkFBc0Y7QUFTekUsUUFBQSx1QkFBdUIsR0FBRyxJQUFBLDBCQUFVLEVBQy9DLDRCQUE0QixFQUM1QixLQUFLLEVBQUUsS0FBcUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDN0QsTUFBTSxnQ0FBZ0MsR0FDcEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvREFBNEIsQ0FBQyxDQUFDO0lBRWxELE1BQU0sUUFBUSxHQUNaLE1BQU0sZ0NBQWdDLENBQUMsMEJBQTBCLENBQy9ELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVO1FBQ3ZCLG1CQUFtQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7UUFDM0MsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtLQUM1QyxDQUFDLENBQUMsQ0FDSixDQUFDO0lBRUosT0FBTyxJQUFJLDRCQUFZLENBQ3JCLFFBQVEsRUFDUixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ2hDLENBQUM7QUFDSixDQUFDLEVBQ0QsS0FBSyxFQUFFLEdBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDckMsTUFBTSxnQ0FBZ0MsR0FDcEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvREFBNEIsQ0FBQyxDQUFDO0lBRWxELE1BQU0sZ0NBQWdDLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekUsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteCategoryGroupStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const category_group_master_1 = require("../../../modules/category-group-master");
6
+ exports.deleteCategoryGroupStep = (0, workflows_sdk_1.createStep)("delete-category-group-step", async (input, { container }) => {
7
+ const categoryGroupMasterModuleService = container.resolve(category_group_master_1.CATEGORY_GROUP_MASTER_MODULE);
8
+ const prevCategory = await categoryGroupMasterModuleService.listCategoryGroupMasters({
9
+ filters: {
10
+ id: {
11
+ in: input.map((item) => item.id),
12
+ },
13
+ },
14
+ });
15
+ const category = await categoryGroupMasterModuleService.softDeleteCategoryGroupMasters(input.map((item) => item.id));
16
+ return new workflows_sdk_1.StepResponse(category, prevCategory);
17
+ }, async (prevCategory, { container }) => {
18
+ if (!prevCategory)
19
+ return;
20
+ const categoryGroupMasterModuleService = container.resolve(category_group_master_1.CATEGORY_GROUP_MASTER_MODULE);
21
+ await categoryGroupMasterModuleService.createCategoryGroupMasters(prevCategory);
22
+ });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWNhdGVnb3J5LWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jYXRlZ29yeS1ncm91cC1tYXN0ZXIvc3RlcHMvZGVsZXRlLWNhdGVnb3J5LWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUc3RSxrRkFBc0Y7QUFNekUsUUFBQSx1QkFBdUIsR0FBRyxJQUFBLDBCQUFVLEVBQy9DLDRCQUE0QixFQUM1QixLQUFLLEVBQUUsS0FBcUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDN0QsTUFBTSxnQ0FBZ0MsR0FDcEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvREFBNEIsQ0FBQyxDQUFDO0lBRWxELE1BQU0sWUFBWSxHQUNoQixNQUFNLGdDQUFnQyxDQUFDLHdCQUF3QixDQUFDO1FBQzlELE9BQU8sRUFBRTtZQUNQLEVBQUUsRUFBRTtnQkFDRixFQUFFLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzthQUNqQztTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUwsTUFBTSxRQUFRLEdBQ1osTUFBTSxnQ0FBZ0MsQ0FBQyw4QkFBOEIsQ0FDbkUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUM3QixDQUFDO0lBRUosT0FBTyxJQUFJLDRCQUFZLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQ2xELENBQUMsRUFDRCxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNwQyxJQUFJLENBQUMsWUFBWTtRQUFFLE9BQU87SUFDMUIsTUFBTSxnQ0FBZ0MsR0FDcEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvREFBNEIsQ0FBQyxDQUFDO0lBRWxELE1BQU0sZ0NBQWdDLENBQUMsMEJBQTBCLENBQy9ELFlBQVksQ0FDYixDQUFDO0FBQ0osQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchCategoryData = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const BATCH_SIZE = 50; // Process 50 items at a time
6
+ const MAX_RETRIES = 3;
7
+ const RETRY_DELAY = 1000; // 1 second delay between retries
8
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
9
+ const processBatch = async (erpService, datafor, batch, retryCount = 0) => {
10
+ try {
11
+ const results = await Promise.all(batch.map(async (transactionId) => {
12
+ try {
13
+ return await erpService.getMasterData(datafor, transactionId);
14
+ }
15
+ catch (error) {
16
+ console.error(`Error fetching data for ID ${transactionId}:`, error);
17
+ return null;
18
+ }
19
+ }));
20
+ // Filter out failed requests
21
+ const successfulResults = results.filter((result) => result !== null);
22
+ // If we have failed requests and haven't exceeded max retries, retry them
23
+ if (results.length !== successfulResults.length &&
24
+ retryCount < MAX_RETRIES) {
25
+ const failedIds = batch.filter((_, index) => results[index] === null);
26
+ console.log(`Retrying ${failedIds.length} failed requests (attempt ${retryCount + 1})`);
27
+ await sleep(RETRY_DELAY);
28
+ const retryResults = await processBatch(erpService, datafor, failedIds, retryCount + 1);
29
+ return [...successfulResults, ...retryResults];
30
+ }
31
+ return successfulResults;
32
+ }
33
+ catch (error) {
34
+ console.error("Batch processing error:", error);
35
+ if (retryCount < MAX_RETRIES) {
36
+ console.log(`Retrying entire batch (attempt ${retryCount + 1})`);
37
+ await sleep(RETRY_DELAY);
38
+ return processBatch(erpService, datafor, batch, retryCount + 1);
39
+ }
40
+ throw error;
41
+ }
42
+ };
43
+ /**
44
+ * Step to fetch style data from ERP system
45
+ * This step processes data in batches to avoid timeouts and handle large datasets
46
+ * @param input - Contains datafor type and array of transaction IDs
47
+ * @param container - Dependency injection container to resolve services
48
+ */
49
+ exports.fetchCategoryData = (0, workflows_sdk_1.createStep)("fetch-category-data", async (input, { container }) => {
50
+ const erpService = container.resolve("erp");
51
+ const { datafor, data } = input;
52
+ // Split data into batches
53
+ const batches = [];
54
+ for (let i = 0; i < data.length; i += BATCH_SIZE) {
55
+ batches.push(data.slice(i, i + BATCH_SIZE));
56
+ }
57
+ console.log(`Processing ${data.length} items in ${batches.length} batches`);
58
+ // Process each batch sequentially
59
+ const allResults = [];
60
+ for (let i = 0; i < batches.length; i++) {
61
+ console.log(`Processing batch ${i + 1}/${batches.length}`);
62
+ const batchResults = await processBatch(erpService, datafor, batches[i]);
63
+ allResults.push(...batchResults);
64
+ }
65
+ console.log(`Successfully processed ${allResults.length} items`);
66
+ return new workflows_sdk_1.StepResponse(allResults.flatMap((innerArray) => innerArray));
67
+ }, async (result, { container }) => {
68
+ console.log("Something went wrong in fetch-sub-category-data");
69
+ });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtY2F0ZWdvcnktbWFzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jYXRlZ29yeS1ncm91cC1tYXN0ZXIvc3RlcHMvZmV0Y2gtY2F0ZWdvcnktbWFzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUs3RSxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQyw2QkFBNkI7QUFDcEQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLGlDQUFpQztBQUUzRCxNQUFNLEtBQUssR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUVoRixNQUFNLFlBQVksR0FBRyxLQUFLLEVBQ3hCLFVBQTRCLEVBQzVCLE9BQWUsRUFDZixLQUFlLEVBQ2YsVUFBVSxHQUFHLENBQUMsRUFDRSxFQUFFO0lBQ2xCLElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDL0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDO2dCQUNILE9BQU8sTUFBTSxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztZQUNoRSxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDhCQUE4QixhQUFhLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDckUsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLDZCQUE2QjtRQUM3QixNQUFNLGlCQUFp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
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateCategoryGroupStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const category_group_master_1 = require("../../../modules/category-group-master");
6
+ exports.updateCategoryGroupStep = (0, workflows_sdk_1.createStep)("update-category-group-step", async (input, { container }) => {
7
+ const categoryGroupMasterModuleService = container.resolve(category_group_master_1.CATEGORY_GROUP_MASTER_MODULE);
8
+ const prevCategory = await categoryGroupMasterModuleService.listCategoryGroupMasters({
9
+ grp_no: {
10
+ $in: input.map((item) => item.GrpGroupNo),
11
+ },
12
+ });
13
+ const category = await categoryGroupMasterModuleService.updateCategoryGroupMasters(input.map((item) => ({
14
+ id: prevCategory.find((c) => c.grp_no === item.GrpGroupNo)?.id,
15
+ grp_no: item.GrpGroupNo,
16
+ category_group_code: item.CategoryGroupCode,
17
+ category_group_name: item.CategoryGroupName,
18
+ })));
19
+ return new workflows_sdk_1.StepResponse(category, prevCategory);
20
+ }, async (prevCategory, { container }) => {
21
+ if (!prevCategory)
22
+ return;
23
+ const categoryGroupMasterModuleService = container.resolve(category_group_master_1.CATEGORY_GROUP_MASTER_MODULE);
24
+ await categoryGroupMasterModuleService.createCategoryGroupMasters(prevCategory);
25
+ });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWNhdGVnb3J5LWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jYXRlZ29yeS1ncm91cC1tYXN0ZXIvc3RlcHMvdXBkYXRlLWNhdGVnb3J5LWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUU3RSxrRkFBc0Y7QUFTekUsUUFBQSx1QkFBdUIsR0FBRyxJQUFBLDBCQUFVLEVBQy9DLDRCQUE0QixFQUM1QixLQUFLLEVBQUUsS0FBcUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDN0QsTUFBTSxnQ0FBZ0MsR0FDcEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvREFBNEIsQ0FBQyxDQUFDO0lBRWxELE1BQU0sWUFBWSxHQUNoQixNQUFNLGdDQUFnQyxDQUFDLHdCQUF3QixDQUFDO1FBQzlELE1BQU0sRUFBRTtZQUNOLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQzFDO0tBQ0YsQ0FBQyxDQUFDO0lBRUwsTUFBTSxRQUFRLEdBQ1osTUFBTSxnQ0FBZ0MsQ0FBQywwQkFBMEIsQ0FDL0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQixFQUFFLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRTtRQUM5RCxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7UUFDdkIsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtRQUMzQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCO0tBQzVDLENBQUMsQ0FBQyxDQUNKLENBQUM7SUFFSixPQUFPLElBQUksNEJBQVksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDbEQsQ0FBQyxFQUNELEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3BDLElBQUksQ0FBQyxZQUFZO1FBQUUsT0FBTztJQUMxQixNQUFNLGdDQUFnQyxHQUNwQyxTQUFTLENBQUMsT0FBTyxDQUFDLG9EQUE0QixDQUFDLENBQUM7SUFFbEQsTUFBTSxnQ0FBZ0MsQ0FBQywwQkFBMEIsQ0FDL0QsWUFBWSxDQUNiLENBQUM7QUFDSixDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.categoryMasterWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const create_category_1 = require("./steps/create-category");
6
+ const delete_category_1 = require("./steps/delete-category");
7
+ const fetch_category_master_1 = require("./steps/fetch-category-master");
8
+ const update_category_1 = require("./steps/update-category");
9
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
10
+ exports.categoryMasterWorkflow = (0, workflows_sdk_1.createWorkflow)("category-master", (input) => {
11
+ const categoryData = (0, fetch_category_master_1.fetchCategoryData)(input);
12
+ (0, workflows_sdk_1.when)("create-category", input, (input) => {
13
+ return input.operation === "add";
14
+ }).then(() => {
15
+ const category = (0, create_category_1.createCategoryStep)(categoryData);
16
+ (0, core_flows_1.emitEventStep)({
17
+ eventName: "category_master",
18
+ data: {
19
+ operation: "create",
20
+ data: category,
21
+ },
22
+ }).config({
23
+ name: "create-category-event",
24
+ });
25
+ return new workflows_sdk_1.WorkflowResponse(category);
26
+ });
27
+ (0, workflows_sdk_1.when)("update-category", input, (input) => {
28
+ return input.operation === "update";
29
+ }).then(() => {
30
+ const category = (0, update_category_1.updateCategoryStep)(categoryData);
31
+ (0, core_flows_1.emitEventStep)({
32
+ eventName: "category_master",
33
+ data: {
34
+ operation: "update",
35
+ data: category,
36
+ },
37
+ }).config({
38
+ name: "update-category-event",
39
+ });
40
+ return new workflows_sdk_1.WorkflowResponse(category);
41
+ });
42
+ (0, workflows_sdk_1.when)("delete-category", input, (input) => {
43
+ return input.operation === "delete";
44
+ }).then(() => {
45
+ const category = (0, delete_category_1.deleteCategoryStep)(categoryData);
46
+ (0, core_flows_1.emitEventStep)({
47
+ eventName: "category_master",
48
+ data: {
49
+ operation: "delete",
50
+ data: category,
51
+ },
52
+ }).config({
53
+ name: "delete-category-event",
54
+ });
55
+ return new workflows_sdk_1.WorkflowResponse(category);
56
+ });
57
+ });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NhdGVnb3J5LW1hc3Rlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFJMkM7QUFHM0MsNkRBQTZEO0FBQzdELDZEQUE2RDtBQUM3RCx5RUFBa0U7QUFDbEUsNkRBQTZEO0FBQzdELDREQUE0RDtBQUUvQyxRQUFBLHNCQUFzQixHQUFHLElBQUEsOEJBQWMsRUFDbEQsaUJBQWlCLEVBQ2pCLENBQUMsS0FBa0IsRUFBRSxFQUFFO0lBQ3JCLE1BQU0sWUFBWSxHQUFHLElBQUEseUNBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFFOUMsSUFBQSxvQkFBSSxFQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNYLE1BQU0sUUFBUSxHQUFHLElBQUEsb0NBQWtCLEVBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsSUFBQSwwQkFBYSxFQUFDO1lBQ1osU0FBUyxFQUFFLGlCQUFpQjtZQUM1QixJQUFJLEVBQUU7Z0JBQ0osU0FBUyxFQUFFLFFBQVE7Z0JBQ25CLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRixDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ1IsSUFBSSxFQUFFLHVCQUF1QjtTQUM5QixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksZ0NBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFBLG9CQUFJLEVBQUMsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDdkMsT0FBTyxLQUFLLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1gsTUFBTSxRQUFRLEdBQUcsSUFBQSxvQ0FBa0IsRUFBQyxZQUFZLENBQUMsQ0FBQztRQUNsRCxJQUFBLDBCQUFhLEVBQUM7WUFDWixTQUFTLEVBQUUsaUJBQWlCO1lBQzVCLElBQUksRUFBRTtnQkFDSixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDUixJQUFJLEVBQUUsdUJBQXVCO1NBQzlCLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsb0JBQUksRUFBQyxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUN2QyxPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDWCxNQUFNLFFBQVEsR0FBRyxJQUFBLG9DQUFrQixFQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xELElBQUEsMEJBQWEsRUFBQztZQUNaLFNBQVMsRUFBRSxpQkFBaUI7WUFDNUIsSUFBSSxFQUFFO2dCQUNKLFNBQVMsRUFBRSxRQUFRO2dCQUNuQixJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0YsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNSLElBQUksRUFBRSx1QkFBdUI7U0FDOUIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLGdDQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCategoryStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const category_master_1 = require("../../../modules/category-master");
6
+ exports.createCategoryStep = (0, workflows_sdk_1.createStep)("create-category-step", async (input, { container }) => {
7
+ const categoryMasterModuleService = container.resolve(category_master_1.CATEGORY_MASTER_MODULE);
8
+ const category = await categoryMasterModuleService.createCategoryMasters(input.map((item) => ({
9
+ grp_no: item.GrpNo,
10
+ category_code: item.CategoryCode,
11
+ category_name: item.CategoryName,
12
+ grp_group_no: item.GrpGroupNo,
13
+ category_group_code: item.CategoryGroupCode,
14
+ category_group_name: item.CategoryGroupName,
15
+ })));
16
+ return new workflows_sdk_1.StepResponse(category, category.map((item) => item.id));
17
+ }, async (id, { container }) => {
18
+ const categoryMasterModuleService = container.resolve(category_master_1.CATEGORY_MASTER_MODULE);
19
+ await categoryMasterModuleService.deleteCategoryMasters(id);
20
+ });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNhdGVnb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jYXRlZ29yeS1tYXN0ZXIvc3RlcHMvY3JlYXRlLWNhdGVnb3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUM3RSxzRUFBMEU7QUFZN0QsUUFBQSxrQkFBa0IsR0FBRyxJQUFBLDBCQUFVLEVBQzFDLHNCQUFzQixFQUN0QixLQUFLLEVBQUUsS0FBZ0MsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDeEQsTUFBTSwyQkFBMkIsR0FDL0IsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBc0IsQ0FBQyxDQUFDO0lBRTVDLE1BQU0sUUFBUSxHQUFHLE1BQU0sMkJBQTJCLENBQUMscUJBQXFCLENBQ3RFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLO1FBQ2xCLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWTtRQUNoQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVk7UUFDaEMsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVO1FBQzdCLG1CQUFtQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7UUFDM0MsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtLQUM1QyxDQUFDLENBQUMsQ0FDSixDQUFDO0lBRUYsT0FBTyxJQUFJLDRCQUFZLENBQ3JCLFFBQVEsRUFDUixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ2hDLENBQUM7QUFDSixDQUFDLEVBQ0QsS0FBSyxFQUFFLEVBQVksRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDcEMsTUFBTSwyQkFBMkIsR0FDL0IsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBc0IsQ0FBQyxDQUFDO0lBRTVDLE1BQU0sMkJBQTJCLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDOUQsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteCategoryStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const category_master_1 = require("../../../modules/category-master");
6
+ exports.deleteCategoryStep = (0, workflows_sdk_1.createStep)("delete-category-step", async (input, { container }) => {
7
+ const categoryMasterModuleService = container.resolve(category_master_1.CATEGORY_MASTER_MODULE);
8
+ const prevCategory = await categoryMasterModuleService.listCategoryMasters({
9
+ filters: {
10
+ id: {
11
+ in: input.map((item) => item.id),
12
+ },
13
+ },
14
+ });
15
+ const category = await categoryMasterModuleService.deleteCategoryMasters(input.map((item) => item.id));
16
+ return new workflows_sdk_1.StepResponse(category, prevCategory);
17
+ }, async (prevCategory, { container }) => {
18
+ if (!prevCategory)
19
+ return;
20
+ const categoryMasterModuleService = container.resolve(category_master_1.CATEGORY_MASTER_MODULE);
21
+ await categoryMasterModuleService.createCategoryMasters(prevCategory);
22
+ });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWNhdGVnb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jYXRlZ29yeS1tYXN0ZXIvc3RlcHMvZGVsZXRlLWNhdGVnb3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUU3RSxzRUFBMEU7QUFPN0QsUUFBQSxrQkFBa0IsR0FBRyxJQUFBLDBCQUFVLEVBQzFDLHNCQUFzQixFQUN0QixLQUFLLEVBQUUsS0FBZ0MsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDeEQsTUFBTSwyQkFBMkIsR0FDL0IsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBc0IsQ0FBQyxDQUFDO0lBRTVDLE1BQU0sWUFBWSxHQUFHLE1BQU0sMkJBQTJCLENBQUMsbUJBQW1CLENBQUM7UUFDekUsT0FBTyxFQUFFO1lBQ1AsRUFBRSxFQUFFO2dCQUNGLEVBQUUsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2FBQ2pDO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLDJCQUEyQixDQUFDLHFCQUFxQixDQUN0RSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQzdCLENBQUM7SUFFRixPQUFPLElBQUksNEJBQVksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDbEQsQ0FBQyxFQUNELEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3BDLElBQUksQ0FBQyxZQUFZO1FBQUUsT0FBTztJQUMxQixNQUFNLDJCQUEyQixHQUMvQixTQUFTLENBQUMsT0FBTyxDQUFDLHdDQUFzQixDQUFDLENBQUM7SUFFNUMsTUFBTSwyQkFBMkIsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN4RSxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchCategoryData = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const BATCH_SIZE = 50; // Process 50 items at a time
6
+ const MAX_RETRIES = 3;
7
+ const RETRY_DELAY = 1000; // 1 second delay between retries
8
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
9
+ const processBatch = async (erpService, datafor, batch, retryCount = 0) => {
10
+ try {
11
+ const results = await Promise.all(batch.map(async (transactionId) => {
12
+ try {
13
+ return await erpService.getMasterData(datafor, transactionId);
14
+ }
15
+ catch (error) {
16
+ console.error(`Error fetching data for ID ${transactionId}:`, error);
17
+ return null;
18
+ }
19
+ }));
20
+ // Filter out failed requests
21
+ const successfulResults = results.filter((result) => result !== null);
22
+ // If we have failed requests and haven't exceeded max retries, retry them
23
+ if (results.length !== successfulResults.length &&
24
+ retryCount < MAX_RETRIES) {
25
+ const failedIds = batch.filter((_, index) => results[index] === null);
26
+ console.log(`Retrying ${failedIds.length} failed requests (attempt ${retryCount + 1})`);
27
+ await sleep(RETRY_DELAY);
28
+ const retryResults = await processBatch(erpService, datafor, failedIds, retryCount + 1);
29
+ return [...successfulResults, ...retryResults];
30
+ }
31
+ return successfulResults;
32
+ }
33
+ catch (error) {
34
+ console.error("Batch processing error:", error);
35
+ if (retryCount < MAX_RETRIES) {
36
+ console.log(`Retrying entire batch (attempt ${retryCount + 1})`);
37
+ await sleep(RETRY_DELAY);
38
+ return processBatch(erpService, datafor, batch, retryCount + 1);
39
+ }
40
+ throw error;
41
+ }
42
+ };
43
+ /**
44
+ * Step to fetch style data from ERP system
45
+ * This step processes data in batches to avoid timeouts and handle large datasets
46
+ * @param input - Contains datafor type and array of transaction IDs
47
+ * @param container - Dependency injection container to resolve services
48
+ */
49
+ exports.fetchCategoryData = (0, workflows_sdk_1.createStep)("fetch-category-data", async (input, { container }) => {
50
+ const erpService = container.resolve("erp");
51
+ const { datafor, data } = input;
52
+ // Split data into batches
53
+ const batches = [];
54
+ for (let i = 0; i < data.length; i += BATCH_SIZE) {
55
+ batches.push(data.slice(i, i + BATCH_SIZE));
56
+ }
57
+ console.log(`Processing ${data.length} items in ${batches.length} batches`);
58
+ // Process each batch sequentially
59
+ const allResults = [];
60
+ for (let i = 0; i < batches.length; i++) {
61
+ console.log(`Processing batch ${i + 1}/${batches.length}`);
62
+ const batchResults = await processBatch(erpService, datafor, batches[i]);
63
+ allResults.push(...batchResults);
64
+ }
65
+ console.log(`Successfully processed ${allResults.length} items`);
66
+ return new workflows_sdk_1.StepResponse(allResults.flatMap((innerArray) => innerArray));
67
+ }, async (result, { container }) => {
68
+ console.log("Something went wrong in fetch-sub-category-data");
69
+ });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtY2F0ZWdvcnktbWFzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jYXRlZ29yeS1tYXN0ZXIvc3RlcHMvZmV0Y2gtY2F0ZWdvcnktbWFzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUk3RSxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQyw2QkFBNkI7QUFDcEQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLGlDQUFpQztBQUUzRCxNQUFNLEtBQUssR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUVoRixNQUFNLFlBQVksR0FBRyxLQUFLLEVBQ3hCLFVBQTRCLEVBQzVCLE9BQWUsRUFDZixLQUFlLEVBQ2YsVUFBVSxHQUFHLENBQUMsRUFDRSxFQUFFO0lBQ2xCLElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDL0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDO2dCQUNILE9BQU8sTUFBTSxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztZQUNoRSxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDhCQUE4QixhQUFhLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDckUsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLDZCQUE2QjtRQUM3QixNQUFNLGlCQUFpQixHQUFH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