storemw-core-api 1.0.21 → 1.0.22

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 (60) hide show
  1. package/dist/controllers/injection_field/injectionFieldController.js +48 -27
  2. package/dist/controllers/injection_field/injectionFieldController.js.map +1 -1
  3. package/dist/models/ModelFactory.d.ts +2 -1
  4. package/dist/models/ModelFactory.js +12 -6
  5. package/dist/models/ModelFactory.js.map +1 -1
  6. package/dist/models/account/AccountModel.d.ts +2 -1
  7. package/dist/models/branch/BranchModel.d.ts +2 -1
  8. package/dist/models/branch_user/BranchUserModel.d.ts +2 -1
  9. package/dist/models/business/BusinessModel.d.ts +2 -1
  10. package/dist/models/group/GroupModel.d.ts +2 -1
  11. package/dist/models/group/GroupOwnerModel.d.ts +2 -1
  12. package/dist/models/injection_field/DocumentInjectionFieldModel.d.ts +2 -1
  13. package/dist/models/injection_field/InjectionFieldModel.d.ts +2 -1
  14. package/dist/models/injection_field/ItemInjectionFieldModel.d.ts +2 -1
  15. package/dist/models/injection_field/LogisticInjectionFieldModel.d.ts +2 -1
  16. package/dist/models/injection_field/RepositoryInjectionFieldModel.d.ts +2 -1
  17. package/dist/models/injection_field/UserInjectionFieldModel.d.ts +2 -1
  18. package/dist/models/item/BrandModel.d.ts +2 -1
  19. package/dist/models/item/CategoryModel.d.ts +2 -1
  20. package/dist/models/item/ItemModel.d.ts +2 -1
  21. package/dist/models/item/ProductModel.d.ts +2 -1
  22. package/dist/models/item/UomModel.d.ts +2 -1
  23. package/dist/models/location/LocationModel.d.ts +2 -1
  24. package/dist/models/location/LocationRackModel.d.ts +2 -1
  25. package/dist/models/location/LocationSlotModel.d.ts +2 -1
  26. package/dist/models/region/AreaModel.d.ts +2 -1
  27. package/dist/models/region/CountryModel.d.ts +2 -1
  28. package/dist/models/region/StateModel.d.ts +2 -1
  29. package/dist/models/user/AdministratorModel.d.ts +2 -1
  30. package/dist/models/user/CustomerModel.d.ts +2 -1
  31. package/dist/models/user/RetailerModel.d.ts +2 -1
  32. package/dist/models/user/UserModel.d.ts +2 -1
  33. package/dist/models/user/UserPropModel.d.ts +2 -1
  34. package/dist/models/user/UserStatusModel.d.ts +2 -1
  35. package/dist/models/user/WorkerModel.d.ts +2 -1
  36. package/dist/schema/payload/injection_field/schemaInjectionField.d.ts +509 -33
  37. package/dist/schema/payload/injection_field/schemaInjectionField.js +53 -23
  38. package/dist/schema/payload/injection_field/schemaInjectionField.js.map +1 -1
  39. package/dist/services/injection_field/DocumentInjectionFieldService.d.ts +1 -53
  40. package/dist/services/injection_field/DocumentInjectionFieldService.js +21 -4
  41. package/dist/services/injection_field/DocumentInjectionFieldService.js.map +1 -1
  42. package/dist/services/injection_field/ItemInjectionFieldService.d.ts +5 -54
  43. package/dist/services/injection_field/ItemInjectionFieldService.js +54 -12
  44. package/dist/services/injection_field/ItemInjectionFieldService.js.map +1 -1
  45. package/dist/services/injection_field/LogisticInjectionFieldService.d.ts +1 -14
  46. package/dist/services/injection_field/LogisticInjectionFieldService.js +21 -4
  47. package/dist/services/injection_field/LogisticInjectionFieldService.js.map +1 -1
  48. package/dist/services/injection_field/RepositoryInjectionFieldService.d.ts +1 -19
  49. package/dist/services/injection_field/RepositoryInjectionFieldService.js +21 -4
  50. package/dist/services/injection_field/RepositoryInjectionFieldService.js.map +1 -1
  51. package/dist/services/injection_field/UserInjectionFieldService.d.ts +1 -29
  52. package/dist/services/injection_field/UserInjectionFieldService.js +21 -4
  53. package/dist/services/injection_field/UserInjectionFieldService.js.map +1 -1
  54. package/dist/utils/index.d.ts +1 -1
  55. package/dist/utils/index.js +2 -1
  56. package/dist/utils/index.js.map +1 -1
  57. package/dist/utils/schemaUtils.d.ts +1 -0
  58. package/dist/utils/schemaUtils.js +14 -1
  59. package/dist/utils/schemaUtils.js.map +1 -1
  60. package/package.json +1 -1
@@ -1,21 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.schemaInjectionFieldDeletePayload = exports.schemaInjectionFieldReplacePayload = exports.schemaInjectionFieldCreatePayload = exports.injectionFieldSchema = void 0;
3
+ exports.schemaInjectionFieldDeletePayload = exports.schemaInjectionFieldReplacePayload = exports.schemaInjectionFieldCreatePayload = exports.injectionFieldSchemaReplace = exports.injectionFieldSchema = void 0;
4
4
  exports.groupPayloadInjectionFields = groupPayloadInjectionFields;
5
5
  const zod_1 = require("zod");
6
6
  // mapping rules: field_ref -> new field name
