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.
- package/dist/controllers/injection_field/injectionFieldController.js +48 -27
- package/dist/controllers/injection_field/injectionFieldController.js.map +1 -1
- package/dist/models/ModelFactory.d.ts +2 -1
- package/dist/models/ModelFactory.js +12 -6
- package/dist/models/ModelFactory.js.map +1 -1
- package/dist/models/account/AccountModel.d.ts +2 -1
- package/dist/models/branch/BranchModel.d.ts +2 -1
- package/dist/models/branch_user/BranchUserModel.d.ts +2 -1
- package/dist/models/business/BusinessModel.d.ts +2 -1
- package/dist/models/group/GroupModel.d.ts +2 -1
- package/dist/models/group/GroupOwnerModel.d.ts +2 -1
- package/dist/models/injection_field/DocumentInjectionFieldModel.d.ts +2 -1
- package/dist/models/injection_field/InjectionFieldModel.d.ts +2 -1
- package/dist/models/injection_field/ItemInjectionFieldModel.d.ts +2 -1
- package/dist/models/injection_field/LogisticInjectionFieldModel.d.ts +2 -1
- package/dist/models/injection_field/RepositoryInjectionFieldModel.d.ts +2 -1
- package/dist/models/injection_field/UserInjectionFieldModel.d.ts +2 -1
- package/dist/models/item/BrandModel.d.ts +2 -1
- package/dist/models/item/CategoryModel.d.ts +2 -1
- package/dist/models/item/ItemModel.d.ts +2 -1
- package/dist/models/item/ProductModel.d.ts +2 -1
- package/dist/models/item/UomModel.d.ts +2 -1
- package/dist/models/location/LocationModel.d.ts +2 -1
- package/dist/models/location/LocationRackModel.d.ts +2 -1
- package/dist/models/location/LocationSlotModel.d.ts +2 -1
- package/dist/models/region/AreaModel.d.ts +2 -1
- package/dist/models/region/CountryModel.d.ts +2 -1
- package/dist/models/region/StateModel.d.ts +2 -1
- package/dist/models/user/AdministratorModel.d.ts +2 -1
- package/dist/models/user/CustomerModel.d.ts +2 -1
- package/dist/models/user/RetailerModel.d.ts +2 -1
- package/dist/models/user/UserModel.d.ts +2 -1
- package/dist/models/user/UserPropModel.d.ts +2 -1
- package/dist/models/user/UserStatusModel.d.ts +2 -1
- package/dist/models/user/WorkerModel.d.ts +2 -1
- package/dist/schema/payload/injection_field/schemaInjectionField.d.ts +509 -33
- package/dist/schema/payload/injection_field/schemaInjectionField.js +53 -23
- package/dist/schema/payload/injection_field/schemaInjectionField.js.map +1 -1
- package/dist/services/injection_field/DocumentInjectionFieldService.d.ts +1 -53
- package/dist/services/injection_field/DocumentInjectionFieldService.js +21 -4
- package/dist/services/injection_field/DocumentInjectionFieldService.js.map +1 -1
- package/dist/services/injection_field/ItemInjectionFieldService.d.ts +5 -54
- package/dist/services/injection_field/ItemInjectionFieldService.js +54 -12
- package/dist/services/injection_field/ItemInjectionFieldService.js.map +1 -1
- package/dist/services/injection_field/LogisticInjectionFieldService.d.ts +1 -14
- package/dist/services/injection_field/LogisticInjectionFieldService.js +21 -4
- package/dist/services/injection_field/LogisticInjectionFieldService.js.map +1 -1
- package/dist/services/injection_field/RepositoryInjectionFieldService.d.ts +1 -19
- package/dist/services/injection_field/RepositoryInjectionFieldService.js +21 -4
- package/dist/services/injection_field/RepositoryInjectionFieldService.js.map +1 -1
- package/dist/services/injection_field/UserInjectionFieldService.d.ts +1 -29
- package/dist/services/injection_field/UserInjectionFieldService.js +21 -4
- package/dist/services/injection_field/UserInjectionFieldService.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/schemaUtils.d.ts +1 -0
- package/dist/utils/schemaUtils.js +14 -1
- package/dist/utils/schemaUtils.js.map +1 -1
- 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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
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(
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"DocumentInjectionFieldService.js","sourceRoot":"","sources":["../../../src/services/injection_field/DocumentInjectionFieldService.ts"],"names":[],"mappings":"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","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
|
-
|
|
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
|
-
|
|
15
|
+
brandId: any;
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
18
|
category: {
|
|
19
19
|
item: {
|
|
20
|
-
|
|
20
|
+
categoryId: any;
|
|
21
21
|
};
|
|
22
22
|
};
|
|
23
23
|
uom: {
|
|
24
24
|
item: {
|
|
25
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 {
|