storemw-core-api 1.0.76 → 1.0.78
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InjectionFieldService.js","sourceRoot":"","sources":["../../../src/services/injection_field/InjectionFieldService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport { InjectionFieldModel, ModelInjectionFieldFields, ModelUserFields, InjectionFieldTargetTableName, ItemInjectionFieldModel } from \"@/models\";\nimport { UserInjectionFieldService, UserInjectionFieldReplaceProps, UserInjectionFieldModuleRef, userModulePrefixMap, userRefPrefixMap } from \"./UserInjectionFieldService\";\nimport { ItemInjectionFieldService, ItemInjectionFieldReplaceProps, ItemInjectionFieldModuleRef, itemModulePrefixMap, itemRefPrefixMap } from \"./ItemInjectionFieldService\";\nimport { RepositoryInjectionFieldService, RepositoryInjectionFieldReplaceProps, RepositoryInjectionFieldModuleRef, repositoryModulePrefixMap, repositoryRefPrefixMap } from \"./RepositoryInjectionFieldService\";\nimport { LogisticInjectionFieldService, LogisticInjectionFieldReplaceProps, LogisticInjectionFieldModuleRef, logisticModulePrefixMap, logisticRefPrefixMap } from \"./LogisticInjectionFieldService\";\nimport { DocumentInjectionFieldService, DocumentInjectionFieldReplaceProps, DocumentInjectionFieldModuleRef, documentModulePrefixMap, documentRefPrefixMap } from \"./DocumentInjectionFieldService\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { buildSqlRawSelect, buildSqlWhere, buildSqlRelation, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\nimport { DefaultServiceProps, buildFullFieldName } from \"@/utils\";\n\nexport const injectionFieldTypes = {\n user: \"user\",\n item: \"item\",\n document: \"document\",\n repository: \"repository\",\n logistic: \"logistic\",\n} as const\n\nexport type InjectionFieldType = typeof injectionFieldTypes[keyof typeof injectionFieldTypes]\n\nexport const injectionFieldDataTypes = {\n id: \"id\",\n value: \"value\",\n numeric: \"numeric\",\n integer: \"integer\",\n timestamp: \"timestamp\",\n date: \"date\",\n date_time: \"date_time\",\n text: \"text\"\n} as const\n\nexport type InjectionFieldDataType = typeof injectionFieldDataTypes[keyof typeof injectionFieldDataTypes]\n\nconst modulePrefixMap = {\n ...userModulePrefixMap,\n ...documentModulePrefixMap,\n ...repositoryModulePrefixMap,\n ...itemModulePrefixMap,\n ...logisticModulePrefixMap\n};\n\nconst refPrefixMap = {\n ...userRefPrefixMap,\n ...documentRefPrefixMap,\n ...repositoryRefPrefixMap,\n ...itemRefPrefixMap,\n ...logisticRefPrefixMap\n};\n\nexport type InjectionFieldServiceProps = DefaultServiceProps & {\n injectionFieldType: InjectionFieldType,\n};\n\nexport type InjectionFieldGetProps = QueryGet & {\n id: number,\n};\n\nexport type InjectionFieldListProps = QueryList & {\n // id: number,\n};\n\nexport type InjectionFieldRemoveProps = {\n injectionFieldIds: BigInt[]\n};\n\ntype RenameModuleRef<T extends { module: any; ref: any }> =\n T extends any\n ? { field_module: T[\"module\"]; field_ref: T[\"ref\"] }\n : never;\n\n// Apply to the whole union\nexport type InjectionFieldModuleRef = (\n RenameModuleRef<\n UserInjectionFieldModuleRef\n | ItemInjectionFieldModuleRef\n | DocumentInjectionFieldModuleRef\n | RepositoryInjectionFieldModuleRef\n | LogisticInjectionFieldModuleRef\n >\n)\n\nexport type InjectionFieldCreateProps = {\n data: InjectionFieldModuleRef &\n {\n field_key: string\n // fieldName: string\n field_type: InjectionFieldDataType\n is_multiple: false // hardcode\n multiple_count: false // hardcode\n merge_multiple_inline: false // hardcode\n }\n}\n\n// sample\n// let c: InjectionFieldCreateProps = {\n// data: {\n// field_ref: \"item\",\n// field_module: \"product\",\n// field_type: \"date\",\n// field_key: \"aaa\",\n// // field_name: \"sdfds\",\n// is_multiple: false,\n// merge_multiple_inline: false,\n// multiple_count: false\n// }\n// }\n\nexport type InjectionFieldReplaceProps = {\n injectionFieldType?: InjectionFieldType,\n data:\n // user\n | UserInjectionFieldReplaceProps[\"data\"]\n // item\n | ItemInjectionFieldReplaceProps[\"data\"]\n // document\n | DocumentInjectionFieldReplaceProps[\"data\"]\n // repository\n | RepositoryInjectionFieldReplaceProps[\"data\"]\n // logistic\n | LogisticInjectionFieldReplaceProps[\"data\"]\n}\n\nconst getCreatePayload = (data: InjectionFieldCreateProps[\"data\"], fieldName: string) => {\n\n return {\n [`${ModelInjectionFieldFields.field_key}`]: data.field_key,\n [`${ModelInjectionFieldFields.field_module}`]: data.field_module,\n [`${ModelInjectionFieldFields.field_name}`]: `${fieldName}`,\n [`${ModelInjectionFieldFields.field_ref}`]: data.field_ref,\n [`${ModelInjectionFieldFields.field_type}`]: data.field_type,\n [`${ModelInjectionFieldFields.is_multiple}`]: 0,\n [`${ModelInjectionFieldFields.multiple_count}`]: 0,\n [`${ModelInjectionFieldFields.merge_multiple_inline}`]: 0,\n }\n\n}\n\nlet mainSqlSelect = {\n [`injf.${ModelInjectionFieldFields.field_key}`]: \"field_key\",\n [`injf.${ModelInjectionFieldFields.field_module}`]: \"field_module\",\n [`injf.${ModelInjectionFieldFields.field_name}`]: \"field_name\",\n [`injf.${ModelInjectionFieldFields.field_ref}`]: \"field_ref\",\n [`injf.${ModelInjectionFieldFields.field_type}`]: \"field_type\",\n [`injf.${ModelInjectionFieldFields.injection_field_id}`]: \"injection_field_id\",\n [`injf.${ModelInjectionFieldFields.is_multiple}`]: \"is_multiple\",\n [`injf.${ModelInjectionFieldFields.merge_multiple_inline}`]: \"merge_multiple_inline\",\n [`injf.${ModelInjectionFieldFields.multiple_count}`]: \"multiple_count\",\n}\n\nlet defaultSqlSelect = {\n [`injf.${ModelInjectionFieldFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`injf.${ModelInjectionFieldFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`injf.${ModelInjectionFieldFields.isdelete}`]: \"isdelete\",\n [`injf.${ModelInjectionFieldFields.istrash}`]: \"istrash\",\n [`injf.${ModelInjectionFieldFields.accountid}`]: \"accountid\",\n}\n\nconst getTargetTableName = (fieldRef: keyof typeof refPrefixMap) => {\n\n let targetTableName = ``\n\n if (fieldRef in userRefPrefixMap) {\n targetTableName = \"user_injection_fields\"\n }\n\n if (fieldRef in documentRefPrefixMap) {\n targetTableName = \"document_injection_fields\"\n }\n\n if (fieldRef in itemRefPrefixMap) {\n targetTableName = \"item_injection_fields\"\n }\n\n if (fieldRef in logisticRefPrefixMap) {\n targetTableName = \"logistic_injection_fields\"\n }\n\n if (fieldRef in repositoryRefPrefixMap) {\n targetTableName = \"repository_injection_fields\"\n }\n\n return targetTableName\n}\n\nexport const InjectionFieldService = (props: InjectionFieldServiceProps) => {\n\n const {\n injectionFieldType = \"user\",\n // prisma,\n // accountId = 0,\n // actionUserId = 0,\n ...rest\n } = props\n\n const injectionFieldModel = InjectionFieldModel({ ...rest })\n\n const userInjectionFieldService = UserInjectionFieldService({ ...rest })\n const documentInjectionFieldService = DocumentInjectionFieldService({ ...rest })\n const repositoryInjectionFieldService = RepositoryInjectionFieldService({ ...rest })\n const logisticInjectionFieldService = LogisticInjectionFieldService({ ...rest })\n const itemInjectionFieldService = ItemInjectionFieldService({ ...rest })\n\n const createInjectionField = async ({ data }: InjectionFieldCreateProps) => {\n\n const fieldName = buildFullFieldName(`${data.field_ref}`, `${data.field_module}`, `${data.field_key}`, refPrefixMap, modulePrefixMap)\n\n // have to check the record exists\n const existing = await listInjectionFields({\n offset: 0,\n limit: 1,\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n filters: [{\n field: `${ModelInjectionFieldFields.field_name}`,\n operator: '=',\n value: `${fieldName}`\n }],\n datatypes: []\n })\n\n if (existing.data.length > 0) {\n throw new Error(`Duplicated injection field name found : ${fieldName}`);\n }\n\n const _data = getCreatePayload(data, fieldName)\n\n if (!_data) {\n throw new Error(`Invalid create injection field payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await injectionFieldModel.create({ data: _data })\n\n let fieldRef = response?.field_ref ?? \"\"\n\n if (fieldRef) {\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n // after create record - create physical table fields\n injectionFieldModel.createInjectionFieldIntoTable(targetTableName, fieldName, data.field_type)\n }\n\n return response\n }\n\n const getInjectionField = async ({ id, datatypes = [] }: InjectionFieldGetProps) => {\n\n let { data } = await listInjectionFields({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelInjectionFieldFields.injection_field_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listInjectionFields = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: InjectionFieldListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(injf.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"injf\", \"users\", \"creator\", [\"injf.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"injf\", \"users\", \"updater\", [\"injf.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n let sqlWhere = [\n `injf.isdelete = false`,\n `injf.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"injection_fields\",\n mainAlias: \"injf\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await injectionFieldModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const replaceInjectionField = async ({ data, injectionFieldType: overrideInjectionFieldType }: InjectionFieldReplaceProps) => {\n\n const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n\n const _data = data\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n let response: any = {}\n\n if (_injectionFieldType === \"user\") {\n response = await userInjectionFieldService.replaceUserInjectionField({ data: _data as UserInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"document\") {\n response = await documentInjectionFieldService.replaceDocumentInjectionField({ data: _data as DocumentInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"item\") {\n response = await itemInjectionFieldService.replaceItemInjectionField({ data: _data as ItemInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"repository\") {\n response = await repositoryInjectionFieldService.replaceRepositoryInjectionField({ data: _data as RepositoryInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"logistic\") {\n response = await logisticInjectionFieldService.replaceLogisticInjectionField({ data: _data as LogisticInjectionFieldReplaceProps[\"data\"] })\n }\n\n return response\n }\n\n const removeInjectionFields = async ({ injectionFieldIds }: InjectionFieldRemoveProps) => {\n\n if (!injectionFieldIds.length) throwError('injectionFieldIds is required');\n\n await Promise.all(\n injectionFieldIds.map(async (id) => {\n // suspend the field in table\n const current = await getInjectionField({ id: Number(id), datatypes: [] });\n const currentFieldName = current?.field_name ?? \"\";\n\n let fieldRef = current?.field_ref ?? \"\"\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n if (currentFieldName) {\n await injectionFieldModel.suspendInjectionFieldFromTable(targetTableName, currentFieldName);\n }\n })\n );\n\n const response = await injectionFieldModel.remove({ where: { [`${ModelInjectionFieldFields.injection_field_id}`]: { in: injectionFieldIds } } });\n\n return response\n };\n\n const listActiveInjectionFields = async (fieldRef: keyof typeof refPrefixMap, fieldModule: keyof typeof modulePrefixMap) => {\n\n // const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n // let current: any = []\n\n // if (_injectionFieldType === injectionFieldTypes.item) {\n // const injectionFieldModel = ItemInjectionFieldModel({ ...rest })\n // current = await injectionFieldModel.getFields('', [\"removed_\"])\n // }\n\n let { data } = await listInjectionFields({\n limit: 100,\n offset: 0,\n filters: [\n { field: `${ModelInjectionFieldFields.field_ref}`, operator: \"=\", value: fieldRef },\n { field: `${ModelInjectionFieldFields.field_module}`, operator: \"=\", value: fieldModule },\n ],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n // return data[0] ?? null;\n\n return data.map(i => ({\n fieldName: i.field_name,\n fieldType: i.field_type\n }))\n\n }\n\n return {\n createInjectionField,\n getInjectionField,\n replaceInjectionField,\n listInjectionFields,\n removeInjectionFields,\n listActiveInjectionFields,\n }\n\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"InjectionFieldService.js","sourceRoot":"","sources":["../../../src/services/injection_field/InjectionFieldService.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,qCAAmJ;AACnJ,2EAA4K;AAC5K,2EAA4K;AAC5K,uFAAgN;AAChN,mFAAoM;AACpM,mFAAoM;AAIpM,+BAAiI;AACjI,mCAAkE;AAErD,QAAA,mBAAmB,GAAG;IAC/B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;CACd,CAAA;AAIG,QAAA,uBAAuB,GAAG;IACnC,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;CACN,CAAA;AAIV,MAAM,eAAe,GAAG;IACpB,GAAG,+CAAmB;IACtB,GAAG,uDAAuB;IAC1B,GAAG,2DAAyB;IAC5B,GAAG,+CAAmB;IACtB,GAAG,uDAAuB;CAC7B,CAAC;AAEF,MAAM,YAAY,GAAG;IACjB,GAAG,4CAAgB;IACnB,GAAG,oDAAoB;IACvB,GAAG,wDAAsB;IACzB,GAAG,4CAAgB;IACnB,GAAG,oDAAoB;CAC1B,CAAC;AA2EF,MAAM,gBAAgB,GAAG,CAAC,IAAuC,EAAE,SAAiB,EAAE,EAAE;IAEpF,OAAO;QACH,CAAC,GAAG,kCAAyB,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS;QAC1D,CAAC,GAAG,kCAAyB,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY;QAChE,CAAC,GAAG,kCAAyB,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE;QAC3D,CAAC,GAAG,kCAAyB,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS;QAC1D,CAAC,GAAG,kCAAyB,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU;QAC5D,CAAC,GAAG,kCAAyB,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QAC/C,CAAC,GAAG,kCAAyB,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC;QAClD,CAAC,GAAG,kCAAyB,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC;KAC5D,CAAA;AAEL,CAAC,CAAA;AAED,IAAI,aAAa,GAAG;IAChB,CAAC,QAAQ,kCAAyB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;IAC5D,CAAC,QAAQ,kCAAyB,CAAC,YAAY,EAAE,CAAC,EAAE,cAAc;IAClE,CAAC,QAAQ,kCAAyB,CAAC,UAAU,EAAE,CAAC,EAAE,YAAY;IAC9D,CAAC,QAAQ,kCAAyB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;IAC5D,CAAC,QAAQ,kCAAyB,CAAC,UAAU,EAAE,CAAC,EAAE,YAAY;IAC9D,CAAC,QAAQ,kCAAyB,CAAC,kBAAkB,EAAE,CAAC,EAAE,oBAAoB;IAC9E,CAAC,QAAQ,kCAAyB,CAAC,WAAW,EAAE,CAAC,EAAE,aAAa;IAChE,CAAC,QAAQ,kCAAyB,CAAC,qBAAqB,EAAE,CAAC,EAAE,uBAAuB;IACpF,CAAC,QAAQ,kCAAyB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;CACzE,CAAA;AAED,IAAI,gBAAgB,GAAG;IACnB,CAAC,QAAQ,kCAAyB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IACtE,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,QAAQ,kCAAyB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IACtE,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,QAAQ,kCAAyB,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;IAC1D,CAAC,QAAQ,kCAAyB,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IACxD,CAAC,QAAQ,kCAAyB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;CAC/D,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,QAAmC,EAAE,EAAE;IAE/D,IAAI,eAAe,GAAG,EAAE,CAAA;IAExB,IAAI,QAAQ,IAAI,4CAAgB,EAAE,CAAC;QAC/B,eAAe,GAAG,uBAAuB,CAAA;IAC7C,CAAC;IAED,IAAI,QAAQ,IAAI,oDAAoB,EAAE,CAAC;QACnC,eAAe,GAAG,2BAA2B,CAAA;IACjD,CAAC;IAED,IAAI,QAAQ,IAAI,4CAAgB,EAAE,CAAC;QAC/B,eAAe,GAAG,uBAAuB,CAAA;IAC7C,CAAC;IAED,IAAI,QAAQ,IAAI,oDAAoB,EAAE,CAAC;QACnC,eAAe,GAAG,2BAA2B,CAAA;IACjD,CAAC;IAED,IAAI,QAAQ,IAAI,wDAAsB,EAAE,CAAC;QACrC,eAAe,GAAG,6BAA6B,CAAA;IACnD,CAAC;IAED,OAAO,eAAe,CAAA;AAC1B,CAAC,CAAA;AAEM,MAAM,qBAAqB,GAAG,CAAC,KAAiC,EAAE,EAAE;IAEvE,MAAM,EACF,kBAAkB,GAAG,MAAM;IAC3B,UAAU;IACV,iBAAiB;IACjB,oBAAoB;IACpB,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,mBAAmB,GAAG,IAAA,4BAAmB,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAE5D,MAAM,yBAAyB,GAAG,IAAA,qDAAyB,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IACxE,MAAM,6BAA6B,GAAG,IAAA,6DAA6B,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAChF,MAAM,+BAA+B,GAAG,IAAA,iEAA+B,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IACpF,MAAM,6BAA6B,GAAG,IAAA,6DAA6B,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAChF,MAAM,yBAAyB,GAAG,IAAA,qDAAyB,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAExE,MAAM,oBAAoB,GAAG,KAAK,EAAE,EAAE,IAAI,EAA6B,EAAE,EAAE;QAEvE,MAAM,SAAS,GAAG,IAAA,0BAAkB,EAAC,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,eAAe,CAAC,CAAA;QAErI,kCAAkC;QAClC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC;YACvC,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,GAAG,kCAAyB,CAAC,kBAAkB,EAAE;YAC5D,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,CAAC;oBACN,KAAK,EAAE,GAAG,kCAAyB,CAAC,UAAU,EAAE;oBAChD,QAAQ,EAAE,GAAG;oBACb,KAAK,EAAE,GAAG,SAAS,EAAE;iBACxB,CAAC;YACF,SAAS,EAAE,EAAE;SAChB,CAAC,CAAA;QAEF,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,2CAA2C,SAAS,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAE/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAEhE,IAAI,QAAQ,GAAG,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAA;QAExC,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,eAAe,GAAG,kBAAkB,CAAC,QAAqC,CAAkC,CAAA;YAEhH,qDAAqD;YACrD,mBAAmB,CAAC,6BAA6B,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAClG,CAAC;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,GAAG,EAAE,EAA0B,EAAE,EAAE;QAE/E,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,mBAAmB,CAAC;YACrC,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,kCAAyB,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACjG,SAAS,EAAE,GAAG,kCAAyB,CAAC,kBAAkB,EAAE;YAC5D,SAAS,EAAE,KAAK;YAChB,SAAS;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3B,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,KAAK,EAAE,EAC/B,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,GAAG,EAAE,EACQ,EAAE,EAAE;QAE1B,IAAI,IAAI,GAAG,EAAE,CAAA;QAEb,IAAI,SAAS,GAAG;YACZ,wCAAwC;YACxC,IAAA,oBAAc,EAAC,EAAE,EAAE,aAAa,CAAC;YACjC,IAAA,oBAAc,EAAC,EAAE,EAAE,gBAAgB,CAAC;SACvC,CAAA;QAED,IAAI,WAAW,GAAG;YACd,IAAA,sBAAgB,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,qCAAqC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;YACpJ,IAAA,sBAAgB,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,qCAAqC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;SACvJ,CAAA;QAED,IAAI,UAAU,GAAa,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;QAE5F,IAAI,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAA;QAE7D,IAAI,QAAQ,GAAG;YACX,uBAAuB;YACvB,sBAAsB;YACtB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAa,EAAC,OAAO,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAA;QAED,IAAI,UAAU,GAAG,IAAA,qBAAe,EAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QACtD,IAAI,cAAc,GAAG,IAAA,yBAAmB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAEvD,MAAM,MAAM,GAAG,IAAA,uBAAiB,EAAC;YAC7B,SAAS,EAAE,kBAAkB;YAC7B,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS;YACT,WAAW;YACX,QAAQ;YACR,UAAU;YACV,UAAU;YACV,cAAc;YACd,mBAAmB,EAAE,IAAI;SAC5B,CAAC,CAAA;QAEF,IAAI,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAE5C,MAAM,QAAQ,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;YACrD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1D,CAAA;QAED,OAAO,QAAQ,CAAA;IAEnB,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,0BAA0B,EAA8B,EAAE,EAAE;QAEzH,MAAM,mBAAmB,GAAG,0BAA0B,IAAI,kBAAkB,CAAA;QAE5E,MAAM,KAAK,GAAG,IAAI,CAAA;QAElB,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,QAAQ,GAAQ,EAAE,CAAA;QAEtB,IAAI,mBAAmB,KAAK,MAAM,EAAE,CAAC;YACjC,QAAQ,GAAG,MAAM,yBAAyB,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,KAA+C,EAAE,CAAC,CAAA;QACnI,CAAC;QAED,IAAI,mBAAmB,KAAK,UAAU,EAAE,CAAC;YACrC,QAAQ,GAAG,MAAM,6BAA6B,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,KAAmD,EAAE,CAAC,CAAA;QAC/I,CAAC;QAED,IAAI,mBAAmB,KAAK,MAAM,EAAE,CAAC;YACjC,QAAQ,GAAG,MAAM,yBAAyB,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,KAA+C,EAAE,CAAC,CAAA;QACnI,CAAC;QAED,IAAI,mBAAmB,KAAK,YAAY,EAAE,CAAC;YACvC,QAAQ,GAAG,MAAM,+BAA+B,CAAC,+BAA+B,CAAC,EAAE,IAAI,EAAE,KAAqD,EAAE,CAAC,CAAA;QACrJ,CAAC;QAED,IAAI,mBAAmB,KAAK,UAAU,EAAE,CAAC;YACrC,QAAQ,GAAG,MAAM,6BAA6B,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,KAAmD,EAAE,CAAC,CAAA;QAC/I,CAAC;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAE,iBAAiB,EAA6B,EAAE,EAAE;QAErF,IAAI,CAAC,iBAAiB,CAAC,MAAM;YAAE,IAAA,kBAAU,EAAC,+BAA+B,CAAC,CAAC;QAE3E,MAAM,OAAO,CAAC,GAAG,CACb,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YAC/B,6BAA6B;YAC7B,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3E,MAAM,gBAAgB,GAAG,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC;YAEnD,IAAI,QAAQ,GAAG,OAAO,EAAE,SAAS,IAAI,EAAE,CAAA;YACvC,IAAI,eAAe,GAAG,kBAAkB,CAAC,QAAqC,CAAkC,CAAA;YAEhH,IAAI,gBAAgB,EAAE,CAAC;gBACnB,MAAM,mBAAmB,CAAC,8BAA8B,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;YAChG,CAAC;QACL,CAAC,CAAC,CACL,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,kCAAyB,CAAC,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;QAEjJ,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;IAEF,MAAM,yBAAyB,GAAG,KAAK,EAAE,QAAmC,EAAE,WAAyC,EAAE,EAAE;QAEvH,+EAA+E;QAC/E,wBAAwB;QAExB,0DAA0D;QAC1D,uEAAuE;QACvE,sEAAsE;QACtE,IAAI;QAEJ,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,mBAAmB,CAAC;YACrC,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE;gBACL,EAAE,KAAK,EAAE,GAAG,kCAAyB,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACnF,EAAE,KAAK,EAAE,GAAG,kCAAyB,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE;aAC5F;YACD,SAAS,EAAE,GAAG,kCAAyB,CAAC,kBAAkB,EAAE;YAC5D,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,EAAE;SAChB,CAAC,CAAA;QAEF,0BAA0B;QAE1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAClB,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,SAAS,EAAE,CAAC,CAAC,UAAU;SAC1B,CAAC,CAAC,CAAA;IAEP,CAAC,CAAA;IAED,OAAO;QACH,oBAAoB;QACpB,iBAAiB;QACjB,qBAAqB;QACrB,mBAAmB;QACnB,qBAAqB;QACrB,yBAAyB;KAC5B,CAAA;AAEL,CAAC,CAAA;AAzOY,QAAA,qBAAqB,yBAyOjC","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport { InjectionFieldModel, ModelInjectionFieldFields, ModelUserFields, InjectionFieldTargetTableName, ItemInjectionFieldModel } from \"@/models\";\nimport { UserInjectionFieldService, UserInjectionFieldReplaceProps, UserInjectionFieldModuleRef, userModulePrefixMap, userRefPrefixMap } from \"./UserInjectionFieldService\";\nimport { ItemInjectionFieldService, ItemInjectionFieldReplaceProps, ItemInjectionFieldModuleRef, itemModulePrefixMap, itemRefPrefixMap } from \"./ItemInjectionFieldService\";\nimport { RepositoryInjectionFieldService, RepositoryInjectionFieldReplaceProps, RepositoryInjectionFieldModuleRef, repositoryModulePrefixMap, repositoryRefPrefixMap } from \"./RepositoryInjectionFieldService\";\nimport { LogisticInjectionFieldService, LogisticInjectionFieldReplaceProps, LogisticInjectionFieldModuleRef, logisticModulePrefixMap, logisticRefPrefixMap } from \"./LogisticInjectionFieldService\";\nimport { DocumentInjectionFieldService, DocumentInjectionFieldReplaceProps, DocumentInjectionFieldModuleRef, documentModulePrefixMap, documentRefPrefixMap } from \"./DocumentInjectionFieldService\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { buildSqlRawSelect, buildSqlWhere, buildSqlRelation, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\nimport { DefaultServiceProps, buildFullFieldName } from \"@/utils\";\n\nexport const injectionFieldTypes = {\n user: \"user\",\n item: \"item\",\n document: \"document\",\n repository: \"repository\",\n logistic: \"logistic\",\n} as const\n\nexport type InjectionFieldType = typeof injectionFieldTypes[keyof typeof injectionFieldTypes]\n\nexport const injectionFieldDataTypes = {\n id: \"id\",\n value: \"value\",\n numeric: \"numeric\",\n integer: \"integer\",\n timestamp: \"timestamp\",\n date: \"date\",\n date_time: \"date_time\",\n text: \"text\"\n} as const\n\nexport type InjectionFieldDataType = typeof injectionFieldDataTypes[keyof typeof injectionFieldDataTypes]\n\nconst modulePrefixMap = {\n ...userModulePrefixMap,\n ...documentModulePrefixMap,\n ...repositoryModulePrefixMap,\n ...itemModulePrefixMap,\n ...logisticModulePrefixMap\n};\n\nconst refPrefixMap = {\n ...userRefPrefixMap,\n ...documentRefPrefixMap,\n ...repositoryRefPrefixMap,\n ...itemRefPrefixMap,\n ...logisticRefPrefixMap\n};\n\nexport type InjectionFieldServiceProps = DefaultServiceProps & {\n injectionFieldType: InjectionFieldType,\n};\n\nexport type InjectionFieldGetProps = QueryGet & {\n id: number,\n};\n\nexport type InjectionFieldListProps = QueryList & {\n // id: number,\n};\n\nexport type InjectionFieldRemoveProps = {\n injectionFieldIds: BigInt[]\n};\n\ntype RenameModuleRef<T extends { module: any; ref: any }> =\n T extends any\n ? { field_module: T[\"module\"]; field_ref: T[\"ref\"] }\n : never;\n\n// Apply to the whole union\nexport type InjectionFieldModuleRef = (\n RenameModuleRef<\n UserInjectionFieldModuleRef\n | ItemInjectionFieldModuleRef\n | DocumentInjectionFieldModuleRef\n | RepositoryInjectionFieldModuleRef\n | LogisticInjectionFieldModuleRef\n >\n)\n\nexport type InjectionFieldCreateProps = {\n data: InjectionFieldModuleRef &\n {\n field_key: string\n // fieldName: string\n field_type: InjectionFieldDataType\n is_multiple: false // hardcode\n multiple_count: false // hardcode\n merge_multiple_inline: false // hardcode\n }\n}\n\n// sample\n// let c: InjectionFieldCreateProps = {\n// data: {\n// field_ref: \"item\",\n// field_module: \"product\",\n// field_type: \"date\",\n// field_key: \"aaa\",\n// // field_name: \"sdfds\",\n// is_multiple: false,\n// merge_multiple_inline: false,\n// multiple_count: false\n// }\n// }\n\nexport type InjectionFieldReplaceProps = {\n injectionFieldType?: InjectionFieldType,\n data:\n // user\n | UserInjectionFieldReplaceProps[\"data\"]\n // item\n | ItemInjectionFieldReplaceProps[\"data\"]\n // document\n | DocumentInjectionFieldReplaceProps[\"data\"]\n // repository\n | RepositoryInjectionFieldReplaceProps[\"data\"]\n // logistic\n | LogisticInjectionFieldReplaceProps[\"data\"]\n}\n\nconst getCreatePayload = (data: InjectionFieldCreateProps[\"data\"], fieldName: string) => {\n\n return {\n [`${ModelInjectionFieldFields.field_key}`]: data.field_key,\n [`${ModelInjectionFieldFields.field_module}`]: data.field_module,\n [`${ModelInjectionFieldFields.field_name}`]: `${fieldName}`,\n [`${ModelInjectionFieldFields.field_ref}`]: data.field_ref,\n [`${ModelInjectionFieldFields.field_type}`]: data.field_type,\n [`${ModelInjectionFieldFields.is_multiple}`]: 0,\n [`${ModelInjectionFieldFields.multiple_count}`]: 0,\n [`${ModelInjectionFieldFields.merge_multiple_inline}`]: 0,\n }\n\n}\n\nlet mainSqlSelect = {\n [`injf.${ModelInjectionFieldFields.field_key}`]: \"field_key\",\n [`injf.${ModelInjectionFieldFields.field_module}`]: \"field_module\",\n [`injf.${ModelInjectionFieldFields.field_name}`]: \"field_name\",\n [`injf.${ModelInjectionFieldFields.field_ref}`]: \"field_ref\",\n [`injf.${ModelInjectionFieldFields.field_type}`]: \"field_type\",\n [`injf.${ModelInjectionFieldFields.injection_field_id}`]: \"injection_field_id\",\n [`injf.${ModelInjectionFieldFields.is_multiple}`]: \"is_multiple\",\n [`injf.${ModelInjectionFieldFields.merge_multiple_inline}`]: \"merge_multiple_inline\",\n [`injf.${ModelInjectionFieldFields.multiple_count}`]: \"multiple_count\",\n}\n\nlet defaultSqlSelect = {\n [`injf.${ModelInjectionFieldFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`injf.${ModelInjectionFieldFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`injf.${ModelInjectionFieldFields.isdelete}`]: \"isdelete\",\n [`injf.${ModelInjectionFieldFields.istrash}`]: \"istrash\",\n [`injf.${ModelInjectionFieldFields.accountid}`]: \"accountid\",\n}\n\nconst getTargetTableName = (fieldRef: keyof typeof refPrefixMap) => {\n\n let targetTableName = ``\n\n if (fieldRef in userRefPrefixMap) {\n targetTableName = \"user_injection_fields\"\n }\n\n if (fieldRef in documentRefPrefixMap) {\n targetTableName = \"document_injection_fields\"\n }\n\n if (fieldRef in itemRefPrefixMap) {\n targetTableName = \"item_injection_fields\"\n }\n\n if (fieldRef in logisticRefPrefixMap) {\n targetTableName = \"logistic_injection_fields\"\n }\n\n if (fieldRef in repositoryRefPrefixMap) {\n targetTableName = \"repository_injection_fields\"\n }\n\n return targetTableName\n}\n\nexport const InjectionFieldService = (props: InjectionFieldServiceProps) => {\n\n const {\n injectionFieldType = \"user\",\n // prisma,\n // accountId = 0,\n // actionUserId = 0,\n ...rest\n } = props\n\n const injectionFieldModel = InjectionFieldModel({ ...rest })\n\n const userInjectionFieldService = UserInjectionFieldService({ ...rest })\n const documentInjectionFieldService = DocumentInjectionFieldService({ ...rest })\n const repositoryInjectionFieldService = RepositoryInjectionFieldService({ ...rest })\n const logisticInjectionFieldService = LogisticInjectionFieldService({ ...rest })\n const itemInjectionFieldService = ItemInjectionFieldService({ ...rest })\n\n const createInjectionField = async ({ data }: InjectionFieldCreateProps) => {\n\n const fieldName = buildFullFieldName(`${data.field_ref}`, `${data.field_module}`, `${data.field_key}`, refPrefixMap, modulePrefixMap)\n\n // have to check the record exists\n const existing = await listInjectionFields({\n offset: 0,\n limit: 1,\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n filters: [{\n field: `${ModelInjectionFieldFields.field_name}`,\n operator: '=',\n value: `${fieldName}`\n }],\n datatypes: []\n })\n\n if (existing.data.length > 0) {\n throw new Error(`Duplicated injection field name found : ${fieldName}`);\n }\n\n const _data = getCreatePayload(data, fieldName)\n\n if (!_data) {\n throw new Error(`Invalid create injection field payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await injectionFieldModel.create({ data: _data })\n\n let fieldRef = response?.field_ref ?? \"\"\n\n if (fieldRef) {\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n // after create record - create physical table fields\n injectionFieldModel.createInjectionFieldIntoTable(targetTableName, fieldName, data.field_type)\n }\n\n return response\n }\n\n const getInjectionField = async ({ id, datatypes = [] }: InjectionFieldGetProps) => {\n\n let { data } = await listInjectionFields({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelInjectionFieldFields.injection_field_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listInjectionFields = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: InjectionFieldListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(injf.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"injf\", \"users\", \"creator\", [\"injf.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"injf\", \"users\", \"updater\", [\"injf.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n let sqlWhere = [\n `injf.isdelete = false`,\n `injf.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"injection_fields\",\n mainAlias: \"injf\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true\n })\n\n data = await injectionFieldModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const replaceInjectionField = async ({ data, injectionFieldType: overrideInjectionFieldType }: InjectionFieldReplaceProps) => {\n\n const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n\n const _data = data\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n let response: any = {}\n\n if (_injectionFieldType === \"user\") {\n response = await userInjectionFieldService.replaceUserInjectionField({ data: _data as UserInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"document\") {\n response = await documentInjectionFieldService.replaceDocumentInjectionField({ data: _data as DocumentInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"item\") {\n response = await itemInjectionFieldService.replaceItemInjectionField({ data: _data as ItemInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"repository\") {\n response = await repositoryInjectionFieldService.replaceRepositoryInjectionField({ data: _data as RepositoryInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"logistic\") {\n response = await logisticInjectionFieldService.replaceLogisticInjectionField({ data: _data as LogisticInjectionFieldReplaceProps[\"data\"] })\n }\n\n return response\n }\n\n const removeInjectionFields = async ({ injectionFieldIds }: InjectionFieldRemoveProps) => {\n\n if (!injectionFieldIds.length) throwError('injectionFieldIds is required');\n\n await Promise.all(\n injectionFieldIds.map(async (id) => {\n // suspend the field in table\n const current = await getInjectionField({ id: Number(id), datatypes: [] });\n const currentFieldName = current?.field_name ?? \"\";\n\n let fieldRef = current?.field_ref ?? \"\"\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n if (currentFieldName) {\n await injectionFieldModel.suspendInjectionFieldFromTable(targetTableName, currentFieldName);\n }\n })\n );\n\n const response = await injectionFieldModel.remove({ where: { [`${ModelInjectionFieldFields.injection_field_id}`]: { in: injectionFieldIds } } });\n\n return response\n };\n\n const listActiveInjectionFields = async (fieldRef: keyof typeof refPrefixMap, fieldModule: keyof typeof modulePrefixMap) => {\n\n // const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n // let current: any = []\n\n // if (_injectionFieldType === injectionFieldTypes.item) {\n // const injectionFieldModel = ItemInjectionFieldModel({ ...rest })\n // current = await injectionFieldModel.getFields('', [\"removed_\"])\n // }\n\n let { data } = await listInjectionFields({\n limit: 100,\n offset: 0,\n filters: [\n { field: `${ModelInjectionFieldFields.field_ref}`, operator: \"=\", value: fieldRef },\n { field: `${ModelInjectionFieldFields.field_module}`, operator: \"=\", value: fieldModule },\n ],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n // return data[0] ?? null;\n\n return data.map(i => ({\n fieldName: i.field_name,\n fieldType: i.field_type\n }))\n\n }\n\n return {\n createInjectionField,\n getInjectionField,\n replaceInjectionField,\n listInjectionFields,\n removeInjectionFields,\n listActiveInjectionFields,\n }\n\n}\n\n"]}
|
|
@@ -59,7 +59,7 @@ let itemSqlSelect = {
|
|
|
59
59
|
[`catg.${models_1.ModelCategoryFields.status}`]: "category_status",
|
|
60
60
|
[`catg.${models_1.ModelCategoryFields.description}`]: "category_description",
|
|
61
61
|
[`catg.${models_1.ModelCategoryFields.parent_category_id}`]: "parent_category_id",
|
|
62
|
-
[`brd.${models_1.ModelBrandFields.name}`]: "
|
|
62
|
+
[`brd.${models_1.ModelBrandFields.name}`]: "brand_name",
|
|
63
63
|
[`brd.${models_1.ModelBrandFields.status}`]: "brand_status",
|
|
64
64
|
[`brd.${models_1.ModelBrandFields.description}`]: "brand_description"
|
|
65
65
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemProductService.js","sourceRoot":"","sources":["../../../src/services/item/ItemProductService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n ProductModel,\n ModelProductFields,\n ModelCategoryFields,\n ModelBrandFields,\n ModelUomFields,\n ModelItemFields,\n ModelFileFields,\n} from \"@/models\";\n\nimport { InjectionFieldService } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nexport type ItemType = \"product\"\n\nexport const productDataTypes = {\n productInjectionFields: \"product_injection_fields\",\n itemInjectionFields: \"item_injection_fields\",\n allCategory: \"all_category\",\n allSupplier: \"all_supplier\",\n file: \"file\",\n product: \"product\"\n}\n\nexport type ItemProductDataType = keyof typeof productDataTypes;\n\nexport type ItemProductServiceProps = DefaultServiceProps & {};\n\nexport type ItemProductGetProps = QueryGet & {\n id: number,\n datatypes: ItemProductDataType[]\n};\n\nexport type ItemProductListProps = QueryList & {\n datatypes: ItemProductDataType[]\n};\n\nexport type ItemProductRemoveProps = {\n productIds: BigInt[]\n};\n\nexport type ItemProductCreateProps = {\n data:\n // product\n {\n product: {\n brandId: number\n categoryId: number\n productName: string\n model: string\n productCode: string\n description: string\n summary: string\n status: Boolean\n }\n }\n}\n\nexport type ItemProductUpdateProps = {\n productId: number,\n data:\n // product\n {\n product: {\n brandId: number\n categoryId: number\n productName: string\n model: string\n productCode: string\n description: string\n summary: string\n status: Boolean\n }\n }\n}\n\nconst getCreatePayload = (data: ItemProductCreateProps[\"data\"]) => {\n\n if (\"product\" in data) {\n\n return {\n [`${ModelProductFields.brand_id}`]: data.product.brandId,\n [`${ModelProductFields.category_id}`]: data.product.categoryId,\n [`${ModelProductFields.description}`]: data.product.description,\n [`${ModelProductFields.product_name}`]: data.product.productName,\n [`${ModelProductFields.model}`]: data.product.model,\n [`${ModelProductFields.product_code}`]: data.product.productCode,\n [`${ModelProductFields.summary}`]: data.product.summary,\n [`${ModelProductFields.status}`]: data.product.status ? 1 : 0\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: ItemProductUpdateProps[\"data\"]) => {\n\n if (\"product\" in data) {\n\n return {\n [`${ModelProductFields.brand_id}`]: data.product.brandId,\n [`${ModelProductFields.category_id}`]: data.product.categoryId,\n [`${ModelProductFields.description}`]: data.product.description,\n [`${ModelProductFields.product_name}`]: data.product.productName,\n [`${ModelProductFields.model}`]: data.product.model,\n [`${ModelProductFields.product_code}`]: data.product.productCode,\n [`${ModelProductFields.summary}`]: data.product.summary,\n [`${ModelProductFields.status}`]: data.product.status ? 1 : 0\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`prd.${ModelProductFields.product_id}`]: \"product_id\",\n [`prd.${ModelProductFields.brand_id}`]: \"brand_id\",\n [`prd.${ModelProductFields.category_id}`]: \"category_id\",\n [`prd.${ModelProductFields.description}`]: \"description\",\n [`prd.${ModelProductFields.product_name}`]: \"product_name\",\n [`prd.${ModelProductFields.model}`]: \"model\",\n [`prd.${ModelProductFields.product_code}`]: \"product_code\",\n [`prd.${ModelProductFields.status}`]: \"status\",\n [`prd.${ModelProductFields.summary}`]: \"summary\",\n}\n\nlet itemSqlSelect = {\n [`catg.${ModelCategoryFields.name}`]: \"category_name\",\n [`catg.${ModelCategoryFields.status}`]: \"category_status\",\n [`catg.${ModelCategoryFields.description}`]: \"category_description\",\n [`catg.${ModelCategoryFields.parent_category_id}`]: \"parent_category_id\",\n [`brd.${ModelBrandFields.name}`]: \"brand_status\",\n [`brd.${ModelBrandFields.status}`]: \"brand_status\",\n [`brd.${ModelBrandFields.description}`]: \"brand_description\"\n}\n\nconst getItemsSqlSelect = async (datatypes: any, injectionFieldService: any) => {\n\n let iif2Select = ``\n\n if (datatypes.includes(productDataTypes.itemInjectionFields)) {\n\n const currentActiveFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"item\")\n\n let bbb = currentActiveFields.map((col: any) => `'inf_${col}', iif2.${col}`).join(\", \")\n\n iif2Select = bbb.length > 0 ? `, ${bbb}` : ``\n\n }\n\n let itemsSqlSelect = {\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelItemFields.item_id}', itm.item_id,\n '${ModelItemFields.cbm}', itm.cbm,\n '${ModelItemFields.item_code}', itm.item_code,\n '${ModelItemFields.cost}', itm.cost,\n '${ModelItemFields.dimension_height}', itm.dimension_height::float,\n '${ModelItemFields.dimension_length}', itm.dimension_length::float,\n '${ModelItemFields.dimension_width}', itm.dimension_width::float,\n '${ModelItemFields.floor_price}', itm.floor_price::float,\n '${ModelItemFields.gross_weight}', itm.gross_weight::float,\n '${ModelItemFields.is_package}', itm.is_package,\n '${ModelItemFields.item_description}', itm.item_description,\n '${ModelItemFields.net_weight}', itm.net_weight::float,\n '${ModelItemFields.remark}', itm.remark,\n '${ModelItemFields.status}', itm.status,\n '${ModelItemFields.summary}', itm.summary,\n '${ModelItemFields.uom_id}', itm.uom_id,\n '${ModelItemFields.uom_price}', itm.uom_price::float,\n '${ModelItemFields.uom_bal}', itm.uom_bal::float,\n 'uom_description', uom.${ModelUomFields.description},\n 'uom_decimal_digit', uom.${ModelUomFields.decimal_digit}::float,\n 'uom_name', uom.${ModelUomFields.name},\n 'uom_status', uom.${ModelUomFields.status},\n 'uom_metric_type', uom.${ModelUomFields.metric_type},\n 'uom_metric_type_display_name', uom.${ModelUomFields.metric_type_display_name},\n '${ModelItemFields.volume_weight}', itm.volume_weight\n ${iif2Select}\n )\n ) FILTER (WHERE itm.item_id IS NOT NULL AND itm.isdelete = false AND itm.istrash = false),\n '[]'\n )`]: \"items\"\n }\n\n return itemsSqlSelect\n}\n\nlet defaultSqlSelect = {\n [`prd.${ModelProductFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`prd.${ModelProductFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`prd.${ModelProductFields.isdelete}`]: \"isdelete\",\n [`prd.${ModelProductFields.istrash}`]: \"istrash\",\n [`prd.${ModelProductFields.accountid}`]: \"accountid\",\n}\n\nexport const ItemProductService = (props: ItemProductServiceProps) => {\n\n const {\n // prisma,\n // accountId = 0,\n // actionUserId = 0\n ...rest\n } = props\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"item\" })\n\n const productModel = ProductModel({ ...rest })\n\n const createItemProduct = async ({ data }: ItemProductCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create product payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await productModel.create({ data: _data })\n\n return response\n }\n\n const updateItemProduct = async ({ productId, data }: ItemProductUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update product payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await productModel.update({ where: { [`${ModelProductFields.product_id}`]: productId }, data: _data })\n\n return response\n }\n\n const getItemProduct = async ({ id, datatypes = [] }: ItemProductGetProps) => {\n\n let { data } = await listItemProducts({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelProductFields.product_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelProductFields.product_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listItemProducts = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: ItemProductListProps) => {\n\n let itemsSqlSelect = await getItemsSqlSelect(datatypes, injectionFieldService)\n\n let data = []\n\n let sqlSelect = [\n `COUNT(prd.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, itemSqlSelect),\n buildSqlSelect(``, itemsSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"prd\", \"categories\", \"catg\", [\"prd.category_id = catg.category_id\", \"catg.isdelete = false\", \"catg.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"brands\", \"brd\", [\"prd.brand_id = brd.brand_id\", \"brd.isdelete = false\", \"brd.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"items\", \"itm\", [\"prd.product_id = itm.product_id\", \"itm.isdelete = false\", \"itm.istrash = false\"]),\n buildSqlRelation(\"left\", \"itm\", \"uoms\", \"uom\", [\"itm.uom_id = uom.uom_id\", \"uom.isdelete = false\", \"uom.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"users\", \"creator\", [\"prd.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"users\", \"updater\", [\"prd.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(itemSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...itemSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(productDataTypes.productInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"product\")\n\n const productInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif\", activeInjectionFields)\n\n filterColumns = { ...filterColumns, ...productInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, productInjectionFieldSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"prd\", \"item_injection_fields\", \"iif\", [\"prd.product_id = iif.product_id\", \"iif.field_ref = 'item'\", \"iif.field_module = 'product'\", \"iif.isdelete = false\", \"iif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(productInjectionFieldSqlSelect)]\n }\n\n // if (datatypes.includes(productDataTypes.itemInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"item\")\n\n // const productItemInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif2\", activeInjectionFields)\n\n // filterColumns = { ...filterColumns, ...productItemInjectionFieldSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, productItemInjectionFieldSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"itm\", \"item_injection_fields\", \"iif2\", [\"itm.item_id = iif2.item_id\", \"iif2.field_ref = 'item'\", \"iif2.field_module = 'item'\", \"iif2.isdelete = false\", \"iif2.istrash = false\"])]\n // // sqlGroupBy = [...sqlGroupBy, ...Object.keys(itemInjectionFieldSqlSelect)]\n // }\n\n // if (datatypes.includes(productDataTypes.location)) {\n\n // let locationSqlSelect = {\n // [`COALESCE(\n // JSON_AGG(\n // DISTINCT JSONB_BUILD_OBJECT(\n // '${ModelLocationFields.location_id}', location.location_id,\n // '${ModelLocationFields.location_code}', location.location_code,\n // '${ModelLocationFields.location_name}', location.location_name,\n // '${ModelLocationFields.location_type}', location.location_type,\n // '${ModelLocationFields.address_1}', location.address_1,\n // '${ModelLocationFields.address_2}', location.address_2,\n // '${ModelLocationFields.area}', location.area,\n // '${ModelLocationFields.area_id}', location.area_id,\n // '${ModelLocationFields.country_id}', location.country_id,\n // '${ModelLocationFields.state_id}', location.state_id,\n // '${ModelLocationFields.postcode}', location.postcode,\n // '${ModelLocationFields.is_default}', location.is_default,\n // '${ModelLocationFields.person_contact}', location.person_contact,\n // '${ModelLocationFields.person_name}', location.person_contact,\n // '${ModelLocationFields.person_email}', location.person_email,\n // '${ModelLocationFields.isdelete}', location.isdelete,\n // '${ModelLocationFields.istrash}', location.istrash\n // )\n // ) FILTER (WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false), \n // '[]'\n // )`]: \"locations\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"usrprop_location\", \"location\", \"brn\", [\"prd.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n // }\n\n if (datatypes.includes(productDataTypes.file)) {\n\n let fileSqlSelect = {\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelFileFields.file_id}', files.file_id,\n '${ModelFileFields.asset_url}', files.asset_url,\n '${ModelFileFields.asset_path}', files.asset_path,\n '${ModelFileFields.batch_code}', files.batch_code,\n '${ModelFileFields.content_type}', files.content_type,\n '${ModelFileFields.description}', files.description,\n '${ModelFileFields.field_module}', files.field_module,\n '${ModelFileFields.field_ref}', files.field_ref,\n '${ModelFileFields.file_compress_format}', files.file_compress_format,\n '${ModelFileFields.file_label}', files.file_label,\n '${ModelFileFields.file_name}', files.file_name,\n '${ModelFileFields.file_size_bytes}', files.file_size_bytes,\n '${ModelFileFields.foldername_day}', files.foldername_day,\n '${ModelFileFields.foldername_month}', files.foldername_month,\n '${ModelFileFields.foldername_year}', files.foldername_year,\n '${ModelFileFields.input_file_name}', files.input_file_name,\n '${ModelFileFields.input_file_size_bytes}', files.input_file_size_bytes,\n '${ModelFileFields.input_type}', files.input_type,\n '${ModelFileFields.refer_id_1}', files.refer_id_1,\n '${ModelFileFields.refer_id_2}', files.refer_id_2,\n '${ModelFileFields.remark}', files.remark,\n '${ModelFileFields.storage_provider_name}', files.storage_provider_name,\n '${ModelFileFields.tag_name}', files.tag_name\n )\n ) FILTER (WHERE files.file_id IS NOT NULL AND files.isdelete = false AND files.istrash = false), \n '[]'\n )`]: \"files\"\n }\n\n // filterColumns = { ...filterColumns, ...fileSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, fileSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"prd\", \"files\", \"files\", [\"prd.product_id = files.refer_id_1\", \"files.field_ref = 'item'\", \"files.field_module = 'product'\", \"files.isdelete = false\", \"files.istrash = false\"])]\n\n }\n\n // if (datatypes.includes(customerDataTypes.branchUserCount)) {\n\n // let branchUserCountSqlSelect = {\n // [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: \"branch_user_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branch_users\", \"brnusrcount\", [\"prd.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `prd.isdelete = false`,\n `prd.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"products\",\n mainAlias: \"prd\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await productModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeProducts = async ({ productIds }: ItemProductRemoveProps) => {\n\n if (!productIds.length) throwError('productIds is required');\n\n const response = await productModel.remove({ where: { [`${ModelProductFields.product_id}`]: { in: productIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(productDataTypes);\n }\n\n return {\n createItemProduct,\n updateItemProduct,\n getItemProduct,\n listItemProducts,\n removeProducts,\n getDataTypes\n }\n\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"ItemProductService.js","sourceRoot":"","sources":["../../../src/services/item/ItemProductService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n ProductModel,\n ModelProductFields,\n ModelCategoryFields,\n ModelBrandFields,\n ModelUomFields,\n ModelItemFields,\n ModelFileFields,\n} from \"@/models\";\n\nimport { InjectionFieldService } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nexport type ItemType = \"product\"\n\nexport const productDataTypes = {\n productInjectionFields: \"product_injection_fields\",\n itemInjectionFields: \"item_injection_fields\",\n allCategory: \"all_category\",\n allSupplier: \"all_supplier\",\n file: \"file\",\n product: \"product\"\n}\n\nexport type ItemProductDataType = keyof typeof productDataTypes;\n\nexport type ItemProductServiceProps = DefaultServiceProps & {};\n\nexport type ItemProductGetProps = QueryGet & {\n id: number,\n datatypes: ItemProductDataType[]\n};\n\nexport type ItemProductListProps = QueryList & {\n datatypes: ItemProductDataType[]\n};\n\nexport type ItemProductRemoveProps = {\n productIds: BigInt[]\n};\n\nexport type ItemProductCreateProps = {\n data:\n // product\n {\n product: {\n brandId: number\n categoryId: number\n productName: string\n model: string\n productCode: string\n description: string\n summary: string\n status: Boolean\n }\n }\n}\n\nexport type ItemProductUpdateProps = {\n productId: number,\n data:\n // product\n {\n product: {\n brandId: number\n categoryId: number\n productName: string\n model: string\n productCode: string\n description: string\n summary: string\n status: Boolean\n }\n }\n}\n\nconst getCreatePayload = (data: ItemProductCreateProps[\"data\"]) => {\n\n if (\"product\" in data) {\n\n return {\n [`${ModelProductFields.brand_id}`]: data.product.brandId,\n [`${ModelProductFields.category_id}`]: data.product.categoryId,\n [`${ModelProductFields.description}`]: data.product.description,\n [`${ModelProductFields.product_name}`]: data.product.productName,\n [`${ModelProductFields.model}`]: data.product.model,\n [`${ModelProductFields.product_code}`]: data.product.productCode,\n [`${ModelProductFields.summary}`]: data.product.summary,\n [`${ModelProductFields.status}`]: data.product.status ? 1 : 0\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: ItemProductUpdateProps[\"data\"]) => {\n\n if (\"product\" in data) {\n\n return {\n [`${ModelProductFields.brand_id}`]: data.product.brandId,\n [`${ModelProductFields.category_id}`]: data.product.categoryId,\n [`${ModelProductFields.description}`]: data.product.description,\n [`${ModelProductFields.product_name}`]: data.product.productName,\n [`${ModelProductFields.model}`]: data.product.model,\n [`${ModelProductFields.product_code}`]: data.product.productCode,\n [`${ModelProductFields.summary}`]: data.product.summary,\n [`${ModelProductFields.status}`]: data.product.status ? 1 : 0\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`prd.${ModelProductFields.product_id}`]: \"product_id\",\n [`prd.${ModelProductFields.brand_id}`]: \"brand_id\",\n [`prd.${ModelProductFields.category_id}`]: \"category_id\",\n [`prd.${ModelProductFields.description}`]: \"description\",\n [`prd.${ModelProductFields.product_name}`]: \"product_name\",\n [`prd.${ModelProductFields.model}`]: \"model\",\n [`prd.${ModelProductFields.product_code}`]: \"product_code\",\n [`prd.${ModelProductFields.status}`]: \"status\",\n [`prd.${ModelProductFields.summary}`]: \"summary\",\n}\n\nlet itemSqlSelect = {\n [`catg.${ModelCategoryFields.name}`]: \"category_name\",\n [`catg.${ModelCategoryFields.status}`]: \"category_status\",\n [`catg.${ModelCategoryFields.description}`]: \"category_description\",\n [`catg.${ModelCategoryFields.parent_category_id}`]: \"parent_category_id\",\n [`brd.${ModelBrandFields.name}`]: \"brand_name\",\n [`brd.${ModelBrandFields.status}`]: \"brand_status\",\n [`brd.${ModelBrandFields.description}`]: \"brand_description\"\n}\n\nconst getItemsSqlSelect = async (datatypes: any, injectionFieldService: any) => {\n\n let iif2Select = ``\n\n if (datatypes.includes(productDataTypes.itemInjectionFields)) {\n\n const currentActiveFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"item\")\n\n let bbb = currentActiveFields.map((col: any) => `'inf_${col}', iif2.${col}`).join(\", \")\n\n iif2Select = bbb.length > 0 ? `, ${bbb}` : ``\n\n }\n\n let itemsSqlSelect = {\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelItemFields.item_id}', itm.item_id,\n '${ModelItemFields.cbm}', itm.cbm,\n '${ModelItemFields.item_code}', itm.item_code,\n '${ModelItemFields.cost}', itm.cost,\n '${ModelItemFields.dimension_height}', itm.dimension_height::float,\n '${ModelItemFields.dimension_length}', itm.dimension_length::float,\n '${ModelItemFields.dimension_width}', itm.dimension_width::float,\n '${ModelItemFields.floor_price}', itm.floor_price::float,\n '${ModelItemFields.gross_weight}', itm.gross_weight::float,\n '${ModelItemFields.is_package}', itm.is_package,\n '${ModelItemFields.item_description}', itm.item_description,\n '${ModelItemFields.net_weight}', itm.net_weight::float,\n '${ModelItemFields.remark}', itm.remark,\n '${ModelItemFields.status}', itm.status,\n '${ModelItemFields.summary}', itm.summary,\n '${ModelItemFields.uom_id}', itm.uom_id,\n '${ModelItemFields.uom_price}', itm.uom_price::float,\n '${ModelItemFields.uom_bal}', itm.uom_bal::float,\n 'uom_description', uom.${ModelUomFields.description},\n 'uom_decimal_digit', uom.${ModelUomFields.decimal_digit}::float,\n 'uom_name', uom.${ModelUomFields.name},\n 'uom_status', uom.${ModelUomFields.status},\n 'uom_metric_type', uom.${ModelUomFields.metric_type},\n 'uom_metric_type_display_name', uom.${ModelUomFields.metric_type_display_name},\n '${ModelItemFields.volume_weight}', itm.volume_weight\n ${iif2Select}\n )\n ) FILTER (WHERE itm.item_id IS NOT NULL AND itm.isdelete = false AND itm.istrash = false),\n '[]'\n )`]: \"items\"\n }\n\n return itemsSqlSelect\n}\n\nlet defaultSqlSelect = {\n [`prd.${ModelProductFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`prd.${ModelProductFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`prd.${ModelProductFields.isdelete}`]: \"isdelete\",\n [`prd.${ModelProductFields.istrash}`]: \"istrash\",\n [`prd.${ModelProductFields.accountid}`]: \"accountid\",\n}\n\nexport const ItemProductService = (props: ItemProductServiceProps) => {\n\n const {\n // prisma,\n // accountId = 0,\n // actionUserId = 0\n ...rest\n } = props\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"item\" })\n\n const productModel = ProductModel({ ...rest })\n\n const createItemProduct = async ({ data }: ItemProductCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create product payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await productModel.create({ data: _data })\n\n return response\n }\n\n const updateItemProduct = async ({ productId, data }: ItemProductUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update product payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await productModel.update({ where: { [`${ModelProductFields.product_id}`]: productId }, data: _data })\n\n return response\n }\n\n const getItemProduct = async ({ id, datatypes = [] }: ItemProductGetProps) => {\n\n let { data } = await listItemProducts({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelProductFields.product_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelProductFields.product_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listItemProducts = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: ItemProductListProps) => {\n\n let itemsSqlSelect = await getItemsSqlSelect(datatypes, injectionFieldService)\n\n let data = []\n\n let sqlSelect = [\n `COUNT(prd.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, itemSqlSelect),\n buildSqlSelect(``, itemsSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"prd\", \"categories\", \"catg\", [\"prd.category_id = catg.category_id\", \"catg.isdelete = false\", \"catg.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"brands\", \"brd\", [\"prd.brand_id = brd.brand_id\", \"brd.isdelete = false\", \"brd.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"items\", \"itm\", [\"prd.product_id = itm.product_id\", \"itm.isdelete = false\", \"itm.istrash = false\"]),\n buildSqlRelation(\"left\", \"itm\", \"uoms\", \"uom\", [\"itm.uom_id = uom.uom_id\", \"uom.isdelete = false\", \"uom.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"users\", \"creator\", [\"prd.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"users\", \"updater\", [\"prd.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(itemSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...itemSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(productDataTypes.productInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"product\")\n\n const productInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif\", activeInjectionFields)\n\n filterColumns = { ...filterColumns, ...productInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, productInjectionFieldSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"prd\", \"item_injection_fields\", \"iif\", [\"prd.product_id = iif.product_id\", \"iif.field_ref = 'item'\", \"iif.field_module = 'product'\", \"iif.isdelete = false\", \"iif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(productInjectionFieldSqlSelect)]\n }\n\n // if (datatypes.includes(productDataTypes.itemInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"item\")\n\n // const productItemInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif2\", activeInjectionFields)\n\n // filterColumns = { ...filterColumns, ...productItemInjectionFieldSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, productItemInjectionFieldSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"itm\", \"item_injection_fields\", \"iif2\", [\"itm.item_id = iif2.item_id\", \"iif2.field_ref = 'item'\", \"iif2.field_module = 'item'\", \"iif2.isdelete = false\", \"iif2.istrash = false\"])]\n // // sqlGroupBy = [...sqlGroupBy, ...Object.keys(itemInjectionFieldSqlSelect)]\n // }\n\n // if (datatypes.includes(productDataTypes.location)) {\n\n // let locationSqlSelect = {\n // [`COALESCE(\n // JSON_AGG(\n // DISTINCT JSONB_BUILD_OBJECT(\n // '${ModelLocationFields.location_id}', location.location_id,\n // '${ModelLocationFields.location_code}', location.location_code,\n // '${ModelLocationFields.location_name}', location.location_name,\n // '${ModelLocationFields.location_type}', location.location_type,\n // '${ModelLocationFields.address_1}', location.address_1,\n // '${ModelLocationFields.address_2}', location.address_2,\n // '${ModelLocationFields.area}', location.area,\n // '${ModelLocationFields.area_id}', location.area_id,\n // '${ModelLocationFields.country_id}', location.country_id,\n // '${ModelLocationFields.state_id}', location.state_id,\n // '${ModelLocationFields.postcode}', location.postcode,\n // '${ModelLocationFields.is_default}', location.is_default,\n // '${ModelLocationFields.person_contact}', location.person_contact,\n // '${ModelLocationFields.person_name}', location.person_contact,\n // '${ModelLocationFields.person_email}', location.person_email,\n // '${ModelLocationFields.isdelete}', location.isdelete,\n // '${ModelLocationFields.istrash}', location.istrash\n // )\n // ) FILTER (WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false), \n // '[]'\n // )`]: \"locations\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"usrprop_location\", \"location\", \"brn\", [\"prd.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n // }\n\n if (datatypes.includes(productDataTypes.file)) {\n\n let fileSqlSelect = {\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelFileFields.file_id}', files.file_id,\n '${ModelFileFields.asset_url}', files.asset_url,\n '${ModelFileFields.asset_path}', files.asset_path,\n '${ModelFileFields.batch_code}', files.batch_code,\n '${ModelFileFields.content_type}', files.content_type,\n '${ModelFileFields.description}', files.description,\n '${ModelFileFields.field_module}', files.field_module,\n '${ModelFileFields.field_ref}', files.field_ref,\n '${ModelFileFields.file_compress_format}', files.file_compress_format,\n '${ModelFileFields.file_label}', files.file_label,\n '${ModelFileFields.file_name}', files.file_name,\n '${ModelFileFields.file_size_bytes}', files.file_size_bytes,\n '${ModelFileFields.foldername_day}', files.foldername_day,\n '${ModelFileFields.foldername_month}', files.foldername_month,\n '${ModelFileFields.foldername_year}', files.foldername_year,\n '${ModelFileFields.input_file_name}', files.input_file_name,\n '${ModelFileFields.input_file_size_bytes}', files.input_file_size_bytes,\n '${ModelFileFields.input_type}', files.input_type,\n '${ModelFileFields.refer_id_1}', files.refer_id_1,\n '${ModelFileFields.refer_id_2}', files.refer_id_2,\n '${ModelFileFields.remark}', files.remark,\n '${ModelFileFields.storage_provider_name}', files.storage_provider_name,\n '${ModelFileFields.tag_name}', files.tag_name\n )\n ) FILTER (WHERE files.file_id IS NOT NULL AND files.isdelete = false AND files.istrash = false), \n '[]'\n )`]: \"files\"\n }\n\n // filterColumns = { ...filterColumns, ...fileSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, fileSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"prd\", \"files\", \"files\", [\"prd.product_id = files.refer_id_1\", \"files.field_ref = 'item'\", \"files.field_module = 'product'\", \"files.isdelete = false\", \"files.istrash = false\"])]\n\n }\n\n // if (datatypes.includes(customerDataTypes.branchUserCount)) {\n\n // let branchUserCountSqlSelect = {\n // [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: \"branch_user_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branch_users\", \"brnusrcount\", [\"prd.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `prd.isdelete = false`,\n `prd.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"products\",\n mainAlias: \"prd\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await productModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeProducts = async ({ productIds }: ItemProductRemoveProps) => {\n\n if (!productIds.length) throwError('productIds is required');\n\n const response = await productModel.remove({ where: { [`${ModelProductFields.product_id}`]: { in: productIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(productDataTypes);\n }\n\n return {\n createItemProduct,\n updateItemProduct,\n getItemProduct,\n listItemProducts,\n removeProducts,\n getDataTypes\n }\n\n}\n\n"]}
|