7
- const refFieldMap = {
8
- user: "userId",
9
- branch: "branchId",
10
- // add more here in future if needed
11
- };
12
- function groupPayloadInjectionFields(injectionFields, refFieldMapping = refFieldMap) {
7
+ // const refFieldMap: Record<any, any> = {
8
+ // user: "userId",
9
+ // branch: "branchId",
10
+ // item: "itemId",
11
+ // product: "productId",
12
+ // brand: "brandId",
13
+ // category: "categoryId",
14
+ // uom: "uomId"
15
+ // // add more here in future if needed
16
+ // };
17
+ function groupPayloadInjectionFields(injectionFields,
18
+ // refFieldMapping: Record<string, string> = refFieldMap
19
+ refFieldMapping, refModuleMapping) {
13
20
  const grouped = {};
14
21
  for (const f of injectionFields) {
15
22
  const key = `${f.field_module}-${f.field_ref}-${f.ref_id}`;
16
23
  if (!grouped[key]) {
17
24
  // move mapped ref_id field to parent level
18
- const mappedField = refFieldMapping[f.field_ref];
25
+ let mappedField = "";
26
+ if (refFieldMapping && Object.keys(refFieldMapping).length > 0) { // use ref as map
27
+ mappedField = refFieldMapping[f.field_ref];
28
+ }
29
+ else if (refModuleMapping && Object.keys(refModuleMapping).length > 0) { // use module as map
30
+ mappedField = refModuleMapping[f.field_module];
31
+ }
19
32
  grouped[key] = {
20
33
  module: f.field_module,
21
34
  ref: f.field_ref,
@@ -98,6 +111,21 @@ exports.injectionFieldSchema = zod_1.z.discriminatedUnion("field_ref", [
98
111
  repositoryRepositorySchema,
99
112
  repositoryRepositoryItemSchema
100
113
  ]);
114
+ const injectionFieldReplaceBase = {
115
+ ref_id: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]),
116
+ field_value: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]),
117
+ };
118
+ // ✅ Combine them into one discriminated union
119
+ exports.injectionFieldSchemaReplace = zod_1.z.discriminatedUnion("field_ref", [
120
+ userUserSchema.omit({ field_type: true }).extend(injectionFieldReplaceBase),
121
+ userBranchSchema.omit({ field_type: true }).extend(injectionFieldReplaceBase),
122
+ documentDocumentSchema.omit({ field_type: true }).extend(injectionFieldReplaceBase),
123
+ documentItemSchema.omit({ field_type: true }).extend(injectionFieldReplaceBase),
124
+ itemItemSchema.omit({ field_type: true }).extend(injectionFieldReplaceBase),
125
+ logisticTransporterSchema.omit({ field_type: true }).extend(injectionFieldReplaceBase),
126
+ repositoryRepositorySchema.omit({ field_type: true }).extend(injectionFieldReplaceBase),
127
+ repositoryRepositoryItemSchema.omit({ field_type: true }).extend(injectionFieldReplaceBase)
128
+ ]);
101
129
  /** Create */
102
130
  exports.schemaInjectionFieldCreatePayload = zod_1.z.object({
103
131
  scope: zod_1.z.object({
@@ -113,21 +141,23 @@ exports.schemaInjectionFieldReplacePayload = zod_1.z.object({
113
141
  target: zod_1.z.enum(["user", "document", "item", "repository", "logistic"]),
114
142
  }),
115
143
  payload: zod_1.z.object({
116
- injection_fields: zod_1.z.array(zod_1.z.object({
117
- field_key: zod_1.z.string(), // any string
118
- field_module: zod_1.z.enum([
119
- "customer",
120
- "retailer",
121
- "administrator",
122
- "supplier",
123
- "driver",
124
- "worker",
125
- "member",
126
- ]),
127
- field_ref: zod_1.z.enum(["user", "branch"]),
128
- ref_id: zod_1.z.string(), // always string
129
- field_value: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]),
130
- }))
144
+ injection_fields: zod_1.z.array(exports.injectionFieldSchemaReplace
145
+ // z.object({
146
+ // field_key: z.string(), // any string
147
+ // field_module: z.enum([
148
+ // "customer",
149
+ // "retailer",
150
+ // "administrator",
151
+ // "supplier",
152
+ // "driver",
153
+ // "worker",
154
+ // "member",
155
+ // ]),
156
+ // field_ref: z.enum(["user", "branch"]),
157
+ // ref_id: z.string(), // always string
158
+ // field_value: z.union([z.string(), z.number()]),
159
+ // })
160
+ )
131
161
  })
132
162
  });
133
163
  /** Delete */
@@ -1 +1 @@
1
- {"version":3,"file":"schemaInjectionField.js","sourceRoot":"","sources":["../../../../src/schema/payload/injection_field/schemaInjectionField.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\n\nimport { _, dayjs } from \"@/utils\";\n\n/** Util for converting the request into service payload */\ntype InjectionField = {\n field_key: string;\n field_module: string;\n field_ref: string;\n ref_id: string;\n field_value: any;\n};\n\ntype GroupedInjectionField = {\n module: string;\n ref: string;\n userId?: string;\n branchId?: string;\n memberId?: string;\n fields?: Record<string, string>;\n};\n\n// mapping rules: field_ref -> new field name\nconst refFieldMap: Record<any, any> = {\n user: \"userId\",\n branch: \"branchId\",\n // add more here in future if needed\n};\n\nexport function groupPayloadInjectionFields(\n injectionFields: InjectionField[],\n refFieldMapping: Record<string, string> = refFieldMap\n): GroupedInjectionField[] {\n const grouped: Record<string, GroupedInjectionField & { fields?: Record<string, any> }> = {};\n\n for (const f of injectionFields) {\n const key = `${f.field_module}-${f.field_ref}-${f.ref_id}`;\n\n if (!grouped[key]) {\n // move mapped ref_id field to parent level\n const mappedField = refFieldMapping[f.field_ref];\n grouped[key] = {\n module: f.field_module,\n ref: f.field_ref,\n ...(mappedField ? { [mappedField]: f.ref_id } : {}),\n fields: {},\n };\n }\n\n // map all other field_key → field_value into fields\n grouped[key].fields![f.field_key] = f.field_value;\n }\n\n // remove ref_id (already mapped) and return\n return Object.values(grouped).map(({ fields, ...rest }) => ({\n ...rest,\n fields,\n }));\n}\n\nconst injectionFieldDataTypeSchema = z.enum([\n \"id\", \"value\", \"numeric\", \"integer\", \"timestamp\", \"date\", \"date_time\", \"text\"\n]);\n\nconst injectionFieldBase = {\n field_key: z.string(),\n field_type: injectionFieldDataTypeSchema\n};\n\n// field_ref = \"user\" → field_module must be one of these\nconst userUserSchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"user\"),\n field_module: z.enum([\"customer\", \"member\", \"administrator\", \"retailer\", \"worker\", \"driver\"]),\n});\n\n// field_ref = \"branch\" → field_module must be one of these\nconst userBranchSchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"branch\"),\n field_module: z.enum([\"customer\", \"retailer\"]),\n});\n\n// field_ref = \"document\" → field_module must be one of these\nconst documentDocumentSchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"document\"),\n field_module: z.enum([\"sales\", \"delivery\", \"proforma_sales\", \"retail_cash_sales\"]),\n});\n\n// field_ref = \"document_item\" → field_module must be one of these\nconst documentItemSchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"document_item\"),\n field_module: z.enum([\"sales\", \"delivery\", \"proforma_sales\", \"retail_cash_sales\"]),\n});\n\n// field_ref = \"item\" → field_module must be one of these\nconst itemItemSchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"item\"),\n field_module: z.enum([\"item\", \"product\", \"category\", \"brand\", \"uom\"]),\n});\n\n// field_ref = \"logistic\" → field_module must be one of these\nconst logisticTransporterSchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"logistic\"),\n field_module: z.enum([\"transporter\"]),\n});\n\n// field_ref = \"repository\" → field_module must be one of these\nconst repositoryRepositorySchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"repository\"),\n field_module: z.enum([\"container\", \"package\"]),\n});\n\n// field_ref = \"repository\" → field_module must be one of these\nconst repositoryRepositoryItemSchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"repository_item\"),\n field_module: z.enum([\"container\", \"package\"]),\n});\n\n// ✅ Combine them into one discriminated union\nexport const injectionFieldSchema = z.discriminatedUnion(\"field_ref\", [\n userUserSchema,\n userBranchSchema,\n documentDocumentSchema,\n documentItemSchema,\n itemItemSchema,\n logisticTransporterSchema,\n repositoryRepositorySchema,\n repositoryRepositoryItemSchema\n]);\n\n/** Create */\nexport const schemaInjectionFieldCreatePayload = z.object({\n scope: z.object({\n target: z.enum([\"injection_field\"]),\n }),\n payload: z.object({\n injection_fields: z.array(\n injectionFieldSchema\n )\n })\n});\n\nexport type SchemaInjectionFieldCreatePayload = z.infer<typeof schemaInjectionFieldCreatePayload>;\n\n/** Replace */\nexport const schemaInjectionFieldReplacePayload = z.object({\n scope: z.object({\n target: z.enum([\"user\", \"document\", \"item\", \"repository\", \"logistic\"]),\n }),\n payload: z.object({\n injection_fields: z.array(\n z.object({\n field_key: z.string(), // any string\n field_module: z.enum([\n \"customer\",\n \"retailer\",\n \"administrator\",\n \"supplier\",\n \"driver\",\n \"worker\",\n \"member\",\n ]),\n field_ref: z.enum([\"user\", \"branch\"]),\n ref_id: z.string(), // always string\n field_value: z.union([z.string(), z.number()]),\n })\n )\n })\n});\n\nexport type SchemaInjectionFieldReplacePayload = z.infer<typeof schemaInjectionFieldReplacePayload>;\n\n/** Delete */\nexport const schemaInjectionFieldDeletePayload = z.object({\n scope: z.object({\n // target: z.literal(\"role\"), // only \"role\" allowed\n }),\n payload: z.object({\n ids: z.array(z.union([z.string(), z.number()])).min(1, \"ids must contain at least one number\"),\n }),\n});\n\nexport type SchemaInjectionFieldDeletePayload = z.infer<typeof schemaInjectionFieldDeletePayload>;"]}
1
+ {"version":3,"file":"schemaInjectionField.js","sourceRoot":"","sources":["../../../../src/schema/payload/injection_field/schemaInjectionField.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\n\nimport { _, dayjs } from \"@/utils\";\n\n/** Util for converting the request into service payload */\ntype InjectionField = {\n field_key: string;\n field_module: string;\n field_ref: string;\n ref_id: string | number;\n field_value: any;\n};\n\ntype GroupedInjectionField = {\n module: string;\n ref: string;\n\n userId?: string;\n branchId?: string;\n memberId?: string;\n\n itemId?: string;\n productId?: string;\n brandId?: string;\n categoryId?: string;\n uomId?: string;\n\n fields?: Record<string, string>;\n};\n\n// mapping rules: field_ref -> new field name\n// const refFieldMap: Record<any, any> = {\n// user: \"userId\",\n// branch: \"branchId\",\n\n// item: \"itemId\",\n// product: \"productId\",\n// brand: \"brandId\",\n// category: \"categoryId\",\n// uom: \"uomId\"\n\n// // add more here in future if needed\n// };\n\nexport function groupPayloadInjectionFields(\n injectionFields: InjectionField[],\n // refFieldMapping: Record<string, string> = refFieldMap\n refFieldMapping?: Record<string, string>,\n refModuleMapping?: Record<string, string>\n): GroupedInjectionField[] {\n const grouped: Record<string, GroupedInjectionField & { fields?: Record<string, any> }> = {};\n\n for (const f of injectionFields) {\n const key = `${f.field_module}-${f.field_ref}-${f.ref_id}`;\n\n if (!grouped[key]) {\n // move mapped ref_id field to parent level\n let mappedField = \"\"\n\n if (refFieldMapping && Object.keys(refFieldMapping).length > 0) { // use ref as map\n mappedField = refFieldMapping[f.field_ref]\n } else if (refModuleMapping && Object.keys(refModuleMapping).length > 0) { // use module as map\n mappedField = refModuleMapping[f.field_module];\n }\n\n grouped[key] = {\n module: f.field_module,\n ref: f.field_ref,\n ...(mappedField ? { [mappedField]: f.ref_id } : {}),\n fields: {},\n };\n }\n\n // map all other field_key → field_value into fields\n grouped[key].fields![f.field_key] = f.field_value;\n }\n\n // remove ref_id (already mapped) and return\n return Object.values(grouped).map(({ fields, ...rest }) => ({\n ...rest,\n fields,\n }));\n}\n\nconst injectionFieldDataTypeSchema = z.enum([\n \"id\", \"value\", \"numeric\", \"integer\", \"timestamp\", \"date\", \"date_time\", \"text\"\n]);\n\nconst injectionFieldBase = {\n field_key: z.string(),\n field_type: injectionFieldDataTypeSchema\n};\n\n// field_ref = \"user\" → field_module must be one of these\nconst userUserSchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"user\"),\n field_module: z.enum([\"customer\", \"member\", \"administrator\", \"retailer\", \"worker\", \"driver\"]),\n});\n\n// field_ref = \"branch\" → field_module must be one of these\nconst userBranchSchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"branch\"),\n field_module: z.enum([\"customer\", \"retailer\"]),\n});\n\n// field_ref = \"document\" → field_module must be one of these\nconst documentDocumentSchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"document\"),\n field_module: z.enum([\"sales\", \"delivery\", \"proforma_sales\", \"retail_cash_sales\"]),\n});\n\n// field_ref = \"document_item\" → field_module must be one of these\nconst documentItemSchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"document_item\"),\n field_module: z.enum([\"sales\", \"delivery\", \"proforma_sales\", \"retail_cash_sales\"]),\n});\n\n// field_ref = \"item\" → field_module must be one of these\nconst itemItemSchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"item\"),\n field_module: z.enum([\"item\", \"product\", \"category\", \"brand\", \"uom\"]),\n});\n\n// field_ref = \"logistic\" → field_module must be one of these\nconst logisticTransporterSchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"logistic\"),\n field_module: z.enum([\"transporter\"]),\n});\n\n// field_ref = \"repository\" → field_module must be one of these\nconst repositoryRepositorySchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"repository\"),\n field_module: z.enum([\"container\", \"package\"]),\n});\n\n// field_ref = \"repository\" → field_module must be one of these\nconst repositoryRepositoryItemSchema = z.object({\n ...injectionFieldBase,\n field_ref: z.literal(\"repository_item\"),\n field_module: z.enum([\"container\", \"package\"]),\n});\n\n// ✅ Combine them into one discriminated union\nexport const injectionFieldSchema = z.discriminatedUnion(\"field_ref\", [\n userUserSchema,\n userBranchSchema,\n documentDocumentSchema,\n documentItemSchema,\n itemItemSchema,\n logisticTransporterSchema,\n repositoryRepositorySchema,\n repositoryRepositoryItemSchema\n]);\n\nconst injectionFieldReplaceBase = {\n ref_id: z.union([z.string(), z.number()]),\n field_value: z.union([z.string(), z.number()]),\n};\n\n// ✅ Combine them into one discriminated union\nexport const injectionFieldSchemaReplace = z.discriminatedUnion(\"field_ref\", [\n userUserSchema.omit({ field_type: true }).extend(injectionFieldReplaceBase),\n userBranchSchema.omit({ field_type: true }).extend(injectionFieldReplaceBase),\n documentDocumentSchema.omit({ field_type: true }).extend(injectionFieldReplaceBase),\n documentItemSchema.omit({ field_type: true }).extend(injectionFieldReplaceBase),\n itemItemSchema.omit({ field_type: true }).extend(injectionFieldReplaceBase),\n logisticTransporterSchema.omit({ field_type: true }).extend(injectionFieldReplaceBase),\n repositoryRepositorySchema.omit({ field_type: true }).extend(injectionFieldReplaceBase),\n repositoryRepositoryItemSchema.omit({ field_type: true }).extend(injectionFieldReplaceBase)\n]);\n\n\n/** Create */\nexport const schemaInjectionFieldCreatePayload = z.object({\n scope: z.object({\n target: z.enum([\"injection_field\"]),\n }),\n payload: z.object({\n injection_fields: z.array(\n injectionFieldSchema\n )\n })\n});\n\nexport type SchemaInjectionFieldCreatePayload = z.infer<typeof schemaInjectionFieldCreatePayload>;\n\n/** Replace */\nexport const schemaInjectionFieldReplacePayload = z.object({\n scope: z.object({\n target: z.enum([\"user\", \"document\", \"item\", \"repository\", \"logistic\"]),\n }),\n payload: z.object({\n injection_fields: z.array(\n injectionFieldSchemaReplace\n // z.object({\n // field_key: z.string(), // any string\n // field_module: z.enum([\n // \"customer\",\n // \"retailer\",\n // \"administrator\",\n // \"supplier\",\n // \"driver\",\n // \"worker\",\n // \"member\",\n // ]),\n // field_ref: z.enum([\"user\", \"branch\"]),\n // ref_id: z.string(), // always string\n // field_value: z.union([z.string(), z.number()]),\n // })\n )\n })\n});\n\nexport type SchemaInjectionFieldReplacePayload = z.infer<typeof schemaInjectionFieldReplacePayload>;\n\n/** Delete */\nexport const schemaInjectionFieldDeletePayload = z.object({\n scope: z.object({\n // target: z.literal(\"role\"), // only \"role\" allowed\n }),\n payload: z.object({\n ids: z.array(z.union([z.string(), z.number()])).min(1, \"ids must contain at least one number\"),\n }),\n});\n\nexport type SchemaInjectionFieldDeletePayload = z.infer<typeof schemaInjectionFieldDeletePayload>;"]}
@@ -78,58 +78,6 @@ export type DocumentInjectionFieldReplaceProps = {
78
78
  };
79
79
  };
