storemw-core-api 1.0.164 → 1.0.166

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/features/file_storage/fileStorageRegistry.js +2 -1
  2. package/dist/features/file_storage/fileStorageRegistry.js.map +1 -1
  3. package/dist/lib/index.d.ts +2 -0
  4. package/dist/lib/index.js +5 -1
  5. package/dist/lib/index.js.map +1 -1
  6. package/dist/lib/query_builder/queryBuilder.d.ts +1 -1
  7. package/dist/lib/query_builder/queryBuilder.js +66 -15
  8. package/dist/lib/query_builder/queryBuilder.js.map +1 -1
  9. package/dist/lib/query_builder/queryDocumentProfile.d.ts +7 -0
  10. package/dist/lib/query_builder/queryDocumentProfile.js +87 -0
  11. package/dist/lib/query_builder/queryDocumentProfile.js.map +1 -0
  12. package/dist/lib/query_builder/queryUserBranch.d.ts +10 -0
  13. package/dist/lib/query_builder/queryUserBranch.js +31 -0
  14. package/dist/lib/query_builder/queryUserBranch.js.map +1 -0
  15. package/dist/middlewares/route/validateFile.js +1 -1
  16. package/dist/middlewares/route/validateFile.js.map +1 -1
  17. package/dist/services/branch/UserBranchService.d.ts +2 -2
  18. package/dist/services/branch/UserBranchService.js +53 -22
  19. package/dist/services/branch/UserBranchService.js.map +1 -1
  20. package/dist/services/document/DocumentProfileService.js +47 -19
  21. package/dist/services/document/DocumentProfileService.js.map +1 -1
  22. package/dist/services/file/FileAwsS3StorageProvider.js +3 -1
  23. package/dist/services/file/FileAwsS3StorageProvider.js.map +1 -1
  24. package/dist/services/file/FileGoogleCloudStorageProvider.js +3 -1
  25. package/dist/services/file/FileGoogleCloudStorageProvider.js.map +1 -1
  26. package/dist/services/file/FileService.d.ts +1 -0
  27. package/dist/services/file/FileService.js +68 -1
  28. package/dist/services/file/FileService.js.map +1 -1
  29. package/package.json +1 -1
@@ -76,6 +76,7 @@ let defaultSqlSelect = {
76
76
  [`brn.${models_1.ModelUserBranchFields.istrash}`]: "istrash",
77
77
  [`brn.${models_1.ModelUserBranchFields.accountid}`]: "accountid",
78
78
  };