80
80
  export declare const DocumentInjectionFieldService: (props: DocumentInjectionFieldServiceProps) => {
81
- replaceDocumentInjectionField: ({ data }: DocumentInjectionFieldReplaceProps) => Promise<{
82
- createdatetime: Date | null;
83
- createuserid: bigint;
84
- updatedatetime: Date | null;
85
- updateuserid: bigint;
86
- isdelete: boolean | null;
87
- istrash: boolean | null;
88
- field_module: string | null;
89
- field_ref: string | null;
90
- document_injection_field_id: bigint;
91
- document_id: bigint;
92
- document_item_id: bigint;
93
- document_doc_id: bigint;
94
- ax_accountid: bigint;
95
- doc_do_pack_qty2_bk_39: bigint;
96
- doc_do_pack_qty2: bigint | null;
97
- doci_do_pack_item_qty: bigint | null;
98
- doc_do_pack_item_qty: bigint | null;
99
- doc_so_test: string | null;
100
- doci_so_testitem: string | null;
101
- doc_so_pack_qty2: bigint | null;
102
- doc_do_aaaa: bigint | null;
103
- doc_do_remark_ids: string | null;
104
- doc_do_remark_id: string | null;
105
- doci_ir_batch_no: string | null;
106
- doci_ir_expiry_date: string | null;
107
- doci_ir_production_date: string | null;
108
- doc_scn_is_adhoc: bigint | null;
109
- doc_scn_shipment_address: string | null;
110
- doci_scn_existing_mp_quantity: import("@prisma/client/runtime/library").Decimal | null;
111
- doci_scn_is_bulk: bigint | null;
112
- doc_do_is_adhoc: bigint | null;
113
- doc_do_shipment_address: string | null;
114
- doci_do_existing_mp_quantity: import("@prisma/client/runtime/library").Decimal | null;
115
- doci_do_is_bulk: bigint | null;
116
- doc_cs_is_adhoc: bigint | null;
117
- doc_cs_shipment_address: string | null;
118
- doci_cs_existing_mp_quantity: import("@prisma/client/runtime/library").Decimal | null;
119
- doci_cs_is_bulk: bigint | null;
120
- doc_rdo_is_adhoc: bigint | null;
121
- doc_rdo_shipment_address: string | null;
122
- doci_rdo_existing_mp_quantity: import("@prisma/client/runtime/library").Decimal | null;
123
- doci_rdo_is_bulk: bigint | null;
124
- doc_pr_is_adhoc: bigint | null;
125
- doc_pr_shipment_address: string | null;
126
- doci_pr_existing_mp_quantity: import("@prisma/client/runtime/library").Decimal | null;
127
- doci_pr_is_bulk: bigint | null;
128
- doc_sdn_is_adhoc: bigint | null;
129
- doc_sdn_shipment_address: string | null;
130
- doci_sdn_existing_mp_quantity: import("@prisma/client/runtime/library").Decimal | null;
131
- doci_sdn_is_bulk: bigint | null;
132
- removed_doci_do_4sdfsdfd7s: Date | null;
133
- }>;
81
+ replaceDocumentInjectionField: ({ data }: DocumentInjectionFieldReplaceProps) => Promise<any>;
134
82
  };
135
83
  export {};
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // import { logError, throwError } from "../../utils";
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.DocumentInjectionFieldService = exports.documentRefPrefixMap = exports.documentModulePrefixMap = void 0;
5
4
  const models_1 = require("../../models");
@@ -67,9 +66,27 @@ const DocumentInjectionFieldService = (props) => {
67
66
  // }
68
67
  let modelFields = await documentInjectionFieldModel.getFields();
69
68
  let finalData = (0, utils_1.convertPayloadByTableSchema)(_data, modelFields);
70
- console.log('modelFields', modelFields);
71
- console.log('finalData', finalData);
72
- const response = await documentInjectionFieldModel.update({ data: finalData, where });
69
+ // console.log('modelFields', modelFields)
70
+ // console.log('finalData', finalData)
71
+ // check the request fields are in the exactly schema
72
+ const resultInvalidFields = (0, utils_1.validateModelFieldsWithData)(modelFields, finalData);
73
+ if (resultInvalidFields.length > 0) {
74
+ throw Error(`Invalid injection fields: ${resultInvalidFields.join(", ")} (Request: ${Object.keys(finalData).join(", ")})`);
75
+ }
76
+ // check the record exists
77
+ let exists = await documentInjectionFieldModel.get({ where });
78
+ let response = {};
79
+ if (exists) { // update existing
80
+ // remove unwanted to override
81
+ delete finalData.field_module;
82
+ delete finalData.field_ref;
83
+ delete finalData.document_id;
84
+ delete finalData.document_item_id;
85
+ response = await documentInjectionFieldModel.update({ data: finalData, where, disableRollback: true });
86
+ }
87
+ else { // create new
88
+ response = await documentInjectionFieldModel.create({ data: finalData });
89
+ }
73
90
  return response;
74
91
  };