79
+ const { relationKeys, sqlRelationMaps } = (0, lib_1.getUserBranchRelationMaps)();
79
80
  const UserBranchService = (props) => {
80
81
  const { userBranchType = "branch", ...rest } = props;
81
82
  const userBranchModel = (0, models_1.UserBranchModel)({ ...rest });
@@ -143,12 +144,19 @@ const UserBranchService = (props) => {
143
144
  (0, lib_1.buildSqlSelect)(``, regionSqlSelect),
144
145
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
145
146
  ];
147
+ // sqlRelation = [
148
+ // buildSqlRelation("left", "brn", "countries", "cou", ["brn.country_id = cou.country_id", "cou.isdelete = false", "cou.istrash = false"]),
149
+ // buildSqlRelation("left", "brn", "states", "state", ["brn.state_id = state.state_id", "state.isdelete = false", "state.istrash = false"]),
150
+ // buildSqlRelation("left", "brn", "areas", "area", ["brn.area_id = area.area_id", "area.isdelete = false", "area.istrash = false"]),
151
+ // buildSqlRelation("left", "brn", "users", "creator", ["brn.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
152
+ // buildSqlRelation("left", "brn", "users", "updater", ["brn.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"])
153
+ // ]
146
154
  sqlRelation = [
147
- (0, lib_1.buildSqlRelation)("left", "brn", "countries", "cou", ["brn.country_id = cou.country_id", "cou.isdelete = false", "cou.istrash = false"]),
148
- (0, lib_1.buildSqlRelation)("left", "brn", "states", "state", ["brn.state_id = state.state_id", "state.isdelete = false", "state.istrash = false"]),
149
- (0, lib_1.buildSqlRelation)("left", "brn", "areas", "area", ["brn.area_id = area.area_id", "area.isdelete = false", "area.istrash = false"]),
150
- (0, lib_1.buildSqlRelation)("left", "brn", "users", "creator", ["brn.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
151
- (0, lib_1.buildSqlRelation)("left", "brn", "users", "updater", ["brn.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"])
155
+ sqlRelationMaps.cou,
156
+ sqlRelationMaps.state,
157
+ sqlRelationMaps.area,
158
+ sqlRelationMaps.creator,
159
+ sqlRelationMaps.updater
152
160
  ];
153
161
  // sqlRelationAgg = [
154
162
  // buildSqlRelation("left", "brn", "document_items", "docitm", ["brn.document_id = docitm.document_id", "docitm.isdelete = false", "docitm.istrash = false"]),
@@ -192,33 +200,56 @@ const UserBranchService = (props) => {
192
200
  let sqlOrderby = (0, lib_1.buildSqlOrderBy)(sortfield, sortorder);
193
201
  let sqlLimitOffset = (0, lib_1.buildSqlLimitOffset)(limit, offset);
194
202
  // get the data (pagination)
195
- const sqlRaw = (0, lib_1.buildSqlRawSelect)({
196
- tableName: "branches",
197
- mainAlias: "brn",
198
- accountId: rest.accountId,
199
- sqlSelect: [...sqlSelect, ...sqlSelectAgg],
200
- sqlRelation: [...sqlRelation, ...sqlRelationAgg],
201
- sqlWhere,
202
- sqlGroupBy,
203
- sqlOrderby,
204
- sqlLimitOffset
205
- });
206
- let data = await userBranchModel.raw(sqlRaw);
207
- // get the count
208
- const sqlRawCount = (0, lib_1.buildSqlRawSelectCount)({
203
+ // const sqlRaw = buildSqlRawSelect({
204
+ // tableName: "branches",
205
+ // mainAlias: "brn",
206
+ // accountId: rest.accountId,
207
+ // sqlSelect: [...sqlSelect, ...sqlSelectAgg],
208
+ // sqlRelation: [...sqlRelation, ...sqlRelationAgg],
209
+ // sqlWhere,
210
+ // sqlGroupBy,
211
+ // sqlOrderby,
212
+ // sqlLimitOffset
213
+ // })
214
+ // let data = await userBranchModel.raw(sqlRaw)
215
+ // // get the count
216
+ // const sqlRawCount = buildSqlRawSelectCount({
217
+ // tableName: "branches",
218
+ // mainAlias: "brn",
219
+ // accountId: rest.accountId,
220
+ // sqlSelect,
221
+ // sqlRelation,
222
+ // sqlWhere,
223
+ // sqlGroupBy,
224
+ // sqlOrderby
225
+ // })
226
+ // let count = await userBranchModel.raw(sqlRawCount)
227
+ // const response = {
228
+ // data,
229
+ // total: data.length ? Number(count[0].filtered_count) : 0
230
+ // }
231
+ // get the listing data & count
232
+ const { data, total } = await (0, lib_1.getListWithCount)({
233
+ model: userBranchModel,
209
234
  tableName: "branches",
210
235
  mainAlias: "brn",
236
+ countKey: `${models_1.ModelUserBranchFields.branch_id}`,
211
237
  accountId: rest.accountId,
238
+ sqlRelationMaps,
239
+ filters,
240
+ filterColumns,
212
241
  sqlSelect,
242
+ sqlSelectAgg,
213
243
  sqlRelation,
244
+ sqlRelationAgg,
214
245
  sqlWhere,
215
246
  sqlGroupBy,
216
- sqlOrderby
247
+ sqlOrderby,
248
+ sqlLimitOffset
217
249
  });
218
- let count = await userBranchModel.raw(sqlRawCount);
219
250
  const response = {
220
251
  data,
221
- total: data.length ? Number(count[0].filtered_count) : 0
252
+ total
222
253
  };
223
254
  return response;
224
255
  };
@@ -1 +1 @@
1
- {"version":3,"file":"UserBranchService.js","sourceRoot":"","sources":["../../../src/services/branch/UserBranchService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n UserBranchModel,\n ModelUserFields,\n ModelUserBranchFields,\n ModelCountryFields,\n ModelStateFields,\n ModelAreaFields\n} from \"@/models\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect, buildSqlRawSelectCount } from \"@/lib\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\nimport { DefaultServiceProps } from \"@/utils\";\n\nexport const userBranchUserTypes = {\n customer: \"customer\",\n retailer: \"retailer\"\n}\n\nexport const userBranchTypes = {\n branch: \"branch\",\n branch_shipping: \"branch_shipping\",\n shipping_address: \"shipping_address\"\n} as const\n\nexport type UserBranchType = typeof userBranchTypes[keyof typeof userBranchTypes]\n\nexport type UserBranchUserType = typeof userBranchUserTypes[keyof typeof userBranchUserTypes]\n\nexport type UserBranchServiceProps = DefaultServiceProps & {\n userBranchUserType: UserBranchUserType,\n userBranchType: UserBranchType,\n};\n\nexport type UserBranchGetProps = QueryGet & {\n userBranchId: number,\n};\n\nexport type UserBranchByUserIdGetProps = QueryGet & {\n userId: number,\n onlyHQ?: boolean\n limit?: number\n};\n\nexport type UserBranchListProps = QueryList & {\n // id: number,\n};\n\nexport type UserBranchRemoveProps = {\n userBranchIds: number[]\n};\n\nexport type UserBranchCreateProps = {\n userBranchType?: UserBranchType,\n data:\n // driver_image\n {\n administrator: {\n filename: string;\n // contentType: string;\n // bucketName: string;\n // projectId: string;\n // foldernameYear: string;\n // foldernameMonth: string;\n // foldernameDay: string;\n // uploadType: FileUploadType,\n // bufferFilename: string,\n // assetUrl: string,\n // referenceId: string,\n // referenceLabel: string,\n // referenceType: string,\n // batchCode?: string,\n // fileSizeBytes: number,\n // fileCompressFormat: FileCompressFormat,\n // requestFileSizeBytes: number,\n // requestFilename: string,\n // reference2Id: string,\n // reference2Label: string,\n // reference2Type: string,\n }\n }\n}\n\nexport type UserBranchUpdateProps = {\n userBranchType?: UserBranchType,\n data:\n // driver_image\n {\n administrator: {\n filename: string;\n // contentType: string;\n // bucketName: string;\n // projectId: string;\n // foldernameYear: string;\n // foldernameMonth: string;\n // foldernameDay: string;\n // uploadType: FileUploadType,\n // bufferFilename: string,\n // assetUrl: string,\n // referenceId: string,\n // referenceLabel: string,\n // referenceType: string,\n // batchCode?: string,\n // fileSizeBytes: number,\n // fileCompressFormat: FileCompressFormat,\n // requestFileSizeBytes: number,\n // requestFilename: string,\n // reference2Id: string,\n // reference2Label: string,\n // reference2Type: string,\n }\n }\n}\n\n// const getCreatePayload = (branchType: BranchType, data: UserBranchCreateProps[\"data\"]) => {\n\n// if (branchType === \"administrator\" && \"administrator\" in data) {\n\n// return {\n// user_type: branchType,\n// // file_name: data.driverImage.filename,\n// // content_type: data.driverImage.contentType,\n// // bucket_name: data.driverImage.bucketName,\n// // project_id: data.driverImage.projectId,\n// // foldername_year: data.driverImage.foldernameYear,\n// // foldername_month: data.driverImage.foldernameMonth,\n// // foldername_day: data.driverImage.foldernameDay,\n// // upload_type: data.driverImage.uploadType,\n// // buffer_file_name: data.driverImage.bufferFilename,\n// // asset_url: data.driverImage.assetUrl,\n// // reference_id: data.driverImage.referenceId,\n// // reference_label: data.driverImage.referenceLabel,\n// // reference_type: data.driverImage.referenceType,\n// // batch_code: data?.driverImage?.batchCode ?? \"\",\n// // file_size_bytes: data.driverImage.fileSizeBytes,\n// // file_compress_format: data.driverImage.fileCompressFormat,\n// // request_file_size_bytes: data.driverImage.requestFileSizeBytes,\n// // request_file_name: data.driverImage.requestFilename,\n// // reference2_id: data.driverImage.reference2Id,\n// // reference2_label: data.driverImage.reference2Label,\n// // reference2_type: data.driverImage.reference2Type,\n// }\n// }\n\n// return false\n\n// }\n\nlet mainSqlSelect = {\n [`brn.${ModelUserBranchFields.branch_id}`]: \"branch_id\",\n [`brn.${ModelUserBranchFields.user_id}`]: \"user_id\",\n [`brn.${ModelUserBranchFields.area_id}`]: \"area_id\",\n [`brn.${ModelUserBranchFields.state_id}`]: \"state_id\",\n [`brn.${ModelUserBranchFields.country_id}`]: \"country_id\",\n [`brn.${ModelUserBranchFields.address_1}`]: \"address_1\",\n [`brn.${ModelUserBranchFields.address_2}`]: \"address_2\",\n [`brn.${ModelUserBranchFields.branch_code}`]: \"branch_code\",\n [`brn.${ModelUserBranchFields.branch_contact}`]: \"branch_contact\",\n [`brn.${ModelUserBranchFields.branch_email}`]: \"branch_email\",\n [`brn.${ModelUserBranchFields.branch_name}`]: \"branch_name\",\n [`brn.${ModelUserBranchFields.status}`]: \"status\",\n [`brn.${ModelUserBranchFields.is_hq}`]: \"is_hq\",\n [`brn.${ModelUserBranchFields.pic_contact}`]: \"pic_contact\",\n [`brn.${ModelUserBranchFields.pic_email}`]: \"pic_email\",\n [`brn.${ModelUserBranchFields.pic_name}`]: \"pic_name\",\n [`brn.${ModelUserBranchFields.postcode}`]: \"postcode\",\n [`brn.${ModelUserBranchFields.remark}`]: \"remark\",\n [`brn.${ModelUserBranchFields.type}`]: \"type\",\n}\n\nlet regionSqlSelect = {\n [`cou.${ModelCountryFields.country_name}`]: \"country_name\",\n [`state.${ModelStateFields.state_name}`]: \"state_name\",\n [`area.${ModelAreaFields.area_name}`]: \"area_name\",\n}\n\nlet defaultSqlSelect = {\n [`brn.${ModelUserBranchFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`brn.${ModelUserBranchFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`brn.${ModelUserBranchFields.isdelete}`]: \"isdelete\",\n [`brn.${ModelUserBranchFields.istrash}`]: \"istrash\",\n [`brn.${ModelUserBranchFields.accountid}`]: \"accountid\",\n}\n\nexport const UserBranchService = (props: UserBranchServiceProps) => {\n\n const {\n userBranchType = \"branch\",\n ...rest\n } = props\n\n const userBranchModel = UserBranchModel({ ...rest })\n\n // const createUserBranch = async ({ data, branchType: overrideBranchType }: UserBranchCreateProps) => {\n\n // const _branchType = overrideBranchType || branchType\n\n // const _data = getCreatePayload(_branchType, data)\n\n // if (!_data) {\n // throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n // }\n\n // const response = await userModel.create({ data: _data, createUserId: 0 })\n\n // return response\n // }\n\n const getUserBranch = async ({ userBranchId, datatypes = [] }: UserBranchGetProps) => {\n\n // let data: any = {}\n\n // if (branchType === \"branch\") {\n // // data = await customerService.getCustomer({ id, datatypes: datatypes as CustomerGetProps[\"datatypes\"] })\n // }\n\n // if (branchType === \"branch_shipping\") {\n // // data = await administratorService.getAdministrator({ id, })\n // }\n\n // if (branchType === \"shipping_address\") {\n // // data = await administratorService.getAdministrator({ id, })\n // }\n\n let { data } = await listUserBranches({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelUserBranchFields.branch_id}`, operator: \"=\", value: userBranchId }],\n sortfield: `${ModelUserBranchFields.branch_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n // if (!data) {\n // throw new Error(`Invalid id: ${id}`);\n // }\n\n return data\n };\n\n const getUserBranchByUserId = async ({ userId, onlyHQ = false, limit = 100, datatypes = [] }: UserBranchByUserIdGetProps) => {\n\n let filters = [\n { field: `${ModelUserBranchFields.user_id}`, operator: \"=\", value: userId }\n ] as any\n\n if (onlyHQ === true) {\n filters.push({\n field: `${ModelUserBranchFields.is_hq}`, operator: \"=\", value: 1\n })\n }\n\n let { data } = await listUserBranches({\n limit,\n offset: 0,\n filters,\n sortfield: `${ModelUserBranchFields.user_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data\n };\n\n const listUserBranches = async ({\n limit,\n offset,\n filters = [],\n sortfield,\n sortorder,\n datatypes = []\n }: UserBranchListProps) => {\n\n let sqlSelect: string[] = []\n let sqlRelation: string[] = []\n let sqlGroupBy: string[] = []\n\n let sqlSelectAgg: string[] = []\n let sqlRelationAgg: string[] = []\n\n sqlSelect = [\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, regionSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n sqlRelation = [\n buildSqlRelation(\"left\", \"brn\", \"countries\", \"cou\", [\"brn.country_id = cou.country_id\", \"cou.isdelete = false\", \"cou.istrash = false\"]),\n buildSqlRelation(\"left\", \"brn\", \"states\", \"state\", [\"brn.state_id = state.state_id\", \"state.isdelete = false\", \"state.istrash = false\"]),\n buildSqlRelation(\"left\", \"brn\", \"areas\", \"area\", [\"brn.area_id = area.area_id\", \"area.isdelete = false\", \"area.istrash = false\"]),\n buildSqlRelation(\"left\", \"brn\", \"users\", \"creator\", [\"brn.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"brn\", \"users\", \"updater\", [\"brn.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n // sqlRelationAgg = [\n // buildSqlRelation(\"left\", \"brn\", \"document_items\", \"docitm\", [\"brn.document_id = docitm.document_id\", \"docitm.isdelete = false\", \"docitm.istrash = false\"]),\n // ]\n\n sqlGroupBy = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(regionSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...regionSqlSelect,\n ...defaultSqlSelect\n }\n\n // if (datatypes.includes(salesOrderDataTypes.salesOrderInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"document\", documentTypeKey.toLowerCase() as any)\n\n // const salesOrderInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"dif\", activeInjectionFields)\n\n // filterColumns = { ...filterColumns, ...salesOrderInjectionFieldSqlSelect }\n\n // sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, salesOrderInjectionFieldSqlSelect)] : [])]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"brn\", \"document_injection_fields\", \"dif\", [\"brn.document_id = dif.document_id\", \"dif.field_ref = 'document'\", `dif.field_module = '${documentTypeKey.toLowerCase()}'`, \"dif.isdelete = false\", \"dif.istrash = false\"])]\n // sqlGroupBy = [...sqlGroupBy, ...Object.keys(salesOrderInjectionFieldSqlSelect)]\n // }\n\n // let itemSqlSelectAgg = buildDocumentItemSqlSelectAgg()\n\n // if (datatypes.includes(salesOrderDataTypes.salesOrderItemInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"document_item\", documentTypeKey.toLowerCase() as any)\n\n // const salesOrderItemInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"difi\", activeInjectionFields)\n\n // if (Object.entries(salesOrderItemInjectionFieldSqlSelect).length > 0) {\n // Object.entries(salesOrderItemInjectionFieldSqlSelect).map(([col, alias]) => {\n // itemSqlSelectAgg.push(`'${alias}', ${col}`)\n // })\n // }\n\n // sqlRelationAgg = [...sqlRelationAgg, buildSqlRelation(\"left\", \"docitm\", \"document_injection_fields\", \"difi\", [\"docitm.document_item_id = difi.document_item_id\", \"difi.field_ref = 'document_item'\", `difi.field_module = '${documentTypeKey.toLowerCase()}'`, \"difi.isdelete = false\", \"difi.istrash = false\"])]\n\n // }\n\n // let itemSqlSelect = buildDocumentItemSqlSelect(itemSqlSelectAgg)\n\n // sqlSelectAgg = [...sqlSelectAgg, ...[buildSqlSelect(``, itemSqlSelect)]]\n\n let sqlWhere = [\n `brn.isdelete = false`,\n `brn.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 // get the data (pagination)\n const sqlRaw = buildSqlRawSelect({\n tableName: \"branches\",\n mainAlias: \"brn\",\n accountId: rest.accountId,\n sqlSelect: [...sqlSelect, ...sqlSelectAgg],\n sqlRelation: [...sqlRelation, ...sqlRelationAgg],\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n let data = await userBranchModel.raw(sqlRaw)\n\n // get the count\n const sqlRawCount = buildSqlRawSelectCount({\n tableName: \"branches\",\n mainAlias: \"brn\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby\n })\n\n let count = await userBranchModel.raw(sqlRawCount)\n\n const response = {\n data,\n total: data.length ? Number(count[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n // const removeUserBranches = async ({ userBranchIds }: UserBranchRemoveProps): Promise<User[] | null> => {\n\n // if (!userBranchIds.length) throwError('id is required');\n\n // const response = await userModel.trash({ userBranchIds, updateUserId: actionUserId });\n\n // return response\n // };\n\n const getUserBranchDataTypes = () => {\n\n let data: any[] = [];\n let total = 0;\n\n if (userBranchType === \"branch\") {\n // data = customerService.getDataTypes()\n }\n\n // const data = await userModel.list(payload);\n\n // if (!data?.file_id) {\n // throw new Error(`Invalid id: ${id}`);\n // }\n\n return data\n };\n\n return {\n // uploadFileByBuffer,\n getUserBranch,\n getUserBranchByUserId,\n listUserBranches,\n // removeUsers,\n getUserBranchDataTypes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"UserBranchService.js","sourceRoot":"","sources":["../../../src/services/branch/UserBranchService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n UserBranchModel,\n ModelUserFields,\n ModelUserBranchFields,\n ModelCountryFields,\n ModelStateFields,\n ModelAreaFields\n} from \"@/models\";\n\nimport { buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, getListWithCount, getUserBranchRelationMaps } from \"@/lib\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\nimport { DefaultServiceProps } from \"@/utils\";\n\nexport const userBranchUserTypes = {\n customer: \"customer\",\n retailer: \"retailer\"\n}\n\nexport const userBranchTypes = {\n branch: \"branch\",\n branch_shipping: \"branch_shipping\",\n shipping_address: \"shipping_address\"\n} as const\n\nexport type UserBranchType = typeof userBranchTypes[keyof typeof userBranchTypes]\n\nexport type UserBranchUserType = typeof userBranchUserTypes[keyof typeof userBranchUserTypes]\n\nexport type UserBranchServiceProps = DefaultServiceProps & {\n userBranchUserType: UserBranchUserType,\n userBranchType: UserBranchType,\n};\n\nexport type UserBranchGetProps = QueryGet & {\n userBranchId: number,\n};\n\nexport type UserBranchByUserIdGetProps = QueryGet & {\n userId: number,\n onlyHQ?: boolean\n limit?: number\n};\n\nexport type UserBranchListProps = QueryList & {\n // id: number,\n};\n\nexport type UserBranchRemoveProps = {\n userBranchIds: number[]\n};\n\nexport type UserBranchCreateProps = {\n userBranchType?: UserBranchType,\n data:\n // driver_image\n {\n administrator: {\n filename: string;\n // contentType: string;\n // bucketName: string;\n // projectId: string;\n // foldernameYear: string;\n // foldernameMonth: string;\n // foldernameDay: string;\n // uploadType: FileUploadType,\n // bufferFilename: string,\n // assetUrl: string,\n // referenceId: string,\n // referenceLabel: string,\n // referenceType: string,\n // batchCode?: string,\n // fileSizeBytes: number,\n // fileCompressFormat: FileCompressFormat,\n // requestFileSizeBytes: number,\n // requestFilename: string,\n // reference2Id: string,\n // reference2Label: string,\n // reference2Type: string,\n }\n }\n}\n\nexport type UserBranchUpdateProps = {\n userBranchType?: UserBranchType,\n data:\n // driver_image\n {\n administrator: {\n filename: string;\n // contentType: string;\n // bucketName: string;\n // projectId: string;\n // foldernameYear: string;\n // foldernameMonth: string;\n // foldernameDay: string;\n // uploadType: FileUploadType,\n // bufferFilename: string,\n // assetUrl: string,\n // referenceId: string,\n // referenceLabel: string,\n // referenceType: string,\n // batchCode?: string,\n // fileSizeBytes: number,\n // fileCompressFormat: FileCompressFormat,\n // requestFileSizeBytes: number,\n // requestFilename: string,\n // reference2Id: string,\n // reference2Label: string,\n // reference2Type: string,\n }\n }\n}\n\n// const getCreatePayload = (branchType: BranchType, data: UserBranchCreateProps[\"data\"]) => {\n\n// if (branchType === \"administrator\" && \"administrator\" in data) {\n\n// return {\n// user_type: branchType,\n// // file_name: data.driverImage.filename,\n// // content_type: data.driverImage.contentType,\n// // bucket_name: data.driverImage.bucketName,\n// // project_id: data.driverImage.projectId,\n// // foldername_year: data.driverImage.foldernameYear,\n// // foldername_month: data.driverImage.foldernameMonth,\n// // foldername_day: data.driverImage.foldernameDay,\n// // upload_type: data.driverImage.uploadType,\n// // buffer_file_name: data.driverImage.bufferFilename,\n// // asset_url: data.driverImage.assetUrl,\n// // reference_id: data.driverImage.referenceId,\n// // reference_label: data.driverImage.referenceLabel,\n// // reference_type: data.driverImage.referenceType,\n// // batch_code: data?.driverImage?.batchCode ?? \"\",\n// // file_size_bytes: data.driverImage.fileSizeBytes,\n// // file_compress_format: data.driverImage.fileCompressFormat,\n// // request_file_size_bytes: data.driverImage.requestFileSizeBytes,\n// // request_file_name: data.driverImage.requestFilename,\n// // reference2_id: data.driverImage.reference2Id,\n// // reference2_label: data.driverImage.reference2Label,\n// // reference2_type: data.driverImage.reference2Type,\n// }\n// }\n\n// return false\n\n// }\n\nlet mainSqlSelect = {\n [`brn.${ModelUserBranchFields.branch_id}`]: \"branch_id\",\n [`brn.${ModelUserBranchFields.user_id}`]: \"user_id\",\n [`brn.${ModelUserBranchFields.area_id}`]: \"area_id\",\n [`brn.${ModelUserBranchFields.state_id}`]: \"state_id\",\n [`brn.${ModelUserBranchFields.country_id}`]: \"country_id\",\n [`brn.${ModelUserBranchFields.address_1}`]: \"address_1\",\n [`brn.${ModelUserBranchFields.address_2}`]: \"address_2\",\n [`brn.${ModelUserBranchFields.branch_code}`]: \"branch_code\",\n [`brn.${ModelUserBranchFields.branch_contact}`]: \"branch_contact\",\n [`brn.${ModelUserBranchFields.branch_email}`]: \"branch_email\",\n [`brn.${ModelUserBranchFields.branch_name}`]: \"branch_name\",\n [`brn.${ModelUserBranchFields.status}`]: \"status\",\n [`brn.${ModelUserBranchFields.is_hq}`]: \"is_hq\",\n [`brn.${ModelUserBranchFields.pic_contact}`]: \"pic_contact\",\n [`brn.${ModelUserBranchFields.pic_email}`]: \"pic_email\",\n [`brn.${ModelUserBranchFields.pic_name}`]: \"pic_name\",\n [`brn.${ModelUserBranchFields.postcode}`]: \"postcode\",\n [`brn.${ModelUserBranchFields.remark}`]: \"remark\",\n [`brn.${ModelUserBranchFields.type}`]: \"type\",\n}\n\nlet regionSqlSelect = {\n [`cou.${ModelCountryFields.country_name}`]: \"country_name\",\n [`state.${ModelStateFields.state_name}`]: \"state_name\",\n [`area.${ModelAreaFields.area_name}`]: \"area_name\",\n}\n\nlet defaultSqlSelect = {\n [`brn.${ModelUserBranchFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`brn.${ModelUserBranchFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`brn.${ModelUserBranchFields.isdelete}`]: \"isdelete\",\n [`brn.${ModelUserBranchFields.istrash}`]: \"istrash\",\n [`brn.${ModelUserBranchFields.accountid}`]: \"accountid\",\n}\n\nconst { relationKeys, sqlRelationMaps } = getUserBranchRelationMaps()\n\nexport const UserBranchService = (props: UserBranchServiceProps) => {\n\n const {\n userBranchType = \"branch\",\n ...rest\n } = props\n\n const userBranchModel = UserBranchModel({ ...rest })\n\n // const createUserBranch = async ({ data, branchType: overrideBranchType }: UserBranchCreateProps) => {\n\n // const _branchType = overrideBranchType || branchType\n\n // const _data = getCreatePayload(_branchType, data)\n\n // if (!_data) {\n // throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n // }\n\n // const response = await userModel.create({ data: _data, createUserId: 0 })\n\n // return response\n // }\n\n const getUserBranch = async ({ userBranchId, datatypes = [] }: UserBranchGetProps) => {\n\n // let data: any = {}\n\n // if (branchType === \"branch\") {\n // // data = await customerService.getCustomer({ id, datatypes: datatypes as CustomerGetProps[\"datatypes\"] })\n // }\n\n // if (branchType === \"branch_shipping\") {\n // // data = await administratorService.getAdministrator({ id, })\n // }\n\n // if (branchType === \"shipping_address\") {\n // // data = await administratorService.getAdministrator({ id, })\n // }\n\n let { data } = await listUserBranches({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelUserBranchFields.branch_id}`, operator: \"=\", value: userBranchId }],\n sortfield: `${ModelUserBranchFields.branch_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n // if (!data) {\n // throw new Error(`Invalid id: ${id}`);\n // }\n\n return data\n };\n\n const getUserBranchByUserId = async ({ userId, onlyHQ = false, limit = 100, datatypes = [] }: UserBranchByUserIdGetProps) => {\n\n let filters = [\n { field: `${ModelUserBranchFields.user_id}`, operator: \"=\", value: userId }\n ] as any\n\n if (onlyHQ === true) {\n filters.push({\n field: `${ModelUserBranchFields.is_hq}`, operator: \"=\", value: 1\n })\n }\n\n let { data } = await listUserBranches({\n limit,\n offset: 0,\n filters,\n sortfield: `${ModelUserBranchFields.user_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data\n };\n\n const listUserBranches = async ({\n limit,\n offset,\n filters = [],\n sortfield,\n sortorder,\n datatypes = []\n }: UserBranchListProps) => {\n\n let sqlSelect: string[] = []\n let sqlRelation: string[] = []\n let sqlGroupBy: string[] = []\n\n let sqlSelectAgg: string[] = []\n let sqlRelationAgg: string[] = []\n\n sqlSelect = [\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, regionSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n // sqlRelation = [\n // buildSqlRelation(\"left\", \"brn\", \"countries\", \"cou\", [\"brn.country_id = cou.country_id\", \"cou.isdelete = false\", \"cou.istrash = false\"]),\n // buildSqlRelation(\"left\", \"brn\", \"states\", \"state\", [\"brn.state_id = state.state_id\", \"state.isdelete = false\", \"state.istrash = false\"]),\n // buildSqlRelation(\"left\", \"brn\", \"areas\", \"area\", [\"brn.area_id = area.area_id\", \"area.isdelete = false\", \"area.istrash = false\"]),\n // buildSqlRelation(\"left\", \"brn\", \"users\", \"creator\", [\"brn.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n // buildSqlRelation(\"left\", \"brn\", \"users\", \"updater\", [\"brn.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n // ]\n\n sqlRelation = [\n sqlRelationMaps.cou,\n sqlRelationMaps.state,\n sqlRelationMaps.area,\n sqlRelationMaps.creator,\n sqlRelationMaps.updater\n ]\n\n // sqlRelationAgg = [\n // buildSqlRelation(\"left\", \"brn\", \"document_items\", \"docitm\", [\"brn.document_id = docitm.document_id\", \"docitm.isdelete = false\", \"docitm.istrash = false\"]),\n // ]\n\n sqlGroupBy = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(regionSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...regionSqlSelect,\n ...defaultSqlSelect\n }\n\n // if (datatypes.includes(salesOrderDataTypes.salesOrderInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"document\", documentTypeKey.toLowerCase() as any)\n\n // const salesOrderInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"dif\", activeInjectionFields)\n\n // filterColumns = { ...filterColumns, ...salesOrderInjectionFieldSqlSelect }\n\n // sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, salesOrderInjectionFieldSqlSelect)] : [])]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"brn\", \"document_injection_fields\", \"dif\", [\"brn.document_id = dif.document_id\", \"dif.field_ref = 'document'\", `dif.field_module = '${documentTypeKey.toLowerCase()}'`, \"dif.isdelete = false\", \"dif.istrash = false\"])]\n // sqlGroupBy = [...sqlGroupBy, ...Object.keys(salesOrderInjectionFieldSqlSelect)]\n // }\n\n // let itemSqlSelectAgg = buildDocumentItemSqlSelectAgg()\n\n // if (datatypes.includes(salesOrderDataTypes.salesOrderItemInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"document_item\", documentTypeKey.toLowerCase() as any)\n\n // const salesOrderItemInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"difi\", activeInjectionFields)\n\n // if (Object.entries(salesOrderItemInjectionFieldSqlSelect).length > 0) {\n // Object.entries(salesOrderItemInjectionFieldSqlSelect).map(([col, alias]) => {\n // itemSqlSelectAgg.push(`'${alias}', ${col}`)\n // })\n // }\n\n // sqlRelationAgg = [...sqlRelationAgg, buildSqlRelation(\"left\", \"docitm\", \"document_injection_fields\", \"difi\", [\"docitm.document_item_id = difi.document_item_id\", \"difi.field_ref = 'document_item'\", `difi.field_module = '${documentTypeKey.toLowerCase()}'`, \"difi.isdelete = false\", \"difi.istrash = false\"])]\n\n // }\n\n // let itemSqlSelect = buildDocumentItemSqlSelect(itemSqlSelectAgg)\n\n // sqlSelectAgg = [...sqlSelectAgg, ...[buildSqlSelect(``, itemSqlSelect)]]\n\n let sqlWhere = [\n `brn.isdelete = false`,\n `brn.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 // get the data (pagination)\n // const sqlRaw = buildSqlRawSelect({\n // tableName: \"branches\",\n // mainAlias: \"brn\",\n // accountId: rest.accountId,\n // sqlSelect: [...sqlSelect, ...sqlSelectAgg],\n // sqlRelation: [...sqlRelation, ...sqlRelationAgg],\n // sqlWhere,\n // sqlGroupBy,\n // sqlOrderby,\n // sqlLimitOffset\n // })\n\n // let data = await userBranchModel.raw(sqlRaw)\n\n // // get the count\n // const sqlRawCount = buildSqlRawSelectCount({\n // tableName: \"branches\",\n // mainAlias: \"brn\",\n // accountId: rest.accountId,\n // sqlSelect,\n // sqlRelation,\n // sqlWhere,\n // sqlGroupBy,\n // sqlOrderby\n // })\n\n // let count = await userBranchModel.raw(sqlRawCount)\n\n // const response = {\n // data,\n // total: data.length ? Number(count[0].filtered_count) : 0\n // }\n\n // get the listing data & count\n const { data, total } = await getListWithCount({\n model: userBranchModel,\n tableName: \"branches\",\n mainAlias: \"brn\",\n countKey: `${ModelUserBranchFields.branch_id}`,\n accountId: rest.accountId,\n sqlRelationMaps,\n filters,\n filterColumns,\n sqlSelect,\n sqlSelectAgg,\n sqlRelation,\n sqlRelationAgg,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n const response = {\n data,\n total\n }\n\n return response\n\n };\n\n // const removeUserBranches = async ({ userBranchIds }: UserBranchRemoveProps): Promise<User[] | null> => {\n\n // if (!userBranchIds.length) throwError('id is required');\n\n // const response = await userModel.trash({ userBranchIds, updateUserId: actionUserId });\n\n // return response\n // };\n\n const getUserBranchDataTypes = () => {\n\n let data: any[] = [];\n let total = 0;\n\n if (userBranchType === \"branch\") {\n // data = customerService.getDataTypes()\n }\n\n // const data = await userModel.list(payload);\n\n // if (!data?.file_id) {\n // throw new Error(`Invalid id: ${id}`);\n // }\n\n return data\n };\n\n return {\n // uploadFileByBuffer,\n getUserBranch,\n getUserBranchByUserId,\n listUserBranches,\n // removeUsers,\n getUserBranchDataTypes\n }\n\n}\n\n"]}
@@ -10,6 +10,7 @@ exports.documentProfileTypes = {
10
10
  shipping: "shipping",
11
11
  billing: "billing"
12
12
  };
13
+ const { relationKeys, sqlRelationMaps } = (0, lib_1.getDocumentProfileRelationMaps)();
13
14
  const getCreatePayload = (documentId, documentType, data) => {
14
15
  return {
15
16
  [`${models_1.ModelDocumentProfileFields.document_id}`]: documentId,
@@ -268,9 +269,13 @@ const DocumentProfileService = (props) => {
268
269
  (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
269
270
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
270
271
  ];
272
+ // sqlRelation = [
273
+ // buildSqlRelation("left", "docpro", "users", "creator", ["docpro.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
274
+ // buildSqlRelation("left", "docpro", "users", "updater", ["docpro.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"])
275
+ // ]
271
276
  sqlRelation = [
272
- (0, lib_1.buildSqlRelation)("left", "docpro", "users", "creator", ["docpro.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
273
- (0, lib_1.buildSqlRelation)("left", "docpro", "users", "updater", ["docpro.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"])
277
+ sqlRelationMaps.creator,
278
+ sqlRelationMaps.updater
274
279
  ];
275
280
  // sqlRelationAgg = [
276
281
  // buildSqlRelation("left", "docpro", "document_items", "docitm", ["docpro.document_id = docitm.document_id", "docitm.isdelete = false", "docitm.istrash = false"]),
@@ -291,34 +296,57 @@ const DocumentProfileService = (props) => {
291
296
  let sqlOrderby = (0, lib_1.buildSqlOrderBy)(sortfield, sortorder);
292
297
  let sqlLimitOffset = (0, lib_1.buildSqlLimitOffset)(limit, offset);
293
298
  // get the data (pagination)
294
- const sqlRaw = (0, lib_1.buildSqlRawSelect)({
295
- tableName: "document_profiles",
296
- mainAlias: "docpro",
297
- accountId: rest.accountId,
298
- sqlSelect: [...sqlSelect, ...sqlSelectAgg],
299
- sqlRelation: [...sqlRelation, ...sqlRelationAgg],
300
- sqlWhere,
301
- sqlGroupBy,
302
- sqlOrderby,
303
- sqlLimitOffset
304
- });
305
- let data = await documentModel.raw(sqlRaw);
306
- // get the count
307
- const sqlRawCount = (0, lib_1.buildSqlRawSelectCount)({
299
+ // const sqlRaw = buildSqlRawSelect({
300
+ // tableName: "document_profiles",
301
+ // mainAlias: "docpro",
302
+ // accountId: rest.accountId,
303
+ // sqlSelect: [...sqlSelect, ...sqlSelectAgg],
304
+ // sqlRelation: [...sqlRelation, ...sqlRelationAgg],
305
+ // sqlWhere,
306
+ // sqlGroupBy,
307
+ // sqlOrderby,
308
+ // sqlLimitOffset
309
+ // })
310
+ // let data = await documentModel.raw(sqlRaw)
311
+ // // get the count
312
+ // const sqlRawCount = buildSqlRawSelectCount({
313
+ // tableName: "document_profiles",
314
+ // mainAlias: "docpro",
315
+ // accountId: rest.accountId,
316
+ // sqlSelect,
317
+ // sqlRelation,
318
+ // sqlWhere,
319
+ // sqlGroupBy,
320
+ // sqlOrderby
321
+ // })
322
+ // let count = await documentModel.raw(sqlRawCount)
323
+ // get the listing data & count
324
+ const { data, total } = await (0, lib_1.getListWithCount)({
325
+ model: documentModel,
308
326
  tableName: "document_profiles",
309
327
  mainAlias: "docpro",
328
+ countKey: `${models_1.ModelDocumentProfileFields.document_profile_id}`,
310
329
  accountId: rest.accountId,
330
+ sqlRelationMaps,
331
+ filters,
332
+ filterColumns,
311
333
  sqlSelect,
334
+ sqlSelectAgg,
312
335
  sqlRelation,
336
+ sqlRelationAgg,
313
337
  sqlWhere,
314
338
  sqlGroupBy,
315
- sqlOrderby
339
+ sqlOrderby,
340
+ sqlLimitOffset
316
341
  });
317
- let count = await documentModel.raw(sqlRawCount);
318
342
  const response = {
319
343
  data,
320
- total: data.length ? Number(count[0].filtered_count) : 0
344
+ total
321
345
  };
346
+ // const response = {
347
+ // data,
348
+ // total: data.length ? Number(count[0].filtered_count) : 0
349
+ // }
322
350
  return response;
323
351
  };
324
352
  const removeDocumentProfiles = async ({ documentIds }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentProfileService.js","sourceRoot":"","sources":["../../../src/services/document/DocumentProfileService.ts"],"names":[],"mappings":";;;AAAA,qCAKkB;AAElB,mCAAiE;AAEjE,yCAA8C;AAM9C,+BAAwL;AAE3K,QAAA,oBAAoB,GAAG;IAChC,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;CACZ,CAAA;AAsEV,MAAM,gBAAgB,GAAG,CAAC,UAAkB,EAAE,YAA0B,EAAE,IAAwC,EAAE,EAAE;IAElH,OAAO;QACH,CAAC,GAAG,mCAA0B,CAAC,WAAW,EAAE,CAAC,EAAE,UAAU;QACzD,CAAC,GAAG,mCAA0B,CAAC,aAAa,EAAE,CAAC,EAAE,YAAY;QAC7D,CAAC,GAAG,mCAA0B,CAAC,cAAc,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY;QACnE,CAAC,GAAG,mCAA0B,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM;QACtD,CAAC,GAAG,mCAA0B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI;QACjD,CAAC,GAAG,mCAA0B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;QACtE,CAAC,GAAG,mCAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW;QAChE,CAAC,GAAG,mCAA0B,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ;QAC1D,CAAC,GAAG,mCAA0B,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ;QAC1D,CAAC,GAAG,mCAA0B,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS;QACzD,CAAC,GAAG,mCAA0B,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK;QACnD,CAAC,GAAG,mCAA0B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU;QACvD,CAAC,GAAG,mCAA0B,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ;QACzD,CAAC,GAAG,mCAA0B,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM;QACtD,CAAC,GAAG,mCAA0B,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO;QACxD,CAAC,GAAG,mCAA0B,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS;KAC/D,CAAA;AAEL,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,YAA0B,EAAE,IAAwC,EAAE,EAAE;IAE9F,OAAO;QACH,6DAA6D;QAC7D,iEAAiE;QACjE,CAAC,GAAG,mCAA0B,CAAC,cAAc,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY;QACnE,CAAC,GAAG,mCAA0B,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM;QACtD,CAAC,GAAG,mCAA0B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI;QACjD,CAAC,GAAG,mCAA0B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;QACtE,CAAC,GAAG,mCAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW;QAChE,CAAC,GAAG,mCAA0B,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ;QAC1D,CAAC,GAAG,mCAA0B,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ;QAC1D,CAAC,GAAG,mCAA0B,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS;QACzD,CAAC,GAAG,mCAA0B,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK;QACnD,CAAC,GAAG,mCAA0B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU;QACvD,CAAC,GAAG,mCAA0B,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ;QACzD,CAAC,GAAG,mCAA0B,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM;QACtD,CAAC,GAAG,mCAA0B,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO;QACxD,CAAC,GAAG,mCAA0B,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS;KAC/D,CAAA;AAEL,CAAC,CAAA;AAED,IAAI,aAAa,GAAG;IAChB,CAAC,UAAU,mCAA0B,CAAC,mBAAmB,EAAE,CAAC,EAAE,qBAAqB;IACnF,CAAC,UAAU,mCAA0B,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM;IACrD,CAAC,UAAU,mCAA0B,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM;IACrD,CAAC,UAAU,mCAA0B,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM;IACrD,CAAC,UAAU,mCAA0B,CAAC,WAAW,EAAE,CAAC,EAAE,aAAa;IACnE,CAAC,UAAU,mCAA0B,CAAC,aAAa,EAAE,CAAC,EAAE,eAAe;IACvE,CAAC,UAAU,mCAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,cAAc;IACrE,CAAC,UAAU,mCAA0B,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;IAC/D,CAAC,UAAU,mCAA0B,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;IAC/D,CAAC,UAAU,mCAA0B,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IAC3D,CAAC,UAAU,mCAA0B,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO;IACvD,CAAC,UAAU,mCAA0B,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;IAC7D,yDAAyD;IACzD,CAAC,UAAU,mCAA0B,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IAC3D,8DAA8D;IAC9D,0EAA0E;IAC1E,CAAC,UAAU,mCAA0B,CAAC,UAAU,EAAE,CAAC,EAAE,YAAY;IACjE,kEAAkE;IAClE,CAAC,UAAU,mCAA0B,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;IAC7D,CAAC,UAAU,mCAA0B,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IAC3D,CAAC,UAAU,mCAA0B,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;CAC5E,CAAA;AACD,IAAI,gBAAgB,GAAG;IACnB,CAAC,UAAU,mCAA0B,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IACzE,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,UAAU,mCAA0B,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IACzE,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,UAAU,mCAA0B,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;IAC7D,CAAC,UAAU,mCAA0B,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IAC3D,CAAC,UAAU,mCAA0B,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;CAClE,CAAA;AAEM,MAAM,sBAAsB,GAAG,CAAC,KAAkC,EAAE,EAAE;IAEzE,MAAM,EACF,YAAY,GAAG,OAAO,EACtB,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,oBAAoB,GAAG,IAAA,6BAAoB,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAC9D,MAAM,aAAa,GAAG,IAAA,sBAAa,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAEhD,MAAM,iBAAiB,GAAG,IAAA,4BAAiB,EAAC,EAAE,GAAG,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAA;IAElH,8CAA8C;IAC9C,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,oBAAoB,EAAiC,EAAE,EAAE;QAE/H,MAAM,aAAa,GAAG,oBAAoB,IAAI,YAAY,CAAA;QAE1D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,qCAAqC;QAErC,IAAI,eAAe,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;QAE5G,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAA,kBAAU,EAAC,8BAA8B,MAAM,EAAE,CAAC,CAAA;QACtD,CAAC;QAED,IAAI,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QAEvC,gDAAgD;QAEhD,yDAAyD;QACzD,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAA;QAElH,IAAI,QAAQ,GAAQ,EAAE,CAAA;QAEtB,IAAI,YAAY,EAAE,CAAC;YAEf,IAAI,OAAO,GAA+B;gBACtC,iBAAiB,EAAE,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC;gBAC5D,YAAY,EAAE,aAAa;gBAC3B,IAAI,EAAE;oBACF,WAAW,EAAE,SAAS;oBACtB,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC;oBAC9C,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC;oBACtC,IAAI,EAAE,cAAc,CAAC,WAAW,IAAI,EAAE;oBACtC,SAAS,EAAE,cAAc,CAAC,cAAc,IAAI,EAAE;oBAC9C,KAAK,EAAE,cAAc,CAAC,YAAY,IAAI,EAAE;oBACxC,UAAU,EAAE,GAAG,cAAc,EAAE,QAAQ,IAAI,EAAE,EAAE;oBAC/C,QAAQ,EAAE,cAAc,CAAC,QAAQ,IAAI,EAAE;oBACvC,WAAW,EAAE,cAAc,CAAC,WAAW,IAAI,EAAE;oBAC7C,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC;oBACxC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC;oBACtC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC;oBAC5C,QAAQ,EAAE,cAAc,CAAC,SAAS,IAAI,EAAE;oBACxC,QAAQ,EAAE,cAAc,CAAC,SAAS,IAAI,EAAE;iBAC3C;aACJ,CAAA;YAED,sCAAsC;YACtC,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAA;QAEnD,CAAC;aAAM,CAAC,CAAC,aAAa;YAClB,IAAI,OAAO,GAA+B;gBACtC,UAAU;gBACV,YAAY,EAAE,aAAa;gBAC3B,IAAI,EAAE;oBACF,WAAW,EAAE,SAAS;oBACtB,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC;oBAC9C,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC;oBACtC,IAAI,EAAE,cAAc,CAAC,WAAW,IAAI,EAAE;oBACtC,SAAS,EAAE,cAAc,CAAC,cAAc,IAAI,EAAE;oBAC9C,KAAK,EAAE,cAAc,CAAC,YAAY,IAAI,EAAE;oBACxC,UAAU,EAAE,GAAG,cAAc,EAAE,QAAQ,IAAI,EAAE,EAAE;oBAC/C,QAAQ,EAAE,cAAc,CAAC,QAAQ,IAAI,EAAE;oBACvC,WAAW,EAAE,cAAc,CAAC,WAAW,IAAI,EAAE;oBAC7C,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC;oBACxC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC;oBACtC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC;oBAC5C,QAAQ,EAAE,cAAc,CAAC,SAAS,IAAI,EAAE;oBACxC,QAAQ,EAAE,cAAc,CAAC,SAAS,IAAI,EAAE;iBAC3C;aACJ,CAAA;YAED,sCAAsC;YACtC,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAA;QAEnD,CAAC;QAED,OAAO,QAAQ,CAAA;IAEnB,CAAC,CAAA;IAED,8CAA8C;IAC9C,MAAM,2BAA2B,GAAG,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,GAAG,UAAU,EAAE,YAAY,EAAE,oBAAoB,EAAoC,EAAE,EAAE;QAEvK,MAAM,aAAa,GAAG,oBAAoB,IAAI,YAAY,CAAA;QAE1D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACtC,iCAAiC;QACjC,qCAAqC;QAErC,IAAI,UAAU,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;QAEvF,wCAAwC;QAExC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;YACvB,IAAA,kBAAU,EAAC,mCAAmC,YAAY,EAAE,CAAC,CAAA;QACjE,CAAC;QAED,uEAAuE;QACvE,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAA;QAE5H,IAAI,QAAQ,GAAQ,EAAE,CAAA;QAEtB,IAAI,YAAY,EAAE,CAAC;YAEf,IAAI,OAAO,GAA+B;gBACtC,iBAAiB,EAAE,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC;gBAC5D,YAAY,EAAE,aAAa;gBAC3B,IAAI,EAAE;oBACF,WAAW,EAAE,mBAAmB;oBAChC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;oBAC1C,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;oBAElC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC;oBACnE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,IAAI,EAAE,CAAC;oBAC3E,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC;oBACvE,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;oBACxF,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;oBAC5E,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC;oBACxF,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAC3E,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;oBACvE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;oBACnF,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;oBAC7E,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;iBAChF;aACJ,CAAA;YAED,oDAAoD;YACpD,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAA;QAEnD,CAAC;aAAM,CAAC;YAEJ,IAAI,OAAO,GAA+B;gBACtC,UAAU;gBACV,YAAY,EAAE,aAAa;gBAC3B,IAAI,EAAE;oBACF,WAAW,EAAE,mBAAmB;oBAChC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;oBAC1C,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;oBAElC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC;oBACnE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,IAAI,EAAE,CAAC;oBAC3E,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC;oBACvE,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;oBACxF,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;oBAC5E,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC;oBACxF,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAC3E,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;oBACvE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;oBACnF,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;oBAC7E,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;iBAChF;aACJ,CAAA;YAED,oDAAoD;YACpD,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACnD,CAAC;QAED,OAAO,QAAQ,CAAA;IAEnB,CAAC,CAAA;IAED,UAAU;IACV,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,oBAAoB,EAA8B,EAAE,EAAE;QAEzH,MAAM,aAAa,GAAG,oBAAoB,IAAI,YAAY,CAAA;QAE1D,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;QAE/D,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,6CAA6C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,0BAA0B;QAC1B,OAAO,MAAM,oBAAoB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAE7D,CAAC,CAAA;IAED,UAAU;IACV,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,oBAAoB,EAA8B,EAAE,EAAE;QAEhI,MAAM,aAAa,GAAG,oBAAoB,IAAI,YAAY,CAAA;QAE1D,MAAM,KAAK,GAAG,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;QAEnD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,6CAA6C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,0BAA0B;QAC1B,OAAO,MAAM,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAEpF,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,KAAK,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,YAAY,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAA2B,EAAE,EAAE;QAEnH,IAAI,OAAO,GAAG,EAAE,CAAA;QAEhB,IAAI,YAAY,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,mCAA0B,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;QAC9G,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,mCAA0B,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAClH,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,mCAA0B,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QAClH,CAAC;QAED,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,oBAAoB,CAAC;YACtC,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,OAA+B;YACxC,SAAS,EAAE,GAAG,mCAA0B,CAAC,WAAW,EAAE;YACtD,SAAS,EAAE,KAAK;YAChB,gBAAgB;SACnB,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3B,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,KAAK,EAAE,EAChC,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS;IACT,iBAAiB;MACM,EAAE,EAAE;QAE3B,IAAI,SAAS,GAAa,EAAE,CAAA;QAC5B,IAAI,WAAW,GAAa,EAAE,CAAA;QAC9B,IAAI,UAAU,GAAa,EAAE,CAAA;QAE7B,IAAI,YAAY,GAAa,EAAE,CAAA;QAC/B,IAAI,cAAc,GAAa,EAAE,CAAA;QAEjC,SAAS,GAAG;YACR,IAAA,oBAAc,EAAC,EAAE,EAAE,aAAa,CAAC;YACjC,IAAA,oBAAc,EAAC,EAAE,EAAE,gBAAgB,CAAC;SACvC,CAAA;QAED,WAAW,GAAG;YACV,IAAA,sBAAgB,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,uCAAuC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;YACxJ,IAAA,sBAAgB,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,uCAAuC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;SAC3J,CAAA;QAED,qBAAqB;QACrB,wKAAwK;QACxK,IAAI;QAEJ,UAAU,GAAG;YACT,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAC7B,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;SACnC,CAAA;QAED,IAAI,aAAa,GAAG;YAChB,GAAG,aAAa;YAChB,GAAG,gBAAgB;SACtB,CAAA;QAED,IAAI,QAAQ,GAAG;YACX,yBAAyB;YACzB,wBAAwB;YACxB,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,4BAA4B;QAC5B,MAAM,MAAM,GAAG,IAAA,uBAAiB,EAAC;YAC7B,SAAS,EAAE,mBAAmB;YAC9B,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,YAAY,CAAC;YAC1C,WAAW,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,cAAc,CAAC;YAChD,QAAQ;YACR,UAAU;YACV,UAAU;YACV,cAAc;SACjB,CAAC,CAAA;QAEF,IAAI,IAAI,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAE1C,gBAAgB;QAChB,MAAM,WAAW,GAAG,IAAA,4BAAsB,EAAC;YACvC,SAAS,EAAE,mBAAmB;YAC9B,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS;YACT,WAAW;YACX,QAAQ;YACR,UAAU;YACV,UAAU;SACb,CAAC,CAAA;QAEF,IAAI,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAEhD,MAAM,QAAQ,GAAG;YACb,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3D,CAAA;QAED,OAAO,QAAQ,CAAA;IAEnB,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAAE,WAAW,EAA8B,EAAE,EAAE;QAEjF,IAAI,CAAC,WAAW,CAAC,MAAM;YAAE,IAAA,kBAAU,EAAC,yBAAyB,CAAC,CAAC;QAE/D,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,mCAA0B,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAEtI,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;IAEF,OAAO;QACH,wBAAwB;QACxB,2BAA2B;QAC3B,sBAAsB;QACtB,4DAA4D;QAC5D,4DAA4D;KAC/D,CAAA;AAEL,CAAC,CAAA;AAhVY,QAAA,sBAAsB,0BAgVlC","sourcesContent":["import {\n DocumentModel,\n DocumentProfileModel,\n ModelDocumentProfileFields,\n ModelUserFields\n} from \"@/models\";\n\nimport { dayjs, DefaultServiceProps, throwError } from \"@/utils\";\n\nimport { UserBranchService } from \"@/services\"\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DocumentType } from \"./DocumentService\"\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlRawSelectCount, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nexport const documentProfileTypes = {\n profile: \"profile\",\n shipping: \"shipping\",\n billing: \"billing\"\n} as const\n\nexport type DocumentProfileType = typeof documentProfileTypes[keyof typeof documentProfileTypes]\n\nexport type DocumentProfileServiceProps = DefaultServiceProps & {\n documentType: DocumentType\n};\n\nexport type DocumentProfile = {\n userId: number,\n userBranchId: number,\n // documentId: number,\n profileType: DocumentProfileType,\n code?: string,\n profileName?: string,\n personName?: string,\n contactNo?: string,\n email?: string,\n address1?: string,\n address2?: string,\n postcode?: string,\n stateId?: number,\n areaId?: number,\n countryId?: number\n}\n\nexport type DocumentProfileGetProps = Omit<QueryGet, \"datatypes\"> & {\n documentId?: number | \"\",\n documentType?: DocumentType | \"\",\n profileType?: DocumentProfileType | \"\"\n};\n\nexport type DocumentProfileListProps = Omit<QueryList, \"datatypes\"> & {\n // profileType: DocumentProfileType\n};\n\nexport type DocumentProfileCreateProps = {\n documentId: number,\n documentType?: DocumentType,\n data: DocumentProfile\n}\n\nexport type DocumentProfileUpdateProps = {\n // documentId: number,\n documentProfileId: number,\n documentType?: DocumentType,\n data: DocumentProfile\n}\n\nexport type DocumentProfileReplaceHQProps = {\n documentId: number,\n documentType?: DocumentType,\n data: Pick<DocumentProfile, \"userId\"> & {\n // userType: \"customer\" | \"supplier\"\n }\n}\n\nexport type DocumentProfileReplaceOtherProps = {\n documentId: number,\n documentType?: DocumentType,\n documentProfileType: DocumentProfileType,\n data: Omit<DocumentProfile, \"userId\" | \"profileType\"> & {\n // userType: \"customer\" | \"supplier\"\n }\n}\n\nexport type DocumentProfileRemoveProps = {\n documentIds: BigInt[]\n};\n\nconst getCreatePayload = (documentId: number, documentType: DocumentType, data: DocumentProfileCreateProps[\"data\"]) => {\n\n return {\n [`${ModelDocumentProfileFields.document_id}`]: documentId,\n [`${ModelDocumentProfileFields.document_type}`]: documentType,\n [`${ModelDocumentProfileFields.user_branch_id}`]: data.userBranchId,\n [`${ModelDocumentProfileFields.user_id}`]: data.userId,\n [`${ModelDocumentProfileFields.code}`]: data.code,\n [`${ModelDocumentProfileFields.type}`]: data.profileType.toUpperCase(),\n [`${ModelDocumentProfileFields.profile_name}`]: data.profileName,\n [`${ModelDocumentProfileFields.address_1}`]: data.address1,\n [`${ModelDocumentProfileFields.address_2}`]: data.address2,\n [`${ModelDocumentProfileFields.contact}`]: data.contactNo,\n [`${ModelDocumentProfileFields.email}`]: data.email,\n [`${ModelDocumentProfileFields.name}`]: data.personName,\n [`${ModelDocumentProfileFields.postcode}`]: data.postcode,\n [`${ModelDocumentProfileFields.area_id}`]: data.areaId,\n [`${ModelDocumentProfileFields.state_id}`]: data.stateId,\n [`${ModelDocumentProfileFields.country_id}`]: data.countryId,\n }\n\n}\n\nconst getUpdatePayload = (documentType: DocumentType, data: DocumentProfileUpdateProps[\"data\"]) => {\n\n return {\n // [`${ModelDocumentProfileFields.document_id}`]: documentId,\n // [`${ModelDocumentProfileFields.document_type}`]: documentType,\n [`${ModelDocumentProfileFields.user_branch_id}`]: data.userBranchId,\n [`${ModelDocumentProfileFields.user_id}`]: data.userId,\n [`${ModelDocumentProfileFields.code}`]: data.code,\n [`${ModelDocumentProfileFields.type}`]: data.profileType.toUpperCase(),\n [`${ModelDocumentProfileFields.profile_name}`]: data.profileName,\n [`${ModelDocumentProfileFields.address_1}`]: data.address1,\n [`${ModelDocumentProfileFields.address_2}`]: data.address2,\n [`${ModelDocumentProfileFields.contact}`]: data.contactNo,\n [`${ModelDocumentProfileFields.email}`]: data.email,\n [`${ModelDocumentProfileFields.name}`]: data.personName,\n [`${ModelDocumentProfileFields.postcode}`]: data.postcode,\n [`${ModelDocumentProfileFields.area_id}`]: data.areaId,\n [`${ModelDocumentProfileFields.state_id}`]: data.stateId,\n [`${ModelDocumentProfileFields.country_id}`]: data.countryId,\n }\n\n}\n\nlet mainSqlSelect = {\n [`docpro.${ModelDocumentProfileFields.document_profile_id}`]: `document_profile_id`,\n [`docpro.${ModelDocumentProfileFields.code}`]: `code`,\n [`docpro.${ModelDocumentProfileFields.name}`]: `name`,\n [`docpro.${ModelDocumentProfileFields.type}`]: `type`,\n [`docpro.${ModelDocumentProfileFields.document_id}`]: `document_id`,\n [`docpro.${ModelDocumentProfileFields.document_type}`]: `document_type`,\n [`docpro.${ModelDocumentProfileFields.profile_name}`]: `profile_name`,\n [`docpro.${ModelDocumentProfileFields.address_1}`]: `address_1`,\n [`docpro.${ModelDocumentProfileFields.address_2}`]: `address_2`,\n [`docpro.${ModelDocumentProfileFields.contact}`]: `contact`,\n [`docpro.${ModelDocumentProfileFields.email}`]: `email`,\n [`docpro.${ModelDocumentProfileFields.postcode}`]: `postcode`,\n // [`docpro.${ModelDocumentProfileFields.area}`]: `area`,\n [`docpro.${ModelDocumentProfileFields.area_id}`]: `area_id`,\n // [`${aliasArea}.${ModelAreaFields.area_name}`]: `area_name`,\n // [`${aliasCountry}.${ModelCountryFields.country_name}`]: `country_name`,\n [`docpro.${ModelDocumentProfileFields.country_id}`]: `country_id`,\n // [`${aliasState}.${ModelStateFields.state_name}`]: `state_name`,\n [`docpro.${ModelDocumentProfileFields.state_id}`]: `state_id`,\n [`docpro.${ModelDocumentProfileFields.user_id}`]: `user_id`,\n [`docpro.${ModelDocumentProfileFields.user_branch_id}`]: `user_branch_id`\n}\nlet defaultSqlSelect = {\n [`docpro.${ModelDocumentProfileFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`docpro.${ModelDocumentProfileFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`docpro.${ModelDocumentProfileFields.isdelete}`]: \"isdelete\",\n [`docpro.${ModelDocumentProfileFields.istrash}`]: \"istrash\",\n [`docpro.${ModelDocumentProfileFields.accountid}`]: \"accountid\",\n}\n\nexport const DocumentProfileService = (props: DocumentProfileServiceProps) => {\n\n const {\n documentType = \"sales\",\n ...rest\n } = props\n\n const documentProfileModel = DocumentProfileModel({ ...rest })\n const documentModel = DocumentModel({ ...rest })\n\n const userBranchService = UserBranchService({ ...rest, userBranchUserType: \"customer\", userBranchType: \"branch\" })\n\n // override existing - if not found create new\n const replaceDocumentProfileHQ = async ({ data, documentId, documentType: overrideDocumentType }: DocumentProfileReplaceHQProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const userId = data.userId\n // const documentId = data.documentId\n\n let _userHQBranches = await userBranchService.getUserBranchByUserId({ userId, onlyHQ: true, datatypes: [] })\n\n if (_userHQBranches.length <= 0) {\n throwError(`Unset main branch user id: ${userId}`)\n }\n\n let userHQBranches = _userHQBranches[0]\n\n // console.log('userHQBranches', userHQBranches)\n\n // check the profile HQ already exists - for type profile\n const existProfile = await getDocumentProfile({ documentId, documentType: _documentType, profileType: \"profile\" })\n\n let response: any = {}\n\n if (existProfile) {\n\n let payload: DocumentProfileUpdateProps = {\n documentProfileId: Number(existProfile?.document_profile_id),\n documentType: _documentType,\n data: {\n profileType: \"profile\",\n userBranchId: Number(userHQBranches.branch_id),\n userId: Number(userHQBranches.user_id),\n code: userHQBranches.branch_code ?? \"\",\n contactNo: userHQBranches.branch_contact ?? \"\",\n email: userHQBranches.branch_email ?? \"\",\n personName: `${userHQBranches?.pic_name ?? \"\"}`,\n postcode: userHQBranches.postcode ?? \"\",\n profileName: userHQBranches.branch_name ?? \"\",\n stateId: Number(userHQBranches.state_id),\n areaId: Number(userHQBranches.area_id),\n countryId: Number(userHQBranches.country_id),\n address1: userHQBranches.address_1 ?? \"\",\n address2: userHQBranches.address_2 ?? \"\",\n }\n }\n\n // update document profile for profile\n response = await updateDocumentProfile(payload)\n\n } else { // create new\n let payload: DocumentProfileCreateProps = {\n documentId,\n documentType: _documentType,\n data: {\n profileType: \"profile\",\n userBranchId: Number(userHQBranches.branch_id),\n userId: Number(userHQBranches.user_id),\n code: userHQBranches.branch_code ?? \"\",\n contactNo: userHQBranches.branch_contact ?? \"\",\n email: userHQBranches.branch_email ?? \"\",\n personName: `${userHQBranches?.pic_name ?? \"\"}`,\n postcode: userHQBranches.postcode ?? \"\",\n profileName: userHQBranches.branch_name ?? \"\",\n stateId: Number(userHQBranches.state_id),\n areaId: Number(userHQBranches.area_id),\n countryId: Number(userHQBranches.country_id),\n address1: userHQBranches.address_1 ?? \"\",\n address2: userHQBranches.address_2 ?? \"\",\n }\n }\n\n // create document profile for profile\n response = await createDocumentProfile(payload)\n\n }\n\n return response\n\n }\n\n // override existing - if not found create new\n const replaceDocumentProfileOther = async ({ data, documentId, documentProfileType = \"shipping\", documentType: overrideDocumentType }: DocumentProfileReplaceOtherProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const userBranchId = data.userBranchId\n // const userType = data.userType\n // const documentId = data.documentId\n\n let userBranch = await userBranchService.getUserBranch({ userBranchId, datatypes: [] })\n\n // console.log('userBranch', userBranch)\n\n if (!userBranch?.user_id) {\n throwError(`Invalid user id in user branch: ${userBranchId}`)\n }\n\n // check the profile other already exists - for other type than profile\n const existProfile = await getDocumentProfile({ documentId, documentType: _documentType, profileType: documentProfileType })\n\n let response: any = {}\n\n if (existProfile) {\n\n let payload: DocumentProfileUpdateProps = {\n documentProfileId: Number(existProfile?.document_profile_id),\n documentType: _documentType,\n data: {\n profileType: documentProfileType,\n userBranchId: Number(userBranch.branch_id),\n userId: Number(userBranch.user_id),\n\n code: data?.code ? data.code : String(userBranch.branch_code ?? \"\"),\n contactNo: data?.code ? data.code : String(userBranch.branch_contact ?? \"\"),\n email: data?.email ? data.email : String(userBranch.branch_email ?? \"\"),\n personName: data?.personName ? data.personName : String(`${userBranch?.pic_name ?? \"\"}`),\n postcode: data?.postcode ? data.postcode : String(userBranch.postcode ?? \"\"),\n profileName: data?.profileName ? data.profileName : String(userBranch.branch_name ?? \"\"),\n stateId: data?.stateId ? Number(data.stateId) : Number(userBranch.state_id),\n areaId: data?.areaId ? Number(data.areaId) : Number(userBranch.area_id),\n countryId: data?.countryId ? Number(data.countryId) : Number(userBranch.country_id),\n address1: data?.address1 ? data.address1 : String(userBranch.address_1 ?? \"\"),\n address2: data?.address2 ? data.address2 : String(userBranch.address_2 ?? \"\"),\n }\n }\n\n // update document profile for (shipping or billing)\n response = await updateDocumentProfile(payload)\n\n } else {\n\n let payload: DocumentProfileCreateProps = {\n documentId,\n documentType: _documentType,\n data: {\n profileType: documentProfileType,\n userBranchId: Number(userBranch.branch_id),\n userId: Number(userBranch.user_id),\n\n code: data?.code ? data.code : String(userBranch.branch_code ?? \"\"),\n contactNo: data?.code ? data.code : String(userBranch.branch_contact ?? \"\"),\n email: data?.email ? data.email : String(userBranch.branch_email ?? \"\"),\n personName: data?.personName ? data.personName : String(`${userBranch?.pic_name ?? \"\"}`),\n postcode: data?.postcode ? data.postcode : String(userBranch.postcode ?? \"\"),\n profileName: data?.profileName ? data.profileName : String(userBranch.branch_name ?? \"\"),\n stateId: data?.stateId ? Number(data.stateId) : Number(userBranch.state_id),\n areaId: data?.areaId ? Number(data.areaId) : Number(userBranch.area_id),\n countryId: data?.countryId ? Number(data.countryId) : Number(userBranch.country_id),\n address1: data?.address1 ? data.address1 : String(userBranch.address_1 ?? \"\"),\n address2: data?.address2 ? data.address2 : String(userBranch.address_2 ?? \"\"),\n }\n }\n\n // create document profile for (shipping or billing)\n response = await createDocumentProfile(payload)\n }\n\n return response\n\n }\n\n // private\n const createDocumentProfile = async ({ data, documentId, documentType: overrideDocumentType }: DocumentProfileCreateProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const _data = getCreatePayload(documentId, _documentType, data)\n\n if (!_data) {\n throw new Error(`Invalid create document(profile) payload: ${JSON.stringify(_data)}`);\n }\n\n // create document profile\n return await documentProfileModel.create({ data: _data })\n\n }\n\n // private\n const updateDocumentProfile = async ({ documentProfileId, data, documentType: overrideDocumentType }: DocumentProfileUpdateProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const _data = getUpdatePayload(_documentType, data)\n\n if (!_data) {\n throw new Error(`Invalid update document(profile) payload: ${JSON.stringify(_data)}`);\n }\n\n // update document profile\n return await documentProfileModel.update({ id: documentProfileId, data: _data })\n\n }\n\n const getDocumentProfile = async ({ documentId = \"\", documentType = \"\", profileType = \"\" }: DocumentProfileGetProps) => {\n\n let filters = []\n\n if (documentType) {\n filters.push({ field: `${ModelDocumentProfileFields.document_type}`, operator: \"=\", value: documentType })\n }\n if (documentId) {\n filters.push({ field: `${ModelDocumentProfileFields.document_id}`, operator: \"=\", value: Number(documentId) })\n }\n if (profileType) {\n filters.push({ field: `${ModelDocumentProfileFields.type}`, operator: \"=\", value: profileType.toUpperCase() })\n }\n\n let { data } = await listDocumentProfiles({\n limit: 1,\n offset: 0,\n filters: filters as QueryList[\"filters\"],\n sortfield: `${ModelDocumentProfileFields.document_id}`,\n sortorder: \"ASC\",\n // datatypes: []\n })\n\n return data[0] ?? null;\n\n };\n\n const listDocumentProfiles = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n // datatypes = []\n }: DocumentProfileListProps) => {\n\n let sqlSelect: string[] = []\n let sqlRelation: string[] = []\n let sqlGroupBy: string[] = []\n\n let sqlSelectAgg: string[] = []\n let sqlRelationAgg: string[] = []\n\n sqlSelect = [\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n sqlRelation = [\n buildSqlRelation(\"left\", \"docpro\", \"users\", \"creator\", [\"docpro.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"docpro\", \"users\", \"updater\", [\"docpro.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n // sqlRelationAgg = [\n // buildSqlRelation(\"left\", \"docpro\", \"document_items\", \"docitm\", [\"docpro.document_id = docitm.document_id\", \"docitm.isdelete = false\", \"docitm.istrash = false\"]),\n // ]\n\n sqlGroupBy = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `docpro.isdelete = false`,\n `docpro.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 // get the data (pagination)\n const sqlRaw = buildSqlRawSelect({\n tableName: \"document_profiles\",\n mainAlias: \"docpro\",\n accountId: rest.accountId,\n sqlSelect: [...sqlSelect, ...sqlSelectAgg],\n sqlRelation: [...sqlRelation, ...sqlRelationAgg],\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n let data = await documentModel.raw(sqlRaw)\n\n // get the count\n const sqlRawCount = buildSqlRawSelectCount({\n tableName: \"document_profiles\",\n mainAlias: \"docpro\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby\n })\n\n let count = await documentModel.raw(sqlRawCount)\n\n const response = {\n data,\n total: data.length ? Number(count[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeDocumentProfiles = async ({ documentIds }: DocumentProfileRemoveProps) => {\n\n if (!documentIds.length) throwError('documentIds is required');\n\n const response = await documentProfileModel.remove({ where: { [`${ModelDocumentProfileFields.document_id}`]: { in: documentIds } } });\n\n return response\n };\n\n return {\n replaceDocumentProfileHQ,\n replaceDocumentProfileOther,\n removeDocumentProfiles,\n // createDocumentProfile // no need export internal use only\n // updateDocumentProfile // no need export internal use only\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"DocumentProfileService.js","sourceRoot":"","sources":["../../../src/services/document/DocumentProfileService.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DocumentModel,\n DocumentProfileModel,\n ModelDocumentProfileFields,\n ModelUserFields\n} from \"@/models\";\n\nimport { dayjs, DefaultServiceProps, throwError } from \"@/utils\";\n\nimport { UserBranchService } from \"@/services\"\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DocumentType } from \"./DocumentService\"\n\nimport { buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect, getDocumentProfileRelationMaps, getListWithCount } from \"@/lib\";\n\nexport const documentProfileTypes = {\n profile: \"profile\",\n shipping: \"shipping\",\n billing: \"billing\"\n} as const\n\nexport type DocumentProfileType = typeof documentProfileTypes[keyof typeof documentProfileTypes]\n\nexport type DocumentProfileServiceProps = DefaultServiceProps & {\n documentType: DocumentType\n};\n\nexport type DocumentProfile = {\n userId: number,\n userBranchId: number,\n // documentId: number,\n profileType: DocumentProfileType,\n code?: string,\n profileName?: string,\n personName?: string,\n contactNo?: string,\n email?: string,\n address1?: string,\n address2?: string,\n postcode?: string,\n stateId?: number,\n areaId?: number,\n countryId?: number\n}\n\nexport type DocumentProfileGetProps = Omit<QueryGet, \"datatypes\"> & {\n documentId?: number | \"\",\n documentType?: DocumentType | \"\",\n profileType?: DocumentProfileType | \"\"\n};\n\nexport type DocumentProfileListProps = Omit<QueryList, \"datatypes\"> & {\n // profileType: DocumentProfileType\n};\n\nexport type DocumentProfileCreateProps = {\n documentId: number,\n documentType?: DocumentType,\n data: DocumentProfile\n}\n\nexport type DocumentProfileUpdateProps = {\n // documentId: number,\n documentProfileId: number,\n documentType?: DocumentType,\n data: DocumentProfile\n}\n\nexport type DocumentProfileReplaceHQProps = {\n documentId: number,\n documentType?: DocumentType,\n data: Pick<DocumentProfile, \"userId\"> & {\n // userType: \"customer\" | \"supplier\"\n }\n}\n\nexport type DocumentProfileReplaceOtherProps = {\n documentId: number,\n documentType?: DocumentType,\n documentProfileType: DocumentProfileType,\n data: Omit<DocumentProfile, \"userId\" | \"profileType\"> & {\n // userType: \"customer\" | \"supplier\"\n }\n}\n\nexport type DocumentProfileRemoveProps = {\n documentIds: BigInt[]\n};\n\nconst { relationKeys, sqlRelationMaps } = getDocumentProfileRelationMaps()\n\nconst getCreatePayload = (documentId: number, documentType: DocumentType, data: DocumentProfileCreateProps[\"data\"]) => {\n\n return {\n [`${ModelDocumentProfileFields.document_id}`]: documentId,\n [`${ModelDocumentProfileFields.document_type}`]: documentType,\n [`${ModelDocumentProfileFields.user_branch_id}`]: data.userBranchId,\n [`${ModelDocumentProfileFields.user_id}`]: data.userId,\n [`${ModelDocumentProfileFields.code}`]: data.code,\n [`${ModelDocumentProfileFields.type}`]: data.profileType.toUpperCase(),\n [`${ModelDocumentProfileFields.profile_name}`]: data.profileName,\n [`${ModelDocumentProfileFields.address_1}`]: data.address1,\n [`${ModelDocumentProfileFields.address_2}`]: data.address2,\n [`${ModelDocumentProfileFields.contact}`]: data.contactNo,\n [`${ModelDocumentProfileFields.email}`]: data.email,\n [`${ModelDocumentProfileFields.name}`]: data.personName,\n [`${ModelDocumentProfileFields.postcode}`]: data.postcode,\n [`${ModelDocumentProfileFields.area_id}`]: data.areaId,\n [`${ModelDocumentProfileFields.state_id}`]: data.stateId,\n [`${ModelDocumentProfileFields.country_id}`]: data.countryId,\n }\n\n}\n\nconst getUpdatePayload = (documentType: DocumentType, data: DocumentProfileUpdateProps[\"data\"]) => {\n\n return {\n // [`${ModelDocumentProfileFields.document_id}`]: documentId,\n // [`${ModelDocumentProfileFields.document_type}`]: documentType,\n [`${ModelDocumentProfileFields.user_branch_id}`]: data.userBranchId,\n [`${ModelDocumentProfileFields.user_id}`]: data.userId,\n [`${ModelDocumentProfileFields.code}`]: data.code,\n [`${ModelDocumentProfileFields.type}`]: data.profileType.toUpperCase(),\n [`${ModelDocumentProfileFields.profile_name}`]: data.profileName,\n [`${ModelDocumentProfileFields.address_1}`]: data.address1,\n [`${ModelDocumentProfileFields.address_2}`]: data.address2,\n [`${ModelDocumentProfileFields.contact}`]: data.contactNo,\n [`${ModelDocumentProfileFields.email}`]: data.email,\n [`${ModelDocumentProfileFields.name}`]: data.personName,\n [`${ModelDocumentProfileFields.postcode}`]: data.postcode,\n [`${ModelDocumentProfileFields.area_id}`]: data.areaId,\n [`${ModelDocumentProfileFields.state_id}`]: data.stateId,\n [`${ModelDocumentProfileFields.country_id}`]: data.countryId,\n }\n\n}\n\nlet mainSqlSelect = {\n [`docpro.${ModelDocumentProfileFields.document_profile_id}`]: `document_profile_id`,\n [`docpro.${ModelDocumentProfileFields.code}`]: `code`,\n [`docpro.${ModelDocumentProfileFields.name}`]: `name`,\n [`docpro.${ModelDocumentProfileFields.type}`]: `type`,\n [`docpro.${ModelDocumentProfileFields.document_id}`]: `document_id`,\n [`docpro.${ModelDocumentProfileFields.document_type}`]: `document_type`,\n [`docpro.${ModelDocumentProfileFields.profile_name}`]: `profile_name`,\n [`docpro.${ModelDocumentProfileFields.address_1}`]: `address_1`,\n [`docpro.${ModelDocumentProfileFields.address_2}`]: `address_2`,\n [`docpro.${ModelDocumentProfileFields.contact}`]: `contact`,\n [`docpro.${ModelDocumentProfileFields.email}`]: `email`,\n [`docpro.${ModelDocumentProfileFields.postcode}`]: `postcode`,\n // [`docpro.${ModelDocumentProfileFields.area}`]: `area`,\n [`docpro.${ModelDocumentProfileFields.area_id}`]: `area_id`,\n // [`${aliasArea}.${ModelAreaFields.area_name}`]: `area_name`,\n // [`${aliasCountry}.${ModelCountryFields.country_name}`]: `country_name`,\n [`docpro.${ModelDocumentProfileFields.country_id}`]: `country_id`,\n // [`${aliasState}.${ModelStateFields.state_name}`]: `state_name`,\n [`docpro.${ModelDocumentProfileFields.state_id}`]: `state_id`,\n [`docpro.${ModelDocumentProfileFields.user_id}`]: `user_id`,\n [`docpro.${ModelDocumentProfileFields.user_branch_id}`]: `user_branch_id`\n}\nlet defaultSqlSelect = {\n [`docpro.${ModelDocumentProfileFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`docpro.${ModelDocumentProfileFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`docpro.${ModelDocumentProfileFields.isdelete}`]: \"isdelete\",\n [`docpro.${ModelDocumentProfileFields.istrash}`]: \"istrash\",\n [`docpro.${ModelDocumentProfileFields.accountid}`]: \"accountid\",\n}\n\nexport const DocumentProfileService = (props: DocumentProfileServiceProps) => {\n\n const {\n documentType = \"sales\",\n ...rest\n } = props\n\n const documentProfileModel = DocumentProfileModel({ ...rest })\n const documentModel = DocumentModel({ ...rest })\n\n const userBranchService = UserBranchService({ ...rest, userBranchUserType: \"customer\", userBranchType: \"branch\" })\n\n // override existing - if not found create new\n const replaceDocumentProfileHQ = async ({ data, documentId, documentType: overrideDocumentType }: DocumentProfileReplaceHQProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const userId = data.userId\n // const documentId = data.documentId\n\n let _userHQBranches = await userBranchService.getUserBranchByUserId({ userId, onlyHQ: true, datatypes: [] })\n\n if (_userHQBranches.length <= 0) {\n throwError(`Unset main branch user id: ${userId}`)\n }\n\n let userHQBranches = _userHQBranches[0]\n\n // console.log('userHQBranches', userHQBranches)\n\n // check the profile HQ already exists - for type profile\n const existProfile = await getDocumentProfile({ documentId, documentType: _documentType, profileType: \"profile\" })\n\n let response: any = {}\n\n if (existProfile) {\n\n let payload: DocumentProfileUpdateProps = {\n documentProfileId: Number(existProfile?.document_profile_id),\n documentType: _documentType,\n data: {\n profileType: \"profile\",\n userBranchId: Number(userHQBranches.branch_id),\n userId: Number(userHQBranches.user_id),\n code: userHQBranches.branch_code ?? \"\",\n contactNo: userHQBranches.branch_contact ?? \"\",\n email: userHQBranches.branch_email ?? \"\",\n personName: `${userHQBranches?.pic_name ?? \"\"}`,\n postcode: userHQBranches.postcode ?? \"\",\n profileName: userHQBranches.branch_name ?? \"\",\n stateId: Number(userHQBranches.state_id),\n areaId: Number(userHQBranches.area_id),\n countryId: Number(userHQBranches.country_id),\n address1: userHQBranches.address_1 ?? \"\",\n address2: userHQBranches.address_2 ?? \"\",\n }\n }\n\n // update document profile for profile\n response = await updateDocumentProfile(payload)\n\n } else { // create new\n let payload: DocumentProfileCreateProps = {\n documentId,\n documentType: _documentType,\n data: {\n profileType: \"profile\",\n userBranchId: Number(userHQBranches.branch_id),\n userId: Number(userHQBranches.user_id),\n code: userHQBranches.branch_code ?? \"\",\n contactNo: userHQBranches.branch_contact ?? \"\",\n email: userHQBranches.branch_email ?? \"\",\n personName: `${userHQBranches?.pic_name ?? \"\"}`,\n postcode: userHQBranches.postcode ?? \"\",\n profileName: userHQBranches.branch_name ?? \"\",\n stateId: Number(userHQBranches.state_id),\n areaId: Number(userHQBranches.area_id),\n countryId: Number(userHQBranches.country_id),\n address1: userHQBranches.address_1 ?? \"\",\n address2: userHQBranches.address_2 ?? \"\",\n }\n }\n\n // create document profile for profile\n response = await createDocumentProfile(payload)\n\n }\n\n return response\n\n }\n\n // override existing - if not found create new\n const replaceDocumentProfileOther = async ({ data, documentId, documentProfileType = \"shipping\", documentType: overrideDocumentType }: DocumentProfileReplaceOtherProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const userBranchId = data.userBranchId\n // const userType = data.userType\n // const documentId = data.documentId\n\n let userBranch = await userBranchService.getUserBranch({ userBranchId, datatypes: [] })\n\n // console.log('userBranch', userBranch)\n\n if (!userBranch?.user_id) {\n throwError(`Invalid user id in user branch: ${userBranchId}`)\n }\n\n // check the profile other already exists - for other type than profile\n const existProfile = await getDocumentProfile({ documentId, documentType: _documentType, profileType: documentProfileType })\n\n let response: any = {}\n\n if (existProfile) {\n\n let payload: DocumentProfileUpdateProps = {\n documentProfileId: Number(existProfile?.document_profile_id),\n documentType: _documentType,\n data: {\n profileType: documentProfileType,\n userBranchId: Number(userBranch.branch_id),\n userId: Number(userBranch.user_id),\n\n code: data?.code ? data.code : String(userBranch.branch_code ?? \"\"),\n contactNo: data?.code ? data.code : String(userBranch.branch_contact ?? \"\"),\n email: data?.email ? data.email : String(userBranch.branch_email ?? \"\"),\n personName: data?.personName ? data.personName : String(`${userBranch?.pic_name ?? \"\"}`),\n postcode: data?.postcode ? data.postcode : String(userBranch.postcode ?? \"\"),\n profileName: data?.profileName ? data.profileName : String(userBranch.branch_name ?? \"\"),\n stateId: data?.stateId ? Number(data.stateId) : Number(userBranch.state_id),\n areaId: data?.areaId ? Number(data.areaId) : Number(userBranch.area_id),\n countryId: data?.countryId ? Number(data.countryId) : Number(userBranch.country_id),\n address1: data?.address1 ? data.address1 : String(userBranch.address_1 ?? \"\"),\n address2: data?.address2 ? data.address2 : String(userBranch.address_2 ?? \"\"),\n }\n }\n\n // update document profile for (shipping or billing)\n response = await updateDocumentProfile(payload)\n\n } else {\n\n let payload: DocumentProfileCreateProps = {\n documentId,\n documentType: _documentType,\n data: {\n profileType: documentProfileType,\n userBranchId: Number(userBranch.branch_id),\n userId: Number(userBranch.user_id),\n\n code: data?.code ? data.code : String(userBranch.branch_code ?? \"\"),\n contactNo: data?.code ? data.code : String(userBranch.branch_contact ?? \"\"),\n email: data?.email ? data.email : String(userBranch.branch_email ?? \"\"),\n personName: data?.personName ? data.personName : String(`${userBranch?.pic_name ?? \"\"}`),\n postcode: data?.postcode ? data.postcode : String(userBranch.postcode ?? \"\"),\n profileName: data?.profileName ? data.profileName : String(userBranch.branch_name ?? \"\"),\n stateId: data?.stateId ? Number(data.stateId) : Number(userBranch.state_id),\n areaId: data?.areaId ? Number(data.areaId) : Number(userBranch.area_id),\n countryId: data?.countryId ? Number(data.countryId) : Number(userBranch.country_id),\n address1: data?.address1 ? data.address1 : String(userBranch.address_1 ?? \"\"),\n address2: data?.address2 ? data.address2 : String(userBranch.address_2 ?? \"\"),\n }\n }\n\n // create document profile for (shipping or billing)\n response = await createDocumentProfile(payload)\n }\n\n return response\n\n }\n\n // private\n const createDocumentProfile = async ({ data, documentId, documentType: overrideDocumentType }: DocumentProfileCreateProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const _data = getCreatePayload(documentId, _documentType, data)\n\n if (!_data) {\n throw new Error(`Invalid create document(profile) payload: ${JSON.stringify(_data)}`);\n }\n\n // create document profile\n return await documentProfileModel.create({ data: _data })\n\n }\n\n // private\n const updateDocumentProfile = async ({ documentProfileId, data, documentType: overrideDocumentType }: DocumentProfileUpdateProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const _data = getUpdatePayload(_documentType, data)\n\n if (!_data) {\n throw new Error(`Invalid update document(profile) payload: ${JSON.stringify(_data)}`);\n }\n\n // update document profile\n return await documentProfileModel.update({ id: documentProfileId, data: _data })\n\n }\n\n const getDocumentProfile = async ({ documentId = \"\", documentType = \"\", profileType = \"\" }: DocumentProfileGetProps) => {\n\n let filters = []\n\n if (documentType) {\n filters.push({ field: `${ModelDocumentProfileFields.document_type}`, operator: \"=\", value: documentType })\n }\n if (documentId) {\n filters.push({ field: `${ModelDocumentProfileFields.document_id}`, operator: \"=\", value: Number(documentId) })\n }\n if (profileType) {\n filters.push({ field: `${ModelDocumentProfileFields.type}`, operator: \"=\", value: profileType.toUpperCase() })\n }\n\n let { data } = await listDocumentProfiles({\n limit: 1,\n offset: 0,\n filters: filters as QueryList[\"filters\"],\n sortfield: `${ModelDocumentProfileFields.document_id}`,\n sortorder: \"ASC\",\n // datatypes: []\n })\n\n return data[0] ?? null;\n\n };\n\n const listDocumentProfiles = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n // datatypes = []\n }: DocumentProfileListProps) => {\n\n let sqlSelect: string[] = []\n let sqlRelation: string[] = []\n let sqlGroupBy: string[] = []\n\n let sqlSelectAgg: string[] = []\n let sqlRelationAgg: string[] = []\n\n sqlSelect = [\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n // sqlRelation = [\n // buildSqlRelation(\"left\", \"docpro\", \"users\", \"creator\", [\"docpro.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n // buildSqlRelation(\"left\", \"docpro\", \"users\", \"updater\", [\"docpro.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n // ]\n\n sqlRelation = [\n sqlRelationMaps.creator,\n sqlRelationMaps.updater\n ]\n\n // sqlRelationAgg = [\n // buildSqlRelation(\"left\", \"docpro\", \"document_items\", \"docitm\", [\"docpro.document_id = docitm.document_id\", \"docitm.isdelete = false\", \"docitm.istrash = false\"]),\n // ]\n\n sqlGroupBy = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `docpro.isdelete = false`,\n `docpro.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 // get the data (pagination)\n // const sqlRaw = buildSqlRawSelect({\n // tableName: \"document_profiles\",\n // mainAlias: \"docpro\",\n // accountId: rest.accountId,\n // sqlSelect: [...sqlSelect, ...sqlSelectAgg],\n // sqlRelation: [...sqlRelation, ...sqlRelationAgg],\n // sqlWhere,\n // sqlGroupBy,\n // sqlOrderby,\n // sqlLimitOffset\n // })\n\n // let data = await documentModel.raw(sqlRaw)\n\n // // get the count\n // const sqlRawCount = buildSqlRawSelectCount({\n // tableName: \"document_profiles\",\n // mainAlias: \"docpro\",\n // accountId: rest.accountId,\n // sqlSelect,\n // sqlRelation,\n // sqlWhere,\n // sqlGroupBy,\n // sqlOrderby\n // })\n\n // let count = await documentModel.raw(sqlRawCount)\n\n // get the listing data & count\n const { data, total } = await getListWithCount({\n model: documentModel,\n tableName: \"document_profiles\",\n mainAlias: \"docpro\",\n countKey: `${ModelDocumentProfileFields.document_profile_id}`,\n accountId: rest.accountId,\n sqlRelationMaps,\n filters,\n filterColumns,\n sqlSelect,\n sqlSelectAgg,\n sqlRelation,\n sqlRelationAgg,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n const response = {\n data,\n total\n }\n\n // const response = {\n // data,\n // total: data.length ? Number(count[0].filtered_count) : 0\n // }\n\n return response\n\n };\n\n const removeDocumentProfiles = async ({ documentIds }: DocumentProfileRemoveProps) => {\n\n if (!documentIds.length) throwError('documentIds is required');\n\n const response = await documentProfileModel.remove({ where: { [`${ModelDocumentProfileFields.document_id}`]: { in: documentIds } } });\n\n return response\n };\n\n return {\n replaceDocumentProfileHQ,\n replaceDocumentProfileOther,\n removeDocumentProfiles,\n // createDocumentProfile // no need export internal use only\n // updateDocumentProfile // no need export internal use only\n }\n\n}\n\n"]}
@@ -8,6 +8,7 @@ const client_s3_1 = require("@aws-sdk/client-s3");
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const crypto_1 = require("crypto");
10
10
  const utils_1 = require("../../utils");
11
+ const FileService_1 = require("./FileService");
11
12
  const FileAwsS3StorageProvider = (options) => {
12
13
  const { bucketName, region, basePath = "", skipFoldernameByModuleRef = false, skipFoldernameByDate = false, publicBaseUrl, credentials, } = options;
13
14
  const s3 = new client_s3_1.S3Client({ region, credentials });
@@ -60,7 +61,8 @@ const FileAwsS3StorageProvider = (options) => {
60
61
  Bucket: bucketName,
61
62
  Key: objectPath,
62
63
  Body: buffer,
63
- ContentType: mimeType,
64
+ ContentType: (0, FileService_1.getBrowserSafeContentType)(mimeType)
65
+ // ContentType: mimeType,
64
66
  // ACL: "public-read"
65
67
  }));
66
68
  let thumbnailUrl = ``;
@@ -1 +1 @@
1
- {"version":3,"file":"FileAwsS3StorageProvider.js","sourceRoot":"","sources":["../../../src/services/file/FileAwsS3StorageProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import { S3Client, PutObjectCommand, DeleteObjectCommand } from \"@aws-sdk/client-s3\";\nimport path from \"path\";\nimport { randomUUID } from \"crypto\";\nimport { dayjs } from \"@/utils\";\nimport { FileModuleRef } from \"./FileService\";\nimport { FileStorageProviderResult } from \"./FileStorageProviderRegistry\";\n\nexport type FileAwsS3ProviderOptions = {\n bucketName: string;\n region?: string; // AWS region\n basePath?: string; // optional folder prefix\n skipFoldernameByModuleRef?: boolean;\n skipFoldernameByDate?: boolean;\n publicBaseUrl?: string; // optional, e.g., https://bucket-name.s3.amazonaws.com\n credentials?: {\n accessKeyId: string;\n secretAccessKey: string;\n sessionToken?: string;\n }\n}\n\nexport type FileAwsS3UploadFileProps = {\n buffer: Buffer;\n bufferThumbnail: Buffer;\n thumbnailOptions: {\n suffix: string;\n ext: string;\n mimeType: string;\n };\n mimeType: string;\n foldernameDate?: string;\n fileName: string;\n}\n\nexport const FileAwsS3StorageProvider = (options: FileAwsS3ProviderOptions) => {\n const {\n bucketName,\n region,\n basePath = \"\",\n skipFoldernameByModuleRef = false,\n skipFoldernameByDate = false,\n publicBaseUrl,\n credentials,\n } = options;\n\n const s3 = new S3Client({ region, credentials });\n\n const uploadFile = async <T extends FileModuleRef>({\n field_ref,\n field_module,\n buffer,\n bufferThumbnail,\n thumbnailOptions,\n mimeType,\n foldernameDate,\n fileName,\n }: T & FileAwsS3UploadFileProps): Promise<FileStorageProviderResult> => {\n\n // const now = dayjs(foldernameDate).isValid() ? dayjs(foldernameDate) : dayjs();\n // const year = now.format(\"YYYY\");\n // const month = now.format(\"MM\");\n // const day = now.format(\"DD\");\n\n // const dirParts = [];\n // if (!skipFoldernameByModuleRef) dirParts.push(field_ref, field_module);\n // if (!skipFoldernameByDate) dirParts.push(year, month, day);\n\n const now = dayjs(foldernameDate).isValid() ? dayjs(foldernameDate) : dayjs();\n const year = now.format(\"YYYY\");\n const month = now.format(\"MM\");\n const day = now.format(\"DD\");\n\n let finalPublicBaseUrl = `${publicBaseUrl}`\n let dirParts = []\n\n if (skipFoldernameByModuleRef === false) {\n dirParts.push(field_ref, field_module)\n }\n\n if (skipFoldernameByDate === false) {\n dirParts.push(year, month, day)\n }\n\n let finalBasePath = path.join(basePath, ...dirParts)\n\n // basePath is empty & dirParts are nothing\n if (!basePath && dirParts.length <= 0) {\n finalBasePath = ``\n }\n\n // finalPublicBaseUrl = [finalPublicBaseUrl, basePath, ...dirParts].filter(Boolean).join('/');\n\n // ✅ Cross-platform safe public URL\n finalPublicBaseUrl = [finalPublicBaseUrl, basePath, ...dirParts]\n .filter(Boolean)\n .map(p => p.replace(/\\\\/g, '/')) // converts Windows '\\' to '/'\n .join('/');\n\n const uniqueId = randomUUID();\n const ext = path.extname(fileName);\n const uniqueName = `${uniqueId}${ext}`;\n const uniqueNameThumbnail = `${uniqueId}${thumbnailOptions.suffix}.${thumbnailOptions.ext}`;\n\n // const objectPath = finalBasePath ? `${finalBasePath}/${uniqueName}` : uniqueName;\n // const objectThumbnailPath = finalBasePath ? `${finalBasePath}/${uniqueNameThumbnail}` : uniqueNameThumbnail;\n\n // ✅ Cross-platform safe object paths for S3\n const objectPath = finalBasePath\n ? path.posix.join(finalBasePath.split(path.sep).join('/'), uniqueName)\n : uniqueName;\n\n const objectThumbnailPath = finalBasePath\n ? path.posix.join(finalBasePath.split(path.sep).join('/'), uniqueNameThumbnail)\n : uniqueNameThumbnail;\n\n // Upload main file\n await s3.send(new PutObjectCommand({\n Bucket: bucketName,\n Key: objectPath,\n Body: buffer,\n ContentType: mimeType,\n // ACL: \"public-read\"\n }));\n\n let thumbnailUrl = ``;\n\n // Upload thumbnail if exists\n if (bufferThumbnail) {\n await s3.send(new PutObjectCommand({\n Bucket: bucketName,\n Key: objectThumbnailPath,\n Body: bufferThumbnail,\n ContentType: thumbnailOptions.mimeType,\n // ACL: \"public-read\"\n }));\n thumbnailUrl = `${finalPublicBaseUrl}/${uniqueNameThumbnail}`;\n }\n\n const assetUrl = `${finalPublicBaseUrl}/${uniqueName}`;\n\n return {\n assetPath: objectPath,\n assetUrl,\n thumbnailUrl,\n filename: uniqueName,\n basePath: finalBasePath,\n ...(skipFoldernameByDate === false ? {\n folderName: { day: Number(day), month: Number(month), year: Number(year) }\n } : {})\n };\n\n };\n\n const removeFile = async (assetUrl: string, thumbnailUrl?: string) => {\n const removeObject = async (url: string) => {\n const key = url.split(`/${bucketName}/`)[1]; // naive extraction\n if (!key) return;\n await s3.send(new DeleteObjectCommand({ Bucket: bucketName, Key: key }));\n }\n\n await removeObject(assetUrl);\n if (thumbnailUrl) await removeObject(thumbnailUrl);\n\n return { success: true };\n };\n\n return { uploadFile, removeFile };\n}"]}
1
+ {"version":3,"file":"FileAwsS3StorageProvider.js","sourceRoot":"","sources":["../../../src/services/file/FileAwsS3StorageProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import { S3Client, PutObjectCommand, DeleteObjectCommand } from \"@aws-sdk/client-s3\";\nimport path from \"path\";\nimport { randomUUID } from \"crypto\";\nimport { dayjs } from \"@/utils\";\nimport { FileModuleRef, getBrowserSafeContentType } from \"./FileService\";\nimport { FileStorageProviderResult } from \"./FileStorageProviderRegistry\";\n\nexport type FileAwsS3ProviderOptions = {\n bucketName: string;\n region?: string; // AWS region\n basePath?: string; // optional folder prefix\n skipFoldernameByModuleRef?: boolean;\n skipFoldernameByDate?: boolean;\n publicBaseUrl?: string; // optional, e.g., https://bucket-name.s3.amazonaws.com\n credentials?: {\n accessKeyId: string;\n secretAccessKey: string;\n sessionToken?: string;\n }\n}\n\nexport type FileAwsS3UploadFileProps = {\n buffer: Buffer;\n bufferThumbnail: Buffer;\n thumbnailOptions: {\n suffix: string;\n ext: string;\n mimeType: string;\n };\n mimeType: string;\n foldernameDate?: string;\n fileName: string;\n}\n\nexport const FileAwsS3StorageProvider = (options: FileAwsS3ProviderOptions) => {\n const {\n bucketName,\n region,\n basePath = \"\",\n skipFoldernameByModuleRef = false,\n skipFoldernameByDate = false,\n publicBaseUrl,\n credentials,\n } = options;\n\n const s3 = new S3Client({ region, credentials });\n\n const uploadFile = async <T extends FileModuleRef>({\n field_ref,\n field_module,\n buffer,\n bufferThumbnail,\n thumbnailOptions,\n mimeType,\n foldernameDate,\n fileName,\n }: T & FileAwsS3UploadFileProps): Promise<FileStorageProviderResult> => {\n\n // const now = dayjs(foldernameDate).isValid() ? dayjs(foldernameDate) : dayjs();\n // const year = now.format(\"YYYY\");\n // const month = now.format(\"MM\");\n // const day = now.format(\"DD\");\n\n // const dirParts = [];\n // if (!skipFoldernameByModuleRef) dirParts.push(field_ref, field_module);\n // if (!skipFoldernameByDate) dirParts.push(year, month, day);\n\n const now = dayjs(foldernameDate).isValid() ? dayjs(foldernameDate) : dayjs();\n const year = now.format(\"YYYY\");\n const month = now.format(\"MM\");\n const day = now.format(\"DD\");\n\n let finalPublicBaseUrl = `${publicBaseUrl}`\n let dirParts = []\n\n if (skipFoldernameByModuleRef === false) {\n dirParts.push(field_ref, field_module)\n }\n\n if (skipFoldernameByDate === false) {\n dirParts.push(year, month, day)\n }\n\n let finalBasePath = path.join(basePath, ...dirParts)\n\n // basePath is empty & dirParts are nothing\n if (!basePath && dirParts.length <= 0) {\n finalBasePath = ``\n }\n\n // finalPublicBaseUrl = [finalPublicBaseUrl, basePath, ...dirParts].filter(Boolean).join('/');\n\n // ✅ Cross-platform safe public URL\n finalPublicBaseUrl = [finalPublicBaseUrl, basePath, ...dirParts]\n .filter(Boolean)\n .map(p => p.replace(/\\\\/g, '/')) // converts Windows '\\' to '/'\n .join('/');\n\n const uniqueId = randomUUID();\n const ext = path.extname(fileName);\n const uniqueName = `${uniqueId}${ext}`;\n const uniqueNameThumbnail = `${uniqueId}${thumbnailOptions.suffix}.${thumbnailOptions.ext}`;\n\n // const objectPath = finalBasePath ? `${finalBasePath}/${uniqueName}` : uniqueName;\n // const objectThumbnailPath = finalBasePath ? `${finalBasePath}/${uniqueNameThumbnail}` : uniqueNameThumbnail;\n\n // ✅ Cross-platform safe object paths for S3\n const objectPath = finalBasePath\n ? path.posix.join(finalBasePath.split(path.sep).join('/'), uniqueName)\n : uniqueName;\n\n const objectThumbnailPath = finalBasePath\n ? path.posix.join(finalBasePath.split(path.sep).join('/'), uniqueNameThumbnail)\n : uniqueNameThumbnail;\n\n // Upload main file\n await s3.send(new PutObjectCommand({\n Bucket: bucketName,\n Key: objectPath,\n Body: buffer,\n ContentType: getBrowserSafeContentType(mimeType)\n // ContentType: mimeType,\n // ACL: \"public-read\"\n }));\n\n let thumbnailUrl = ``;\n\n // Upload thumbnail if exists\n if (bufferThumbnail) {\n await s3.send(new PutObjectCommand({\n Bucket: bucketName,\n Key: objectThumbnailPath,\n Body: bufferThumbnail,\n ContentType: thumbnailOptions.mimeType,\n // ACL: \"public-read\"\n }));\n thumbnailUrl = `${finalPublicBaseUrl}/${uniqueNameThumbnail}`;\n }\n\n const assetUrl = `${finalPublicBaseUrl}/${uniqueName}`;\n\n return {\n assetPath: objectPath,\n assetUrl,\n thumbnailUrl,\n filename: uniqueName,\n basePath: finalBasePath,\n ...(skipFoldernameByDate === false ? {\n folderName: { day: Number(day), month: Number(month), year: Number(year) }\n } : {})\n };\n\n };\n\n const removeFile = async (assetUrl: string, thumbnailUrl?: string) => {\n const removeObject = async (url: string) => {\n const key = url.split(`/${bucketName}/`)[1]; // naive extraction\n if (!key) return;\n await s3.send(new DeleteObjectCommand({ Bucket: bucketName, Key: key }));\n }\n\n await removeObject(assetUrl);\n if (thumbnailUrl) await removeObject(thumbnailUrl);\n\n return { success: true };\n };\n\n return { uploadFile, removeFile };\n}"]}
@@ -8,6 +8,7 @@ const storage_1 = require("@google-cloud/storage");
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const utils_1 = require("../../utils");
10
10
  const crypto_1 = require("crypto");
11
+ const FileService_1 = require("./FileService");
11
12
  function extractBucketName(url) {
12
13
  try {
13
14
  const match = url.match(/^https?:\/\/storage\.googleapis\.com\/([^/]+)/);
@@ -65,7 +66,8 @@ const FileGoogleCloudStorageProvider = (options) => {
65
66
  await file.save(buffer, {
66
67
  resumable: false,
67
68
  metadata: {
68
- contentType: mimeType || "application/octet-stream",
69
+ contentType: (0, FileService_1.getBrowserSafeContentType)(mimeType || "application/octet-stream"),
70
+ // contentType: mimeType || "application/octet-stream",
69
71
  },
70
72
  });
71
73
  let fileThumbnail;