75
92
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentInjectionFieldService.js","sourceRoot":"","sources":["../../../src/services/injection_field/DocumentInjectionFieldService.ts"],"names":[],"mappings":"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","sourcesContent":["// import { logError, throwError } from \"@/utils\";\n\nimport {\n DocumentInjectionFieldModel,\n ModelDocumentInjectionField,\n ModelDocumentInjectionFieldFields,\n} from \"@/models\";\n\n// import { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { convertPayloadByTableSchema } from \"@/utils\";\n\ntype DocumentInjectionFieldMap = {\n delivery: {\n document: { documentId: any };\n document_item: { documentId: any; };\n };\n cash_sales: {\n document: { documentId: any };\n document_item: { documentId: any; };\n };\n sales: {\n document: { documentId: any };\n document_item: { documentId: any; };\n };\n proforma_sales: {\n document: { documentId: any };\n document_item: { documentId: any; };\n };\n retail_cash_sales: {\n document: { documentId: any };\n document_item: { documentId: any; };\n };\n replacement_delivery_order: {\n document: { documentId: any };\n document_item: { documentId: any; };\n },\n trip: {\n document: { documentId: any };\n document_item: { documentId: any; };\n }\n};\n\ntype DocumentInjectionFieldModule = keyof DocumentInjectionFieldMap;\n// type DocumentInjectionFieldRef<M extends DocumentInjectionFieldModule> = keyof DocumentInjectionFieldMap[M];\n\nexport const documentModulePrefixMap: Record<DocumentInjectionFieldModule, string> = {\n delivery: \"do\",\n cash_sales: \"cs\",\n proforma_sales: \"pso\",\n sales: \"so\",\n retail_cash_sales: \"rcs\",\n replacement_delivery_order: \"rdo\",\n trip: \"trp\"\n};\n\nexport const documentRefPrefixMap: Record<\"document\" | \"document_item\", string> = {\n document: \"doc\",\n document_item: \"doci\",\n};\n\nexport type DocumentInjectionFieldModuleRef = {\n [M in DocumentInjectionFieldModule]: {\n [R in keyof DocumentInjectionFieldMap[M]]: {\n module: M;\n ref: R;\n } & DocumentInjectionFieldMap[M][R];\n }[keyof DocumentInjectionFieldMap[M]];\n}[DocumentInjectionFieldModule];\n\nexport type DocumentInjectionFieldServiceProps = DefaultServiceProps & {};\n\nexport type DocumentInjectionFieldRemoveProps = {\n ids: number[]\n};\n\nexport type DocumentInjectionFieldReplaceProps = {\n data: DocumentInjectionFieldModuleRef & {\n fields: any\n }\n}\n\nconst getReplacePayload = (data: DocumentInjectionFieldReplaceProps[\"data\"]) => {\n\n let { module, ref, documentId } = data\n\n let payload: Record<string, any> = {};\n\n payload = {\n ...payload,\n ...{\n [`${ModelDocumentInjectionFieldFields.field_module}`]: module,\n [`${ModelDocumentInjectionFieldFields.field_ref}`]: ref,\n }\n }\n\n if (\"documentId\" in data) {\n payload = { ...payload, ...(data?.documentId ? { [`${ModelDocumentInjectionFieldFields.document_id}`]: documentId } : {}) }\n }\n\n // if (\"branchId\" in data) {\n // const branchId = data.branchId\n // payload = { ...payload, ...(data?.branchId ? { [`${ModelDocumentInjectionFieldFields.branch_id}`]: branchId } : {}) }\n // }\n\n // if (\"memberId\" in data) {\n // const memberId = data.memberId\n // payload = { ...payload, ...(data?.memberId ? { [`${ModelDocumentInjectionFieldFields.member_id}`]: memberId } : {}) }\n // }\n\n const rest = data.fields\n\n // apply dynamic prefix: refPrefix_modulePrefix_fieldKey\n const refPrefix = documentRefPrefixMap[ref as keyof typeof documentRefPrefixMap] ?? ref;\n const modulePrefix = documentModulePrefixMap[module as DocumentInjectionFieldModule] ?? module;\n\n for (const [key, value] of Object.entries(rest)) {\n payload[`${refPrefix}_${modulePrefix}_${key}`] = value;\n }\n\n return payload\n\n}\n\nexport const DocumentInjectionFieldService = (props: DocumentInjectionFieldServiceProps) => {\n\n const {\n prisma,\n accountId = 0,\n actionUserId = 0\n } = props\n\n const documentInjectionFieldModel = DocumentInjectionFieldModel({ prisma, accountId, actionUserId })\n\n const replaceDocumentInjectionField = async ({ data }: DocumentInjectionFieldReplaceProps) => {\n\n const _data = getReplacePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const where: Record<string, any> = {\n [ModelDocumentInjectionFieldFields.field_module]: data.module,\n [ModelDocumentInjectionFieldFields.field_ref]: data.ref,\n ...(data?.documentId ? { [ModelDocumentInjectionFieldFields.document_id]: data.documentId } : {}),\n };\n\n // Narrow: only include branchId if data.ref === \"branch\"\n // if (data.ref === \"branch\") {\n // where[ModelDocumentInjectionFieldFields.branch_id] = (data as Extract<DocumentInjectionFieldModuleRef, { ref: \"branch\" }>).branchId;\n // }\n\n let modelFields = await documentInjectionFieldModel.getFields()\n\n let finalData = convertPayloadByTableSchema(_data, modelFields)\n\n console.log('modelFields', modelFields)\n console.log('finalData', finalData)\n\n const response = await documentInjectionFieldModel.update({ data: finalData, where })\n\n return response\n }\n\n return {\n replaceDocumentInjectionField\n }\n\n}\n\n\n"]}
1
+ {"version":3,"file":"DocumentInjectionFieldService.js","sourceRoot":"","sources":["../../../src/services/injection_field/DocumentInjectionFieldService.ts"],"names":[],"mappings":";;;AAAA,qCAGkB;AAIlB,mCAAmF;AAkCnF,+GAA+G;AAElG,QAAA,uBAAuB,GAAiD;IACjF,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,KAAK;IACrB,KAAK,EAAE,IAAI;IACX,iBAAiB,EAAE,KAAK;IACxB,0BAA0B,EAAE,KAAK;IACjC,IAAI,EAAE,KAAK;CACd,CAAC;AAEW,QAAA,oBAAoB,GAAiD;IAC9E,QAAQ,EAAE,KAAK;IACf,aAAa,EAAE,MAAM;CACxB,CAAC;AAuBF,MAAM,iBAAiB,GAAG,CAAC,IAAgD,EAAE,EAAE;IAE3E,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;IAEtC,IAAI,OAAO,GAAwB,EAAE,CAAC;IAEtC,OAAO,GAAG;QACN,GAAG,OAAO;QACV,GAAG;YACC,CAAC,GAAG,0CAAiC,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM;YAC7D,CAAC,GAAG,0CAAiC,CAAC,SAAS,EAAE,CAAC,EAAE,GAAG;SAC1D;KACJ,CAAA;IAED,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,0CAAiC,CAAC,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;IAC/H,CAAC;IAED,4BAA4B;IAC5B,qCAAqC;IACrC,4HAA4H;IAC5H,IAAI;IAEJ,4BAA4B;IAC5B,qCAAqC;IACrC,4HAA4H;IAC5H,IAAI;IAEJ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAA;IAExB,wDAAwD;IACxD,MAAM,SAAS,GAAG,4BAAoB,CAAC,GAAwC,CAAC,IAAI,GAAG,CAAC;IACxF,MAAM,YAAY,GAAG,+BAAuB,CAAC,MAAsC,CAAC,IAAI,MAAM,CAAC;IAE/F,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,GAAG,SAAS,IAAI,YAAY,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;IAC3D,CAAC;IAED,OAAO,OAAO,CAAA;AAElB,CAAC,CAAA;AAEM,MAAM,6BAA6B,GAAG,CAAC,KAAyC,EAAE,EAAE;IAEvF,MAAM,EACF,MAAM,EACN,SAAS,GAAG,CAAC,EACb,YAAY,GAAG,CAAC,EACnB,GAAG,KAAK,CAAA;IAET,MAAM,2BAA2B,GAAG,IAAA,oCAA2B,EAAC,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAA;IAEpG,MAAM,6BAA6B,GAAG,KAAK,EAAE,EAAE,IAAI,EAAsC,EAAE,EAAE;QAEzF,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAErC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,KAAK,GAAwB;YAC/B,CAAC,0CAAiC,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,MAAM;YAC7D,CAAC,0CAAiC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG;YACvD,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,0CAAiC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpG,CAAC;QAEF,yDAAyD;QACzD,+BAA+B;QAC/B,2IAA2I;QAC3I,IAAI;QAEJ,IAAI,WAAW,GAAG,MAAM,2BAA2B,CAAC,SAAS,EAAE,CAAA;QAE/D,IAAI,SAAS,GAAG,IAAA,mCAA2B,EAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QAE/D,0CAA0C;QAC1C,sCAAsC;QAGtC,qDAAqD;QACrD,MAAM,mBAAmB,GAAG,IAAA,mCAA2B,EAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QAE/E,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,KAAK,CAAC,6BAA6B,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC9H,CAAC;QAED,0BAA0B;QAC1B,IAAI,MAAM,GAAG,MAAM,2BAA2B,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QAE7D,IAAI,QAAQ,GAAQ,EAAE,CAAA;QAEtB,IAAI,MAAM,EAAE,CAAC,CAAC,kBAAkB;YAE5B,8BAA8B;YAC9B,OAAO,SAAS,CAAC,YAAY,CAAC;YAC9B,OAAO,SAAS,CAAC,SAAS,CAAC;YAC3B,OAAO,SAAS,CAAC,WAAW,CAAC;YAC7B,OAAO,SAAS,CAAC,gBAAgB,CAAC;YAElC,QAAQ,GAAG,MAAM,2BAA2B,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1G,CAAC;aAAM,CAAC,CAAC,aAAa;YAClB,QAAQ,GAAG,MAAM,2BAA2B,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QAC5E,CAAC;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,OAAO;QACH,6BAA6B;KAChC,CAAA;AAEL,CAAC,CAAA;AArEY,QAAA,6BAA6B,iCAqEzC","sourcesContent":["import {\n DocumentInjectionFieldModel,\n ModelDocumentInjectionFieldFields,\n} from \"@/models\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { convertPayloadByTableSchema, validateModelFieldsWithData } from \"@/utils\";\n\ntype DocumentInjectionFieldMap = {\n delivery: {\n document: { documentId: any };\n document_item: { documentId: any; };\n };\n cash_sales: {\n document: { documentId: any };\n document_item: { documentId: any; };\n };\n sales: {\n document: { documentId: any };\n document_item: { documentId: any; };\n };\n proforma_sales: {\n document: { documentId: any };\n document_item: { documentId: any; };\n };\n retail_cash_sales: {\n document: { documentId: any };\n document_item: { documentId: any; };\n };\n replacement_delivery_order: {\n document: { documentId: any };\n document_item: { documentId: any; };\n },\n trip: {\n document: { documentId: any };\n document_item: { documentId: any; };\n }\n};\n\ntype DocumentInjectionFieldModule = keyof DocumentInjectionFieldMap;\n// type DocumentInjectionFieldRef<M extends DocumentInjectionFieldModule> = keyof DocumentInjectionFieldMap[M];\n\nexport const documentModulePrefixMap: Record<DocumentInjectionFieldModule, string> = {\n delivery: \"do\",\n cash_sales: \"cs\",\n proforma_sales: \"pso\",\n sales: \"so\",\n retail_cash_sales: \"rcs\",\n replacement_delivery_order: \"rdo\",\n trip: \"trp\"\n};\n\nexport const documentRefPrefixMap: Record<\"document\" | \"document_item\", string> = {\n document: \"doc\",\n document_item: \"doci\",\n};\n\nexport type DocumentInjectionFieldModuleRef = {\n [M in DocumentInjectionFieldModule]: {\n [R in keyof DocumentInjectionFieldMap[M]]: {\n module: M;\n ref: R;\n } & DocumentInjectionFieldMap[M][R];\n }[keyof DocumentInjectionFieldMap[M]];\n}[DocumentInjectionFieldModule];\n\nexport type DocumentInjectionFieldServiceProps = DefaultServiceProps & {};\n\nexport type DocumentInjectionFieldRemoveProps = {\n ids: number[]\n};\n\nexport type DocumentInjectionFieldReplaceProps = {\n data: DocumentInjectionFieldModuleRef & {\n fields: any\n }\n}\n\nconst getReplacePayload = (data: DocumentInjectionFieldReplaceProps[\"data\"]) => {\n\n let { module, ref, documentId } = data\n\n let payload: Record<string, any> = {};\n\n payload = {\n ...payload,\n ...{\n [`${ModelDocumentInjectionFieldFields.field_module}`]: module,\n [`${ModelDocumentInjectionFieldFields.field_ref}`]: ref,\n }\n }\n\n if (\"documentId\" in data) {\n payload = { ...payload, ...(data?.documentId ? { [`${ModelDocumentInjectionFieldFields.document_id}`]: documentId } : {}) }\n }\n\n // if (\"branchId\" in data) {\n // const branchId = data.branchId\n // payload = { ...payload, ...(data?.branchId ? { [`${ModelDocumentInjectionFieldFields.branch_id}`]: branchId } : {}) }\n // }\n\n // if (\"memberId\" in data) {\n // const memberId = data.memberId\n // payload = { ...payload, ...(data?.memberId ? { [`${ModelDocumentInjectionFieldFields.member_id}`]: memberId } : {}) }\n // }\n\n const rest = data.fields\n\n // apply dynamic prefix: refPrefix_modulePrefix_fieldKey\n const refPrefix = documentRefPrefixMap[ref as keyof typeof documentRefPrefixMap] ?? ref;\n const modulePrefix = documentModulePrefixMap[module as DocumentInjectionFieldModule] ?? module;\n\n for (const [key, value] of Object.entries(rest)) {\n payload[`${refPrefix}_${modulePrefix}_${key}`] = value;\n }\n\n return payload\n\n}\n\nexport const DocumentInjectionFieldService = (props: DocumentInjectionFieldServiceProps) => {\n\n const {\n prisma,\n accountId = 0,\n actionUserId = 0\n } = props\n\n const documentInjectionFieldModel = DocumentInjectionFieldModel({ prisma, accountId, actionUserId })\n\n const replaceDocumentInjectionField = async ({ data }: DocumentInjectionFieldReplaceProps) => {\n\n const _data = getReplacePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const where: Record<string, any> = {\n [ModelDocumentInjectionFieldFields.field_module]: data.module,\n [ModelDocumentInjectionFieldFields.field_ref]: data.ref,\n ...(data?.documentId ? { [ModelDocumentInjectionFieldFields.document_id]: data.documentId } : {}),\n };\n\n // Narrow: only include branchId if data.ref === \"branch\"\n // if (data.ref === \"branch\") {\n // where[ModelDocumentInjectionFieldFields.branch_id] = (data as Extract<DocumentInjectionFieldModuleRef, { ref: \"branch\" }>).branchId;\n // }\n\n let modelFields = await documentInjectionFieldModel.getFields()\n\n let finalData = convertPayloadByTableSchema(_data, modelFields)\n\n // console.log('modelFields', modelFields)\n // console.log('finalData', finalData)\n\n\n // check the request fields are in the exactly schema\n const resultInvalidFields = validateModelFieldsWithData(modelFields, finalData)\n\n if (resultInvalidFields.length > 0) {\n throw Error(`Invalid injection fields: ${resultInvalidFields.join(\", \")} (Request: ${Object.keys(finalData).join(\", \")})`)\n }\n\n // check the record exists\n let exists = await documentInjectionFieldModel.get({ where })\n\n let response: any = {}\n\n if (exists) { // update existing\n\n // remove unwanted to override\n delete finalData.field_module;\n delete finalData.field_ref;\n delete finalData.document_id;\n delete finalData.document_item_id;\n\n response = await documentInjectionFieldModel.update({ data: finalData, where, disableRollback: true })\n } else { // create new\n response = await documentInjectionFieldModel.create({ data: finalData })\n }\n\n return response\n }\n\n return {\n replaceDocumentInjectionField\n }\n\n}\n\n\n"]}
@@ -2,7 +2,7 @@ import { DefaultServiceProps } from "../../utils";
2
2
  type ItemInjectionFieldMap = {
3
3
  product: {
4
4
  item: {
5
- itemId: any;
5
+ productId: any;
6
6
  };
7
7
  };
8
8
  item: {
@@ -12,17 +12,17 @@ type ItemInjectionFieldMap = {
12
12
  };
13
13
  brand: {
14
14
  item: {
15
- itemId: any;
15
+ brandId: any;
16
16
  };
17
17
  };
18
18
  category: {
19
19
  item: {
20
- itemId: any;
20
+ categoryId: any;
21
21
  };
22
22
  };
23
23
  uom: {
24
24
  item: {
25
- itemId: any;
25
+ uomId: any;
26
26
  };
27
27
  };
28
28
  };
@@ -47,55 +47,6 @@ export type ItemInjectionFieldReplaceProps = {
47
47
  };
48
48
  };
49
49
  export declare const ItemInjectionFieldService: (props: ItemInjectionFieldServiceProps) => {
50
- replaceItemInjectionField: ({ data }: ItemInjectionFieldReplaceProps) => Promise<{
51
- createdatetime: Date | null;
52
- createuserid: bigint;
53
- updatedatetime: Date | null;
54
- updateuserid: bigint;
55
- isdelete: boolean | null;
56
- istrash: boolean | null;
57
- accountid: bigint;
58
- field_module: string | null;
59
- field_ref: string | null;
60
- item_injection_field_id: bigint;
61
- item_id: bigint;
62
- item_uid_id: bigint;
63
- product_id: bigint;
64
- category_id: bigint;
65
- brand_id: bigint;
66
- uom_id: bigint;
67
- itm_itm_inttest: bigint | null;
68
- itm_itm_id1: bigint | null;
69
- itm_itm_value1: string | null;
70
- itm_itm_date1: Date | null;
71
- itm_itm_text1_bk_20: string;
72
- itm_itm_num1_bk_21: import("@prisma/client/runtime/library").Decimal;
73
- itm_itm_inttest123: bigint | null;
74
- itm_itm_inttest1234: bigint | null;
75
- itm_itm_inttest12345: bigint | null;
76
- itm_itm_inttest123456: bigint | null;
77
- itm_itm_inttest08: bigint | null;
78
- itm_itm_inttest1234756: bigint | null;
79
- itm_itm_test123: bigint | null;
80
- itm_itm_test1234: bigint | null;
81
- itm_itm_pack_qty: bigint | null;
82
- itm_prt_pack_qty2: bigint | null;
83
- itm_itm_test008: bigint | null;
84
- itm_prt_pack_qty10: bigint | null;
85
- itm_prt_50: import("@prisma/client/runtime/library").Decimal | null;
86
- itm_prt_500: import("@prisma/client/runtime/library").Decimal | null;
87
- itm_prt_rtdsfsdf_bk_37: string;
88
- yes_bk_38: bigint;
89
- itm_itm_customer_marking: string | null;
90
- removed_item_ct_sampleonly: string | null;
91
- removed_item_ct_sampleonly2: string | null;
92
- removed_item_ct_sam3pleonly2: string | null;
93
- removed_item_ct_sam3pleonl22y2: string | null;
94
- item_ct_samplefield: string | null;
95
- item_brd_samplefield: string | null;
96
- itm_brd_samplefield: string | null;
97
- removed_itm_uom_samplefield: string | null;
98
- removed_itm_ct_samplefield: string | null;
99
- }>;
50
+ replaceItemInjectionField: ({ data }: ItemInjectionFieldReplaceProps) => Promise<any>;
100
51
  };
101
52
  export {};
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // import { logError, throwError } from "../../utils";
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.ItemInjectionFieldService = exports.itemRefPrefixMap = exports.itemModulePrefixMap = void 0;
5
4
  const models_1 = require("../../models");
@@ -16,7 +15,7 @@ exports.itemRefPrefixMap = {
16
15
  item: "itm",
17
16
  };
18
17
  const getReplacePayload = (data) => {
19
- let { module, ref, itemId } = data;
18
+ let { module, ref } = data;
20
19
  let payload = {};
21
20
  payload = {
22
21
  ...payload,
@@ -26,7 +25,19 @@ const getReplacePayload = (data) => {
26
25
  }
27
26
  };
28
27
  if ("itemId" in data) {
29
- payload = { ...payload, ...(data?.itemId ? { [`${models_1.ModelItemInjectionFieldFields.item_id}`]: itemId } : {}) };
28
+ payload = { ...payload, ...(data?.itemId ? { [`${models_1.ModelItemInjectionFieldFields.item_id}`]: data.itemId } : {}) };
29
+ }
30
+ if ("productId" in data) {
31
+ payload = { ...payload, ...(data?.productId ? { [`${models_1.ModelItemInjectionFieldFields.product_id}`]: data.productId } : {}) };
32
+ }
33
+ if ("brandId" in data) {
34
+ payload = { ...payload, ...(data?.brandId ? { [`${models_1.ModelItemInjectionFieldFields.brand_id}`]: data.brandId } : {}) };
35
+ }
36
+ if ("uomId" in data) {
37
+ payload = { ...payload, ...(data?.uomId ? { [`${models_1.ModelItemInjectionFieldFields.uom_id}`]: data.uomId } : {}) };
38
+ }
39
+ if ("categoryId" in data) {
40
+ payload = { ...payload, ...(data?.categoryId ? { [`${models_1.ModelItemInjectionFieldFields.category_id}`]: data.categoryId } : {}) };
30
41
  }
31
42
  const rest = data.fields;
32
43
  // apply dynamic prefix: refPrefix_modulePrefix_fieldKey
@@ -45,20 +56,51 @@ const ItemInjectionFieldService = (props) => {
45
56
  if (!_data) {
46
57
  throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);
47
58
  }
48
- const where = {
59
+ let where = {
49
60
  [models_1.ModelItemInjectionFieldFields.field_module]: data.module,
50
61
  [models_1.ModelItemInjectionFieldFields.field_ref]: data.ref,
51
- ...(data?.itemId ? { [models_1.ModelItemInjectionFieldFields.item_id]: data.itemId } : {}),
52
62
  };
53
- // Narrow: only include branchId if data.ref === "branch"
54
- // if (data.ref === "branch") {
55
- // where[ModelItemInjectionFieldFields.branch_id] = (data as Extract<ItemInjectionFieldModuleRef, { ref: "branch" }>).branchId;
56
- // }
63
+ if ("itemId" in data) {
64
+ where = { ...where, ...(data?.itemId ? { [models_1.ModelItemInjectionFieldFields.item_id]: data.itemId } : {}) };
65
+ }
66
+ if ("productId" in data) {
67
+ where = { ...where, ...(data?.productId ? { [models_1.ModelItemInjectionFieldFields.product_id]: data.productId } : {}) };
68
+ }
69
+ if ("brandId" in data) {
70
+ where = { ...where, ...(data?.brandId ? { [models_1.ModelItemInjectionFieldFields.brand_id]: data.brandId } : {}) };
71
+ }
72
+ if ("categoryId" in data) {
73
+ where = { ...where, ...(data?.categoryId ? { [models_1.ModelItemInjectionFieldFields.category_id]: data.categoryId } : {}) };
74
+ }
75
+ if ("uomId" in data) {
76
+ where = { ...where, ...(data?.uomId ? { [models_1.ModelItemInjectionFieldFields.uom_id]: data.uomId } : {}) };
77
+ }
57
78
  let modelFields = await itemInjectionFieldModel.getFields();
58
79
  let finalData = (0, utils_1.convertPayloadByTableSchema)(_data, modelFields);
59
- console.log('modelFields', modelFields);
60
- console.log('finalData', finalData);
61
- const response = await itemInjectionFieldModel.update({ data: finalData, where });
80
+ // console.log('modelFields', modelFields)
81
+ // console.log('finalData', finalData)
82
+ // check the request fields are in the exactly schema
83
+ const resultInvalidFields = (0, utils_1.validateModelFieldsWithData)(modelFields, finalData);
84
+ if (resultInvalidFields.length > 0) {
85
+ throw Error(`Invalid injection fields: ${resultInvalidFields.join(", ")} (Request: ${Object.keys(finalData).join(", ")})`);
86
+ }
87
+ // check the record exists
88
+ let exists = await itemInjectionFieldModel.get({ where });
89
+ let response = {};
90
+ if (exists) { // update existing
91
+ // remove unwanted to override
92
+ delete finalData.field_module;
93
+ delete finalData.field_ref;
94
+ delete finalData.item_id;
95
+ delete finalData.product_id;
96
+ delete finalData.brand_id;
97
+ delete finalData.category_id;
98
+ delete finalData.uom_id;
99
+ response = await itemInjectionFieldModel.update({ data: finalData, where, disableRollback: true });
100
+ }
101
+ else { // create new
102
+ response = await itemInjectionFieldModel.create({ data: finalData });
103
+ }
62
104
  return response;
63
105
  };
64
106
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"ItemInjectionFieldService.js","sourceRoot":"","sources":["../../../src/services/injection_field/ItemInjectionFieldService.ts"],"names":[],"mappings":"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","sourcesContent":["// import { logError, throwError } from \"@/utils\";\n\nimport {\n ItemInjectionFieldModel,\n ModelItemInjectionField,\n ModelItemInjectionFieldFields,\n} from \"@/models\";\n\n// import { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { convertPayloadByTableSchema } from \"@/utils\";\n\ntype ItemInjectionFieldMap = {\n product: {\n item: { itemId: any };\n };\n item: {\n item: { itemId: any };\n };\n brand: {\n item: { itemId: any };\n };\n category: {\n item: { itemId: any };\n };\n uom: {\n item: { itemId: any };\n };\n};\n\ntype ItemInjectionFieldModule = keyof ItemInjectionFieldMap;\n// type ItemInjectionFieldRef<M extends ItemInjectionFieldModule> = keyof ItemInjectionFieldMap[M];\n\nexport const itemModulePrefixMap: Record<ItemInjectionFieldModule, string> = {\n product: \"prt\",\n item: \"itm\",\n brand: \"brd\",\n category: \"ct\",\n uom: \"uom\"\n};\n\nexport const itemRefPrefixMap: Record<\"item\", string> = {\n item: \"itm\",\n};\n\nexport type ItemInjectionFieldModuleRef = {\n [M in ItemInjectionFieldModule]: {\n [R in keyof ItemInjectionFieldMap[M]]: {\n module: M;\n ref: R;\n } & ItemInjectionFieldMap[M][R];\n }[keyof ItemInjectionFieldMap[M]];\n}[ItemInjectionFieldModule];\n\nexport type ItemInjectionFieldServiceProps = DefaultServiceProps & {};\n\nexport type ItemInjectionFieldRemoveProps = {\n ids: number[]\n};\n\nexport type ItemInjectionFieldReplaceProps = {\n data: ItemInjectionFieldModuleRef & {\n fields: any\n }\n}\n\nconst getReplacePayload = (data: ItemInjectionFieldReplaceProps[\"data\"]) => {\n\n let { module, ref, itemId } = data\n\n let payload: Record<string, any> = {};\n\n payload = {\n ...payload,\n ...{\n [`${ModelItemInjectionFieldFields.field_module}`]: module,\n [`${ModelItemInjectionFieldFields.field_ref}`]: ref,\n }\n }\n\n if (\"itemId\" in data) {\n payload = { ...payload, ...(data?.itemId ? { [`${ModelItemInjectionFieldFields.item_id}`]: itemId } : {}) }\n }\n\n const rest = data.fields\n\n // apply dynamic prefix: refPrefix_modulePrefix_fieldKey\n const refPrefix = itemRefPrefixMap[ref as keyof typeof itemRefPrefixMap] ?? ref;\n const modulePrefix = itemModulePrefixMap[module as ItemInjectionFieldModule] ?? module;\n\n for (const [key, value] of Object.entries(rest)) {\n payload[`${refPrefix}_${modulePrefix}_${key}`] = value;\n }\n\n return payload\n\n}\n\nexport const ItemInjectionFieldService = (props: ItemInjectionFieldServiceProps) => {\n\n const {\n prisma,\n accountId = 0,\n actionUserId = 0\n } = props\n\n const itemInjectionFieldModel = ItemInjectionFieldModel({ prisma, accountId, actionUserId })\n\n const replaceItemInjectionField = async ({ data }: ItemInjectionFieldReplaceProps) => {\n\n const _data = getReplacePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const where: Record<string, any> = {\n [ModelItemInjectionFieldFields.field_module]: data.module,\n [ModelItemInjectionFieldFields.field_ref]: data.ref,\n ...(data?.itemId ? { [ModelItemInjectionFieldFields.item_id]: data.itemId } : {}),\n };\n\n // Narrow: only include branchId if data.ref === \"branch\"\n // if (data.ref === \"branch\") {\n // where[ModelItemInjectionFieldFields.branch_id] = (data as Extract<ItemInjectionFieldModuleRef, { ref: \"branch\" }>).branchId;\n // }\n\n let modelFields = await itemInjectionFieldModel.getFields()\n\n let finalData = convertPayloadByTableSchema(_data, modelFields)\n\n console.log('modelFields', modelFields)\n console.log('finalData', finalData)\n\n const response = await itemInjectionFieldModel.update({ data: finalData, where })\n\n return response\n }\n\n return {\n replaceItemInjectionField\n }\n\n}\n\n\n"]}
1
+ {"version":3,"file":"ItemInjectionFieldService.js","sourceRoot":"","sources":["../../../src/services/injection_field/ItemInjectionFieldService.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ItemInjectionFieldModel,\n ModelItemInjectionFieldFields,\n} from \"@/models\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { convertPayloadByTableSchema, validateModelFieldsWithData } from \"@/utils\";\n\ntype ItemInjectionFieldMap = {\n product: {\n item: { productId: any };\n };\n item: {\n item: { itemId: any };\n };\n brand: {\n item: { brandId: any };\n };\n category: {\n item: { categoryId: any };\n };\n uom: {\n item: { uomId: any };\n };\n};\n\ntype ItemInjectionFieldModule = keyof ItemInjectionFieldMap;\n// type ItemInjectionFieldRef<M extends ItemInjectionFieldModule> = keyof ItemInjectionFieldMap[M];\n\nexport const itemModulePrefixMap: Record<ItemInjectionFieldModule, string> = {\n product: \"prt\",\n item: \"itm\",\n brand: \"brd\",\n category: \"ct\",\n uom: \"uom\"\n};\n\nexport const itemRefPrefixMap: Record<\"item\", string> = {\n item: \"itm\",\n};\n\nexport type ItemInjectionFieldModuleRef = {\n [M in ItemInjectionFieldModule]: {\n [R in keyof ItemInjectionFieldMap[M]]: {\n module: M;\n ref: R;\n } & ItemInjectionFieldMap[M][R];\n }[keyof ItemInjectionFieldMap[M]];\n}[ItemInjectionFieldModule];\n\nexport type ItemInjectionFieldServiceProps = DefaultServiceProps & {};\n\nexport type ItemInjectionFieldRemoveProps = {\n ids: number[]\n};\n\nexport type ItemInjectionFieldReplaceProps = {\n data: ItemInjectionFieldModuleRef & {\n fields: any\n }\n}\n\nconst getReplacePayload = (data: ItemInjectionFieldReplaceProps[\"data\"]) => {\n\n let { module, ref } = data\n\n let payload: Record<string, any> = {};\n\n payload = {\n ...payload,\n ...{\n [`${ModelItemInjectionFieldFields.field_module}`]: module,\n [`${ModelItemInjectionFieldFields.field_ref}`]: ref,\n }\n }\n\n if (\"itemId\" in data) {\n payload = { ...payload, ...(data?.itemId ? { [`${ModelItemInjectionFieldFields.item_id}`]: data.itemId } : {}) }\n }\n\n if (\"productId\" in data) {\n payload = { ...payload, ...(data?.productId ? { [`${ModelItemInjectionFieldFields.product_id}`]: data.productId } : {}) }\n }\n\n if (\"brandId\" in data) {\n payload = { ...payload, ...(data?.brandId ? { [`${ModelItemInjectionFieldFields.brand_id}`]: data.brandId } : {}) }\n }\n\n if (\"uomId\" in data) {\n payload = { ...payload, ...(data?.uomId ? { [`${ModelItemInjectionFieldFields.uom_id}`]: data.uomId } : {}) }\n }\n\n if (\"categoryId\" in data) {\n payload = { ...payload, ...(data?.categoryId ? { [`${ModelItemInjectionFieldFields.category_id}`]: data.categoryId } : {}) }\n }\n\n const rest = data.fields\n\n // apply dynamic prefix: refPrefix_modulePrefix_fieldKey\n const refPrefix = itemRefPrefixMap[ref as keyof typeof itemRefPrefixMap] ?? ref;\n const modulePrefix = itemModulePrefixMap[module as ItemInjectionFieldModule] ?? module;\n\n for (const [key, value] of Object.entries(rest)) {\n payload[`${refPrefix}_${modulePrefix}_${key}`] = value;\n }\n\n return payload\n\n}\n\nexport const ItemInjectionFieldService = (props: ItemInjectionFieldServiceProps) => {\n\n const {\n prisma,\n accountId = 0,\n actionUserId = 0\n } = props\n\n const itemInjectionFieldModel = ItemInjectionFieldModel({ prisma, accountId, actionUserId })\n\n const replaceItemInjectionField = async ({ data }: ItemInjectionFieldReplaceProps) => {\n\n const _data = getReplacePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n let where: Record<string, any> = {\n [ModelItemInjectionFieldFields.field_module]: data.module,\n [ModelItemInjectionFieldFields.field_ref]: data.ref,\n };\n\n if (\"itemId\" in data) {\n where = { ...where, ...(data?.itemId ? { [ModelItemInjectionFieldFields.item_id]: data.itemId } : {}) }\n }\n\n if (\"productId\" in data) {\n where = { ...where, ...(data?.productId ? { [ModelItemInjectionFieldFields.product_id]: data.productId } : {}) }\n }\n\n if (\"brandId\" in data) {\n where = { ...where, ...(data?.brandId ? { [ModelItemInjectionFieldFields.brand_id]: data.brandId } : {}) }\n }\n\n if (\"categoryId\" in data) {\n where = { ...where, ...(data?.categoryId ? { [ModelItemInjectionFieldFields.category_id]: data.categoryId } : {}) }\n }\n\n if (\"uomId\" in data) {\n where = { ...where, ...(data?.uomId ? { [ModelItemInjectionFieldFields.uom_id]: data.uomId } : {}) }\n }\n\n let modelFields = await itemInjectionFieldModel.getFields()\n\n let finalData = convertPayloadByTableSchema(_data, modelFields)\n\n // console.log('modelFields', modelFields)\n // console.log('finalData', finalData)\n\n // check the request fields are in the exactly schema\n const resultInvalidFields = validateModelFieldsWithData(modelFields, finalData)\n\n if (resultInvalidFields.length > 0) {\n throw Error(`Invalid injection fields: ${resultInvalidFields.join(\", \")} (Request: ${Object.keys(finalData).join(\", \")})`)\n }\n\n // check the record exists\n let exists = await itemInjectionFieldModel.get({ where })\n\n let response: any = {}\n\n if (exists) { // update existing\n\n // remove unwanted to override\n delete finalData.field_module;\n delete finalData.field_ref;\n delete finalData.item_id;\n delete finalData.product_id;\n delete finalData.brand_id;\n delete finalData.category_id;\n delete finalData.uom_id;\n\n response = await itemInjectionFieldModel.update({ data: finalData, where, disableRollback: true })\n } else { // create new\n response = await itemInjectionFieldModel.create({ data: finalData })\n }\n\n return response\n }\n\n return {\n replaceItemInjectionField\n }\n\n}\n\n\n"]}
@@ -27,19 +27,6 @@ export type LogisticInjectionFieldReplaceProps = {
27
27
  };
28
28
  };
29
29
  export declare const LogisticInjectionFieldService: (props: LogisticInjectionFieldServiceProps) => {
30
- replaceLogisticInjectionField: ({ data }: LogisticInjectionFieldReplaceProps) => Promise<{
31
- createdatetime: Date | null;
32
- createuserid: bigint;
33
- updatedatetime: Date | null;
34
- updateuserid: bigint;
35
- isdelete: boolean | null;
36
- istrash: boolean | null;
37
- accountid: bigint;
38
- field_module: string | null;
39
- field_ref: string | null;
40
- logistic_injection_field_id: bigint;
41
- logistic_id: bigint;
42
- lgt_tpt_repo_t3e2s2: import("@prisma/client/runtime/library").Decimal | null;
43
- }>;
30
+ replaceLogisticInjectionField: ({ data }: LogisticInjectionFieldReplaceProps) => Promise<any>;
44
31
  };
45
32
  export {};
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // import { logError, throwError } from "../../utils";
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.LogisticInjectionFieldService = exports.logisticRefPrefixMap = exports.logisticModulePrefixMap = void 0;
5
4
  const models_1 = require("../../models");
@@ -60,9 +59,27 @@ const LogisticInjectionFieldService = (props) => {
60
59
  // }
61
60
  let modelFields = await logisticInjectionFieldModel.getFields();
62
61
  let finalData = (0, utils_1.convertPayloadByTableSchema)(_data, modelFields);
63
- console.log('modelFields', modelFields);
64
- console.log('finalData', finalData);
65
- const response = await logisticInjectionFieldModel.update({ data: finalData, where });
62
+ // console.log('modelFields', modelFields)
63
+ // console.log('finalData', finalData)
64
+ // check the request fields are in the exactly schema
65
+ const resultInvalidFields = (0, utils_1.validateModelFieldsWithData)(modelFields, finalData);
66
+ if (resultInvalidFields.length > 0) {
67
+ throw Error(`Invalid injection fields: ${resultInvalidFields.join(", ")} (Request: ${Object.keys(finalData).join(", ")})`);
68
+ }
69
+ // check the record exists
70
+ let exists = await logisticInjectionFieldModel.get({ where });
71
+ let response = {};
72
+ if (exists) { // update existing
73
+ // remove unwanted to override
74
+ delete finalData.field_module;
75
+ delete finalData.field_ref;
76
+ delete finalData.user_id;
77
+ delete finalData.branch_id;
78
+ response = await logisticInjectionFieldModel.update({ data: finalData, where, disableRollback: true });
79
+ }
80
+ else { // create new
81
+ response = await logisticInjectionFieldModel.create({ data: finalData });
82
+ }
66
83
  return response;
67
84
  };
68
85
  return {