storemw-core-api 1.0.140 → 1.0.142

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 (73) hide show
  1. package/dist/controllers/user/userController.js +8 -4
  2. package/dist/controllers/user/userController.js.map +1 -1
  3. package/dist/middlewares/index.d.ts +3 -0
  4. package/dist/middlewares/index.js +40 -0
  5. package/dist/middlewares/index.js.map +1 -0
  6. package/dist/models/account/AccountModel.d.ts +13 -13
  7. package/dist/models/branch_user/BranchUserModel.d.ts +13 -13
  8. package/dist/models/user/AgentModel.d.ts +2 -24
  9. package/dist/models/user/MemberModel.d.ts +2 -24
  10. package/dist/models/user/UserModel.d.ts +13 -2
  11. package/dist/schema/index.d.ts +3 -0
  12. package/dist/schema/index.js +40 -0
  13. package/dist/schema/index.js.map +1 -0
  14. package/dist/schema/middleware/index.d.ts +2 -0
  15. package/dist/schema/middleware/index.js +19 -0
  16. package/dist/schema/middleware/index.js.map +1 -0
  17. package/dist/schema/middleware/route/index.d.ts +27 -27
  18. package/dist/schema/middleware/route/index.js +14 -14
  19. package/dist/schema/middleware/route/index.js.map +1 -1
  20. package/dist/schema/payload/account/schemaAccount.d.ts +7 -0
  21. package/dist/schema/payload/index.d.ts +74 -74
  22. package/dist/schema/payload/index.js +39 -39
  23. package/dist/schema/payload/index.js.map +1 -1
  24. package/dist/schema/payload/user/schemaUser.d.ts +3 -0
  25. package/dist/schema/payload/user/schemaUser.js +1 -0
  26. package/dist/schema/payload/user/schemaUser.js.map +1 -1
  27. package/dist/schema/payload/user/schemaUserAdministrator.d.ts +14 -0
  28. package/dist/schema/payload/user/schemaUserAgent.d.ts +15 -12
  29. package/dist/schema/payload/user/schemaUserAgent.js +2 -2
  30. package/dist/schema/payload/user/schemaUserAgent.js.map +1 -1
  31. package/dist/schema/payload/user/schemaUserCustomer.d.ts +14 -0
  32. package/dist/schema/payload/user/schemaUserDriver.d.ts +14 -0
  33. package/dist/schema/payload/user/schemaUserMember.d.ts +15 -12
  34. package/dist/schema/payload/user/schemaUserMember.js +2 -2
  35. package/dist/schema/payload/user/schemaUserMember.js.map +1 -1
  36. package/dist/schema/payload/user/schemaUserOperator.d.ts +14 -0
  37. package/dist/schema/payload/user/schemaUserRetailer.d.ts +14 -0
  38. package/dist/schema/payload/user/schemaUserWorker.d.ts +14 -0
  39. package/dist/services/account/AccountService.js +17 -7
  40. package/dist/services/account/AccountService.js.map +1 -1
  41. package/dist/services/index.d.ts +1 -1
  42. package/dist/services/index.js +2 -1
  43. package/dist/services/index.js.map +1 -1
  44. package/dist/services/user/AdministratorService.d.ts +1 -0
  45. package/dist/services/user/AdministratorService.js +7 -0
  46. package/dist/services/user/AdministratorService.js.map +1 -1
  47. package/dist/services/user/AgentService.d.ts +2 -12
  48. package/dist/services/user/AgentService.js +35 -26
  49. package/dist/services/user/AgentService.js.map +1 -1
  50. package/dist/services/user/CustomerService.d.ts +1 -0
  51. package/dist/services/user/CustomerService.js +7 -0
  52. package/dist/services/user/CustomerService.js.map +1 -1
  53. package/dist/services/user/DriverService.d.ts +1 -0
  54. package/dist/services/user/DriverService.js +7 -0
  55. package/dist/services/user/DriverService.js.map +1 -1
  56. package/dist/services/user/MemberService.d.ts +2 -12
  57. package/dist/services/user/MemberService.js +35 -26
  58. package/dist/services/user/MemberService.js.map +1 -1
  59. package/dist/services/user/OperatorService.d.ts +4 -2
  60. package/dist/services/user/OperatorService.js +11 -3
  61. package/dist/services/user/OperatorService.js.map +1 -1
  62. package/dist/services/user/RetailerService.d.ts +1 -0
  63. package/dist/services/user/RetailerService.js +7 -0
  64. package/dist/services/user/RetailerService.js.map +1 -1
  65. package/dist/services/user/UserMeService.d.ts +1 -0
  66. package/dist/services/user/UserService.d.ts +5 -0
  67. package/dist/services/user/UserService.js +34 -17
  68. package/dist/services/user/UserService.js.map +1 -1
  69. package/dist/services/user/WorkerService.d.ts +1 -0
  70. package/dist/services/user/WorkerService.js +52 -44
  71. package/dist/services/user/WorkerService.js.map +1 -1
  72. package/package.json +19 -9
  73. package/prisma/schema.prisma +44 -47
@@ -1 +1 @@
1
- {"version":3,"file":"OperatorService.js","sourceRoot":"","sources":["../../../src/services/user/OperatorService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n OperatorModel,\n ModelOperatorFields,\n} from \"@/models\";\n\n// import { InjectionFieldService } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nimport { ServiceFactory } from \"@/lib\";\n\nexport type UserType = \"operator\"\n\nexport const operatorDataTypes = {\n // location: \"location\",\n // locationCount: \"location_count\",\n // administratorInjectionFields: \"administrator_injection_fields\",\n}\n\nexport type OperatorDataType = keyof typeof operatorDataTypes;\n\nexport type OperatorServiceProps = DefaultServiceProps & {};\n\nexport type OperatorGetProps = {\n id: number,\n includePassword?: boolean\n datatypes: OperatorDataType[]\n};\n\nexport type OperatorGetByUsernameProps = {\n username: string,\n includePassword?: boolean\n datatypes: OperatorDataType[]\n};\n\nexport type OperatorListProps = QueryList & {\n includePassword?: boolean\n datatypes: OperatorDataType[]\n};\n\nexport type OperatorRemoveProps = {\n userIds: BigInt[]\n};\n\nexport type OperatorCreateProps = {\n data:\n // operator\n {\n operator: {\n userId: number,\n }\n }\n}\n\nexport type OperatorUpdateProps = {\n userId: number,\n data:\n // operator\n {\n operator: {\n // userId: number,\n }\n }\n}\n\nconst getCreatePayload = (data: OperatorCreateProps[\"data\"]) => {\n\n if (\"operator\" in data) {\n\n return {\n [`${ModelOperatorFields.user_id}`]: data.operator.userId\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: OperatorUpdateProps[\"data\"]) => {\n\n if (\"operator\" in data) {\n\n return {\n // [`${ModelOperatorFields.user_id}`]: data.operator.userId,\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`oper.${ModelOperatorFields.operator_id}`]: \"operator_id\",\n [`oper.${ModelOperatorFields.user_id}`]: \"user_id\",\n}\n\nlet userSqlSelect = {\n [`usr.${ModelUserFields.login_username}`]: \"username\",\n [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n [`CONCAT(usr.${ModelUserFields.contact_country_code}, usr.${ModelUserFields.contact_phone_number})`]: \"contact\",\n [`usr.${ModelUserFields.contact_country_code}`]: \"contact_country_code\",\n [`usr.${ModelUserFields.contact_phone_number}`]: \"contact_phone_number\",\n [`usr.${ModelUserFields.email}`]: \"email\",\n [`usr.${ModelUserFields.address}`]: \"address\",\n [`usr.${ModelUserFields.status}`]: \"status\",\n}\n\nlet defaultSqlSelect = {\n [`oper.${ModelOperatorFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`oper.${ModelOperatorFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`oper.${ModelOperatorFields.isdelete}`]: \"isdelete\",\n [`oper.${ModelOperatorFields.istrash}`]: \"istrash\",\n [`oper.${ModelOperatorFields.accountid}`]: \"accountid\",\n}\n\n// let userStatusIsOwnerSqlSelect = {\n// [`COALESCE(usrsta_isowner.${ModelUserStatusFields.status}::int, 0)`]: \"is_owner\"\n// }\n\n// let userPropLocationSqlSelect = {\n// // [`COALESCE(usrprop_location.${ModelUserPropFields.props_id}::int, 0)`]: \"location_id\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT usrprop_location.${ModelUserPropFields.props_id}::text, ', '),\n// ''\n// )`]: \"location_id\",\n// // [`COALESCE(location.${ModelLocationFields.location_name}::text, '')`]: \"location_name\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT location.${ModelLocationFields.location_name}::text, ', '),\n// ''\n// )`]: \"location_name\",\n// }\n\n// let groupOwnerSqlSelect = {\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_id}::text, ', '),\n// ''\n// )`]: \"access_group_id\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_label}::text, ', '),\n// ''\n// )`]: \"access_group_label\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_description}::text, ', '),\n// ''\n// )`]: \"access_group_description\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_type}::text, ', '),\n// ''\n// )`]: \"access_group_type\"\n// // [`COALESCE(\n// // JSON_AGG(\n// // DISTINCT JSONB_BUILD_OBJECT(\n// // '${ModelGroupFields.group_label}', grp.group_label,\n// // '${ModelGroupFields.group_id}', grp.group_id,\n// // '${ModelGroupFields.group_type}', grp.group_type\n// // )\n// // ) FILTER (WHERE grp.group_id IS NOT NULL AND grp.isdelete = false AND grp.istrash = false), \n// // '[]'\n// // )`]: \"grp\"\n// }\n\nexport const OperatorService = (props: OperatorServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const operatorModel = OperatorModel({ ...rest })\n\n // const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"user\" })\n\n const createOperator = async ({ data }: OperatorCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create operator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await operatorModel.create({ data: _data })\n\n return response\n }\n\n const updateOperator = async ({ userId, data }: OperatorUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update operator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await operatorModel.update({ where: { [`${ModelOperatorFields.user_id}`]: userId }, data: _data })\n\n return response\n }\n\n const getOperator = async ({ id, datatypes = [], includePassword = false }: OperatorGetProps) => {\n\n let { data } = await listOperators({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelOperatorFields.user_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelOperatorFields.user_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const getOperatorByUsername = async ({ username = \"\", includePassword = false, datatypes = [] }: OperatorGetByUsernameProps) => {\n\n let { data } = await listOperators({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [{\n field: `username`, operator: \"=\", value: `${username}`\n }],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listOperators = async ({\n includePassword = false,\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: OperatorListProps) => {\n\n let data = []\n\n if (includePassword === true) {\n userSqlSelect = {\n ...userSqlSelect,\n [`usr.${ModelUserFields.login_password}`]: \"password\",\n }\n } else {\n delete userSqlSelect[`usr.${ModelUserFields.login_password}`];\n }\n\n let sqlSelect = [\n `COUNT(oper.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, userSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n // buildSqlSelect(``, userStatusIsOwnerSqlSelect),\n // buildSqlSelect(``, userPropLocationSqlSelect),\n // buildSqlSelect(``, groupOwnerSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"oper\", \"users\", \"usr\", [\"oper.user_id = usr.user_id\", \"usr.isdelete = false\", \"usr.istrash = false\"]),\n buildSqlRelation(\"left\", \"oper\", \"users\", \"creator\", [\"oper.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"oper\", \"users\", \"updater\", [\"oper.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"user_status\", \"usrsta_isowner\", [\"oper.user_id = usrsta_isowner.user_id\", \"usrsta_isowner.type = 'IS_OWNER'\", \"usrsta_isowner.isdelete = false\", \"usrsta_isowner.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"user_props\", \"usrprop_location\", [\"oper.user_id = usrprop_location.user_id\", \"usrprop_location.type = 'LOCATION_ID'\", \"usrprop_location.isdelete = false\", \"usrprop_location.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"locations\", \"location\", [\"usrprop_location.props_id = location.location_id\", \"location.isdelete = false\", \"location.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"group_owners\", \"grpown\", [\"oper.user_id = grpown.user_id\", \"grpown.isdelete = false\", \"grpown.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"groups\", \"grp\", [\"grpown.group_id = grp.group_id\", \"grp.isdelete = false\", \"grp.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(userSqlSelect),\n // ...Object.keys(userStatusIsOwnerSqlSelect),\n // ...Object.keys(userPropLocationSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...userSqlSelect,\n // ...userStatusIsOwnerSqlSelect,\n // ...userPropLocationSqlSelect,\n ...defaultSqlSelect\n }\n\n // if (datatypes.includes(operatorDataTypes.administratorInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"user\", \"administrator\")\n\n // const administratorInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"uif\", activeInjectionFields)\n\n // filterColumns = { ...filterColumns, ...administratorInjectionFieldSqlSelect }\n\n // sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, administratorInjectionFieldSqlSelect)] : [])]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"adm\", \"user_injection_fields\", \"uif\", [\"oper.user_id = uif.user_id\", \"uif.field_ref = 'user'\", \"uif.field_module = 'administrator'\", \"uif.isdelete = false\", \"uif.istrash = false\"])]\n // sqlGroupBy = [...sqlGroupBy, ...Object.keys(administratorInjectionFieldSqlSelect)]\n // }\n\n // if (datatypes.includes(operatorDataTypes.location)) {\n\n // let locationSqlSelect = {\n // [`COALESCE(\n // JSON_AGG(\n // DISTINCT JSONB_BUILD_OBJECT(\n // '${ModelLocationFields.location_id}', location.location_id,\n // '${ModelLocationFields.location_code}', location.location_code,\n // '${ModelLocationFields.location_name}', location.location_name,\n // '${ModelLocationFields.location_type}', location.location_type,\n // '${ModelLocationFields.address_1}', location.address_1,\n // '${ModelLocationFields.address_2}', location.address_2,\n // '${ModelLocationFields.area_id}', location.area_id,\n // '${ModelLocationFields.country_id}', location.country_id,\n // '${ModelLocationFields.state_id}', location.state_id,\n // '${ModelLocationFields.postcode}', location.postcode,\n // '${ModelLocationFields.is_default}', location.is_default,\n // '${ModelLocationFields.person_contact}', location.person_contact,\n // '${ModelLocationFields.person_name}', location.person_contact,\n // '${ModelLocationFields.person_email}', location.person_email,\n // '${ModelLocationFields.isdelete}', location.isdelete,\n // '${ModelLocationFields.istrash}', location.istrash\n // )\n // ) FILTER (WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false), \n // '[]'\n // )`]: \"locations\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"usrprop_location\", \"location\", \"brn\", [\"oper.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n // }\n\n // if (datatypes.includes(operatorDataTypes.locationCount)) {\n\n // let locationCountSqlSelect = {\n // [`COUNT(DISTINCT location.${ModelLocationFields.location_id})::INT`]: \"location_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationCountSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branches\", \"brncount\", [\"oper.user_id = brncount.user_id\", \"brncount.isdelete = false\", \"brncount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `oper.isdelete = false`,\n `oper.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"operators\",\n mainAlias: \"oper\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true\n })\n\n data = await operatorModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeOperators = async ({ userIds }: OperatorRemoveProps) => {\n\n if (!userIds.length) throwError('userIds is required');\n\n const response = await operatorModel.remove({ where: { [`${ModelOperatorFields.user_id}`]: { in: userIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(operatorDataTypes);\n }\n\n // return {\n // createOperator,\n // updateOperator,\n // getOperator,\n // listOperators,\n // removeOperators,\n // getDataTypes\n // }\n\n const methodConfigs = {\n getOperator: { fn: getOperator, allowUserTypes: [\"operator\"] as const, actionName: \"get operator\" },\n getOperatorByUsername: { fn: getOperatorByUsername, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get operator by username\" },\n listOperators: { fn: listOperators, allowUserTypes: [\"operator\"] as const, actionName: \"list operators\" },\n createOperator: { fn: createOperator, allowUserTypes: [\"operator\"] as const, actionName: \"create operator\" },\n updateOperator: { fn: updateOperator, allowUserTypes: [\"operator\"] as const, actionName: \"update operator\" },\n removeOperators: { fn: removeOperators, allowUserTypes: [\"operator\"] as const, actionName: \"remove operators\" },\n getDataTypes: { fn: getDataTypes, allowUserTypes: [\"operator\"] as const, actionName: \"get operator datatypes\" },\n };\n\n return ServiceFactory(\"OperatorService\", rest, methodConfigs);\n\n}\n\n"]}
1
+ {"version":3,"file":"OperatorService.js","sourceRoot":"","sources":["../../../src/services/user/OperatorService.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,qCAIkB;AAElB,yCAAiD;AAMjD,+BAAgK;AAEhK,+BAAuC;AAI1B,QAAA,iBAAiB,GAAG;IAC7B,wBAAwB;IACxB,mCAAmC;IACnC,kEAAkE;IAClE,UAAU,EAAE,aAAa;CAC5B,CAAA;AAgDD,MAAM,gBAAgB,GAAG,CAAC,IAAiC,EAAE,EAAE;IAE3D,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QAErB,OAAO;YACH,CAAC,GAAG,4BAAmB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;SAC3D,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAEhB,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,IAAiC,EAAE,EAAE;IAE3D,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QAErB,OAAO;QACH,4DAA4D;SAC/D,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAEhB,CAAC,CAAA;AAED,IAAI,aAAa,GAAG;IAChB,CAAC,QAAQ,4BAAmB,CAAC,WAAW,EAAE,CAAC,EAAE,aAAa;IAC1D,CAAC,QAAQ,4BAAmB,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;CACrD,CAAA;AAED,IAAI,aAAa,GAAG;IAChB,CAAC,OAAO,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,UAAU;IACrD,CAAC,OAAO,wBAAe,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;IACjD,CAAC,OAAO,wBAAe,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;IACjD,CAAC,OAAO,wBAAe,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;IAC/C,CAAC,cAAc,wBAAe,CAAC,oBAAoB,SAAS,wBAAe,CAAC,oBAAoB,GAAG,CAAC,EAAE,SAAS;IAC/G,CAAC,OAAO,wBAAe,CAAC,oBAAoB,EAAE,CAAC,EAAE,sBAAsB;IACvE,CAAC,OAAO,wBAAe,CAAC,oBAAoB,EAAE,CAAC,EAAE,sBAAsB;IACvE,CAAC,OAAO,wBAAe,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO;IACzC,CAAC,OAAO,wBAAe,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IAC7C,CAAC,OAAO,wBAAe,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ;CAC9C,CAAA;AAED,IAAI,gBAAgB,GAAG;IACnB,CAAC,QAAQ,4BAAmB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAChE,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,QAAQ,4BAAmB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAChE,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,QAAQ,4BAAmB,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;IACpD,CAAC,QAAQ,4BAAmB,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IAClD,CAAC,QAAQ,4BAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;CACzD,CAAA;AAED,qCAAqC;AACrC,uFAAuF;AACvF,IAAI;AAEJ,oCAAoC;AACpC,gGAAgG;AAChG,kBAAkB;AAClB,6FAA6F;AAC7F,aAAa;AACb,0BAA0B;AAC1B,iGAAiG;AACjG,kBAAkB;AAClB,0FAA0F;AAC1F,aAAa;AACb,4BAA4B;AAC5B,IAAI;AAEJ,8BAA8B;AAC9B,kBAAkB;AAClB,6EAA6E;AAC7E,aAAa;AACb,8BAA8B;AAC9B,kBAAkB;AAClB,gFAAgF;AAChF,aAAa;AACb,iCAAiC;AACjC,kBAAkB;AAClB,sFAAsF;AACtF,aAAa;AACb,uCAAuC;AACvC,kBAAkB;AAClB,+EAA+E;AAC/E,aAAa;AACb,+BAA+B;AAC/B,qBAAqB;AACrB,uBAAuB;AACvB,8CAA8C;AAC9C,yEAAyE;AACzE,mEAAmE;AACnE,sEAAsE;AACtE,mBAAmB;AACnB,0GAA0G;AAC1G,kBAAkB;AAClB,oBAAoB;AACpB,IAAI;AAEG,MAAM,eAAe,GAAG,CAAC,KAA2B,EAAE,EAAE;IAE3D,MAAM,EACF,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,aAAa,GAAG,IAAA,sBAAa,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAEhD,+FAA+F;IAE/F,MAAM,cAAc,GAAG,KAAK,EAAE,EAAE,IAAI,EAAuB,EAAE,EAAE;QAE3D,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAE1D,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAuB,EAAE,EAAE;QAEnE,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,4BAAmB,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAEjH,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,eAAe,GAAG,KAAK,EAAoB,EAAE,EAAE;QAE5F,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,aAAa,CAAC;YAC/B,eAAe;YACf,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,4BAAmB,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAChF,SAAS,EAAE,GAAG,4BAAmB,CAAC,OAAO,EAAE;YAC3C,SAAS,EAAE,KAAK;YAChB,SAAS;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3B,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,eAAe,GAAG,KAAK,EAAE,SAAS,GAAG,EAAE,EAA8B,EAAE,EAAE;QAE3H,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,aAAa,CAAC;YAC/B,eAAe;YACf,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;oBACN,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE;iBACzD,CAAC;YACF,SAAS,EAAE,GAAG,wBAAe,CAAC,OAAO,EAAE;YACvC,SAAS,EAAE,KAAK;YAChB,SAAS;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3B,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EAAE,EACzB,eAAe,GAAG,KAAK,EACvB,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,GAAG,EAAE,EACE,EAAE,EAAE;QAEpB,IAAI,IAAI,GAAG,EAAE,CAAA;QAEb,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC3B,aAAa,GAAG;gBACZ,GAAG,aAAa;gBAChB,CAAC,OAAO,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,UAAU;aACxD,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,OAAO,aAAa,CAAC,OAAO,wBAAe,CAAC,cAAc,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,SAAS,GAAG;YACZ,wCAAwC;YACxC,IAAA,oBAAc,EAAC,EAAE,EAAE,aAAa,CAAC;YACjC,IAAA,oBAAc,EAAC,EAAE,EAAE,aAAa,CAAC;YACjC,IAAA,oBAAc,EAAC,EAAE,EAAE,gBAAgB,CAAC;YACpC,kDAAkD;YAClD,iDAAiD;YACjD,0CAA0C;SAC7C,CAAA;QAED,IAAI,WAAW,GAAG;YACd,IAAA,sBAAgB,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,CAAC,CAAC;YAC/H,IAAA,sBAAgB,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,qCAAqC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;YACpJ,IAAA,sBAAgB,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,qCAAqC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;YACpJ,yNAAyN;YACzN,qOAAqO;YACrO,4KAA4K;YAC5K,sJAAsJ;YACtJ,uIAAuI;SAC1I,CAAA;QAED,IAAI,UAAU,GAAa;YACvB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAC7B,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAC7B,8CAA8C;YAC9C,6CAA6C;YAC7C,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;SACnC,CAAA;QAED,IAAI,aAAa,GAAG;YAChB,GAAG,aAAa;YAChB,GAAG,aAAa;YAChB,iCAAiC;YACjC,gCAAgC;YAChC,GAAG,gBAAgB;SACtB,CAAA;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,yBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;YAEnD,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,8BAAmB,EAAE,CAAA;YAE5D,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,IAAA,sBAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,yCAAyC,EAAE,6BAA6B,EAAE,4BAA4B,CAAC,CAAC,CAAC,CAAA;YAChM,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,IAAA,oBAAc,EAAC,EAAE,EAAE,8BAAmB,CAAC,CAAC,CAAA;YACnE,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,8BAAmB,CAAC,CAAC,CAAA;QAErE,CAAC;QAED,4EAA4E;QAE5E,iHAAiH;QAEjH,+GAA+G;QAE/G,oFAAoF;QAEpF,0IAA0I;QAC1I,qPAAqP;QACrP,yFAAyF;QACzF,IAAI;QAEJ,wDAAwD;QAExD,gCAAgC;QAChC,sBAAsB;QACtB,4BAA4B;QAC5B,mDAAmD;QACnD,sFAAsF;QACtF,0FAA0F;QAC1F,0FAA0F;QAC1F,0FAA0F;QAC1F,kFAAkF;QAClF,kFAAkF;QAClF,8EAA8E;QAC9E,oFAAoF;QACpF,gFAAgF;QAChF,gFAAgF;QAChF,oFAAoF;QACpF,4FAA4F;QAC5F,yFAAyF;QACzF,wFAAwF;QACxF,gFAAgF;QAChF,6EAA6E;QAC7E,wBAAwB;QACxB,iIAAiI;QACjI,uBAAuB;QACvB,+BAA+B;QAC/B,QAAQ;QAER,iEAAiE;QAEjE,wEAAwE;QACxE,wLAAwL;QAExL,IAAI;QAEJ,6DAA6D;QAE7D,qCAAqC;QACrC,iGAAiG;QACjG,QAAQ;QAER,sEAAsE;QAEtE,6EAA6E;QAC7E,+LAA+L;QAE/L,IAAI;QAEJ,IAAI,QAAQ,GAAG;YACX,uBAAuB;YACvB,sBAAsB;YACtB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAa,EAAC,OAAO,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAA;QAED,IAAI,UAAU,GAAG,IAAA,qBAAe,EAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QACtD,IAAI,cAAc,GAAG,IAAA,yBAAmB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAEvD,MAAM,MAAM,GAAG,IAAA,uBAAiB,EAAC;YAC7B,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS;YACT,WAAW;YACX,QAAQ;YACR,UAAU;YACV,UAAU;YACV,cAAc;YACd,mBAAmB,EAAE,IAAI;SAC5B,CAAC,CAAA;QAEF,IAAI,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAEtC,MAAM,QAAQ,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;YACrD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1D,CAAA;QAED,OAAO,QAAQ,CAAA;IAEnB,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,EAAE,EAAE,OAAO,EAAuB,EAAE,EAAE;QAE/D,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,IAAA,kBAAU,EAAC,qBAAqB,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,4BAAmB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAEhH,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC,yBAAiB,CAAC,CAAC;IAC5C,CAAC,CAAA;IAED,WAAW;IACX,sBAAsB;IACtB,sBAAsB;IACtB,mBAAmB;IACnB,qBAAqB;IACrB,uBAAuB;IACvB,mBAAmB;IACnB,IAAI;IAEJ,MAAM,aAAa,GAAG;QAClB,WAAW,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,UAAU,CAAU,EAAE,UAAU,EAAE,cAAc,EAAE;QACnG,qBAAqB,EAAE,EAAE,EAAE,EAAE,qBAAqB,EAAE,cAAc,EAAE,CAAC,UAAU,EAAE,eAAe,CAAU,EAAE,UAAU,EAAE,0BAA0B,EAAE;QACpJ,aAAa,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC,UAAU,CAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE;QACzG,cAAc,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,UAAU,CAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE;QAC5G,cAAc,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,UAAU,CAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE;QAC5G,eAAe,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,UAAU,CAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE;QAC/G,YAAY,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,UAAU,CAAU,EAAE,UAAU,EAAE,wBAAwB,EAAE;KAClH,CAAC;IAEF,OAAO,IAAA,oBAAc,EAAC,iBAAiB,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;AAElE,CAAC,CAAA;AA1QY,QAAA,eAAe,mBA0Q3B","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n OperatorModel,\n ModelOperatorFields,\n} from \"@/models\";\n\nimport { userParentSqlSelect } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nimport { ServiceFactory } from \"@/lib\";\n\nexport type UserType = \"operator\"\n\nexport const operatorDataTypes = {\n // location: \"location\",\n // locationCount: \"location_count\",\n // administratorInjectionFields: \"administrator_injection_fields\",\n parentUser: \"parent_user\"\n}\n\nexport type OperatorDataType = keyof typeof operatorDataTypes;\n\nexport type OperatorServiceProps = DefaultServiceProps & {};\n\nexport type OperatorGetProps = {\n id: number,\n includePassword?: boolean\n datatypes: OperatorDataType[]\n};\n\nexport type OperatorGetByUsernameProps = {\n username: string,\n includePassword?: boolean\n datatypes: OperatorDataType[]\n};\n\nexport type OperatorListProps = QueryList & {\n includePassword?: boolean\n datatypes: OperatorDataType[]\n};\n\nexport type OperatorRemoveProps = {\n userIds: BigInt[]\n};\n\nexport type OperatorCreateProps = {\n data:\n // operator\n {\n operator: {\n userId: number,\n }\n }\n}\n\nexport type OperatorUpdateProps = {\n userId: number,\n data:\n // operator\n {\n operator: {\n // userId: number,\n }\n }\n}\n\nconst getCreatePayload = (data: OperatorCreateProps[\"data\"]) => {\n\n if (\"operator\" in data) {\n\n return {\n [`${ModelOperatorFields.user_id}`]: data.operator.userId\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: OperatorUpdateProps[\"data\"]) => {\n\n if (\"operator\" in data) {\n\n return {\n // [`${ModelOperatorFields.user_id}`]: data.operator.userId,\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`oper.${ModelOperatorFields.operator_id}`]: \"operator_id\",\n [`oper.${ModelOperatorFields.user_id}`]: \"user_id\",\n}\n\nlet userSqlSelect = {\n [`usr.${ModelUserFields.login_username}`]: \"username\",\n [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n [`CONCAT(usr.${ModelUserFields.contact_country_code}, usr.${ModelUserFields.contact_phone_number})`]: \"contact\",\n [`usr.${ModelUserFields.contact_country_code}`]: \"contact_country_code\",\n [`usr.${ModelUserFields.contact_phone_number}`]: \"contact_phone_number\",\n [`usr.${ModelUserFields.email}`]: \"email\",\n [`usr.${ModelUserFields.address}`]: \"address\",\n [`usr.${ModelUserFields.status}`]: \"status\",\n}\n\nlet defaultSqlSelect = {\n [`oper.${ModelOperatorFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`oper.${ModelOperatorFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`oper.${ModelOperatorFields.isdelete}`]: \"isdelete\",\n [`oper.${ModelOperatorFields.istrash}`]: \"istrash\",\n [`oper.${ModelOperatorFields.accountid}`]: \"accountid\",\n}\n\n// let userStatusIsOwnerSqlSelect = {\n// [`COALESCE(usrsta_isowner.${ModelUserStatusFields.status}::int, 0)`]: \"is_owner\"\n// }\n\n// let userPropLocationSqlSelect = {\n// // [`COALESCE(usrprop_location.${ModelUserPropFields.props_id}::int, 0)`]: \"location_id\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT usrprop_location.${ModelUserPropFields.props_id}::text, ', '),\n// ''\n// )`]: \"location_id\",\n// // [`COALESCE(location.${ModelLocationFields.location_name}::text, '')`]: \"location_name\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT location.${ModelLocationFields.location_name}::text, ', '),\n// ''\n// )`]: \"location_name\",\n// }\n\n// let groupOwnerSqlSelect = {\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_id}::text, ', '),\n// ''\n// )`]: \"access_group_id\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_label}::text, ', '),\n// ''\n// )`]: \"access_group_label\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_description}::text, ', '),\n// ''\n// )`]: \"access_group_description\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_type}::text, ', '),\n// ''\n// )`]: \"access_group_type\"\n// // [`COALESCE(\n// // JSON_AGG(\n// // DISTINCT JSONB_BUILD_OBJECT(\n// // '${ModelGroupFields.group_label}', grp.group_label,\n// // '${ModelGroupFields.group_id}', grp.group_id,\n// // '${ModelGroupFields.group_type}', grp.group_type\n// // )\n// // ) FILTER (WHERE grp.group_id IS NOT NULL AND grp.isdelete = false AND grp.istrash = false), \n// // '[]'\n// // )`]: \"grp\"\n// }\n\nexport const OperatorService = (props: OperatorServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const operatorModel = OperatorModel({ ...rest })\n\n // const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"user\" })\n\n const createOperator = async ({ data }: OperatorCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create operator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await operatorModel.create({ data: _data })\n\n return response\n }\n\n const updateOperator = async ({ userId, data }: OperatorUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update operator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await operatorModel.update({ where: { [`${ModelOperatorFields.user_id}`]: userId }, data: _data })\n\n return response\n }\n\n const getOperator = async ({ id, datatypes = [], includePassword = false }: OperatorGetProps) => {\n\n let { data } = await listOperators({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelOperatorFields.user_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelOperatorFields.user_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const getOperatorByUsername = async ({ username = \"\", includePassword = false, datatypes = [] }: OperatorGetByUsernameProps) => {\n\n let { data } = await listOperators({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [{\n field: `username`, operator: \"=\", value: `${username}`\n }],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listOperators = async ({\n includePassword = false,\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: OperatorListProps) => {\n\n let data = []\n\n if (includePassword === true) {\n userSqlSelect = {\n ...userSqlSelect,\n [`usr.${ModelUserFields.login_password}`]: \"password\",\n }\n } else {\n delete userSqlSelect[`usr.${ModelUserFields.login_password}`];\n }\n\n let sqlSelect = [\n `COUNT(oper.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, userSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n // buildSqlSelect(``, userStatusIsOwnerSqlSelect),\n // buildSqlSelect(``, userPropLocationSqlSelect),\n // buildSqlSelect(``, groupOwnerSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"oper\", \"users\", \"usr\", [\"oper.user_id = usr.user_id\", \"usr.isdelete = false\", \"usr.istrash = false\"]),\n buildSqlRelation(\"left\", \"oper\", \"users\", \"creator\", [\"oper.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"oper\", \"users\", \"updater\", [\"oper.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"user_status\", \"usrsta_isowner\", [\"oper.user_id = usrsta_isowner.user_id\", \"usrsta_isowner.type = 'IS_OWNER'\", \"usrsta_isowner.isdelete = false\", \"usrsta_isowner.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"user_props\", \"usrprop_location\", [\"oper.user_id = usrprop_location.user_id\", \"usrprop_location.type = 'LOCATION_ID'\", \"usrprop_location.isdelete = false\", \"usrprop_location.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"locations\", \"location\", [\"usrprop_location.props_id = location.location_id\", \"location.isdelete = false\", \"location.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"group_owners\", \"grpown\", [\"oper.user_id = grpown.user_id\", \"grpown.isdelete = false\", \"grpown.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"groups\", \"grp\", [\"grpown.group_id = grp.group_id\", \"grp.isdelete = false\", \"grp.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(userSqlSelect),\n // ...Object.keys(userStatusIsOwnerSqlSelect),\n // ...Object.keys(userPropLocationSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...userSqlSelect,\n // ...userStatusIsOwnerSqlSelect,\n // ...userPropLocationSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(operatorDataTypes.parentUser)) {\n\n filterColumns = { ...filterColumns, ...userParentSqlSelect }\n\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"wrk\", \"users\", \"parentuser\", [\"usr.parent_user_id = parentuser.user_id\", \"parentuser.isdelete = false\", \"parentuser.istrash = false\"])]\n sqlSelect = [...sqlSelect, buildSqlSelect(``, userParentSqlSelect)]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(userParentSqlSelect)]\n\n }\n\n // if (datatypes.includes(operatorDataTypes.administratorInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"user\", \"administrator\")\n\n // const administratorInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"uif\", activeInjectionFields)\n\n // filterColumns = { ...filterColumns, ...administratorInjectionFieldSqlSelect }\n\n // sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, administratorInjectionFieldSqlSelect)] : [])]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"adm\", \"user_injection_fields\", \"uif\", [\"oper.user_id = uif.user_id\", \"uif.field_ref = 'user'\", \"uif.field_module = 'administrator'\", \"uif.isdelete = false\", \"uif.istrash = false\"])]\n // sqlGroupBy = [...sqlGroupBy, ...Object.keys(administratorInjectionFieldSqlSelect)]\n // }\n\n // if (datatypes.includes(operatorDataTypes.location)) {\n\n // let locationSqlSelect = {\n // [`COALESCE(\n // JSON_AGG(\n // DISTINCT JSONB_BUILD_OBJECT(\n // '${ModelLocationFields.location_id}', location.location_id,\n // '${ModelLocationFields.location_code}', location.location_code,\n // '${ModelLocationFields.location_name}', location.location_name,\n // '${ModelLocationFields.location_type}', location.location_type,\n // '${ModelLocationFields.address_1}', location.address_1,\n // '${ModelLocationFields.address_2}', location.address_2,\n // '${ModelLocationFields.area_id}', location.area_id,\n // '${ModelLocationFields.country_id}', location.country_id,\n // '${ModelLocationFields.state_id}', location.state_id,\n // '${ModelLocationFields.postcode}', location.postcode,\n // '${ModelLocationFields.is_default}', location.is_default,\n // '${ModelLocationFields.person_contact}', location.person_contact,\n // '${ModelLocationFields.person_name}', location.person_contact,\n // '${ModelLocationFields.person_email}', location.person_email,\n // '${ModelLocationFields.isdelete}', location.isdelete,\n // '${ModelLocationFields.istrash}', location.istrash\n // )\n // ) FILTER (WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false), \n // '[]'\n // )`]: \"locations\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"usrprop_location\", \"location\", \"brn\", [\"oper.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n // }\n\n // if (datatypes.includes(operatorDataTypes.locationCount)) {\n\n // let locationCountSqlSelect = {\n // [`COUNT(DISTINCT location.${ModelLocationFields.location_id})::INT`]: \"location_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationCountSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branches\", \"brncount\", [\"oper.user_id = brncount.user_id\", \"brncount.isdelete = false\", \"brncount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `oper.isdelete = false`,\n `oper.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"operators\",\n mainAlias: \"oper\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true\n })\n\n data = await operatorModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeOperators = async ({ userIds }: OperatorRemoveProps) => {\n\n if (!userIds.length) throwError('userIds is required');\n\n const response = await operatorModel.remove({ where: { [`${ModelOperatorFields.user_id}`]: { in: userIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(operatorDataTypes);\n }\n\n // return {\n // createOperator,\n // updateOperator,\n // getOperator,\n // listOperators,\n // removeOperators,\n // getDataTypes\n // }\n\n const methodConfigs = {\n getOperator: { fn: getOperator, allowUserTypes: [\"operator\"] as const, actionName: \"get operator\" },\n getOperatorByUsername: { fn: getOperatorByUsername, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get operator by username\" },\n listOperators: { fn: listOperators, allowUserTypes: [\"operator\"] as const, actionName: \"list operators\" },\n createOperator: { fn: createOperator, allowUserTypes: [\"operator\"] as const, actionName: \"create operator\" },\n updateOperator: { fn: updateOperator, allowUserTypes: [\"operator\"] as const, actionName: \"update operator\" },\n removeOperators: { fn: removeOperators, allowUserTypes: [\"operator\"] as const, actionName: \"remove operators\" },\n getDataTypes: { fn: getDataTypes, allowUserTypes: [\"operator\"] as const, actionName: \"get operator datatypes\" },\n };\n\n return ServiceFactory(\"OperatorService\", rest, methodConfigs);\n\n}\n\n"]}
@@ -12,6 +12,7 @@ export declare const retailerDataTypes: {
12
12
  shippingAddress: string;
13
13
  shippingAddressCount: string;
14
14
  branchUserCount: string;
15
+ parentUser: string;
15
16
  };
16
17
  export type RetailerDataType = keyof typeof retailerDataTypes;
17
18
  export type RetailerServiceProps = DefaultServiceProps & {};
@@ -16,6 +16,7 @@ exports.retailerDataTypes = {
16
16
  shippingAddress: "shipping_address",
17
17
  shippingAddressCount: "shipping_address_count",
18
18
  branchUserCount: "branch_user_count",
19
+ parentUser: "parent_user"
19
20
  };
20
21
  const getCreatePayload = (data) => {
21
22
  if ("retailer" in data) {
@@ -228,6 +229,12 @@ const RetailerService = (props) => {
228
229
  sqlSelect = [...sqlSelect, (0, lib_1.buildSqlSelect)(``, branchUserCountSqlSelect)];
229
230
  sqlRelation = [...sqlRelation, (0, lib_1.buildSqlRelation)("left", "rtl", "branch_users", "brnusrcount", ["rtl.user_id = brnusrcount.user_id", "brnusrcount.isdelete = false", "brnusrcount.istrash = false"])];
230
231
  }
232
+ if (datatypes.includes(exports.retailerDataTypes.parentUser)) {
233
+ filterColumns = { ...filterColumns, ...services_1.userParentSqlSelect };
234
+ sqlRelation = [...sqlRelation, (0, lib_1.buildSqlRelation)("left", "wrk", "users", "parentuser", ["usr.parent_user_id = parentuser.user_id", "parentuser.isdelete = false", "parentuser.istrash = false"])];
235
+ sqlSelect = [...sqlSelect, (0, lib_1.buildSqlSelect)(``, services_1.userParentSqlSelect)];
236
+ sqlGroupBy = [...sqlGroupBy, ...Object.keys(services_1.userParentSqlSelect)];
237
+ }
231
238
  let sqlWhere = [
232
239
  `rtl.isdelete = false`,
233
240
  `rtl.istrash = false`,
@@ -1 +1 @@
1
- {"version":3,"file":"RetailerService.js","sourceRoot":"","sources":["../../../src/services/user/RetailerService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n ModelUserBranchFields,\n RetailerModel,\n ModelRetailerFields,\n ModelBranchUserFields,\n} from \"@/models\";\n\nimport { InjectionFieldService } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nexport type UserType = \"retailer\"\n\nexport const retailerDataTypes = {\n retailerInjectionFields: \"retailer_injection_fields\",\n business: \"business\",\n file: \"file\",\n branch: \"branch\",\n member: \"member\",\n branchCount: \"branch_count\",\n memberCount: \"member_count\",\n shippingAddress: \"shipping_address\",\n shippingAddressCount: \"shipping_address_count\",\n branchUserCount: \"branch_user_count\",\n}\n\nexport type RetailerDataType = keyof typeof retailerDataTypes;\n\nexport type RetailerServiceProps = DefaultServiceProps & {};\n\nexport type RetailerGetProps = QueryGet & {\n id: number,\n includePassword?: boolean,\n datatypes: RetailerDataType[]\n};\n\nexport type RetailerListProps = QueryList & {\n includePassword?: boolean,\n datatypes: RetailerDataType[]\n};\n\nexport type RetailerRemoveProps = {\n userIds: BigInt[]\n};\n\nexport type RetailerCreateProps = {\n data:\n // retailer\n {\n retailer: {\n userId: number,\n accountCode: string,\n code: string\n companyName: string\n gstNo: string\n regNo: string\n remark: string\n }\n }\n}\n\nexport type RetailerUpdateProps = {\n userId: number,\n data:\n // retailer\n {\n retailer: {\n // userId: number,\n accountCode: string,\n code: string\n companyName: string\n gstNo: string\n regNo: string\n remark: string\n }\n }\n}\n\nconst getCreatePayload = (data: RetailerCreateProps[\"data\"]) => {\n\n if (\"retailer\" in data) {\n\n return {\n [`${ModelRetailerFields.user_id}`]: data.retailer.userId,\n [`${ModelRetailerFields.account_code}`]: data.retailer.accountCode,\n [`${ModelRetailerFields.code}`]: data.retailer.code,\n [`${ModelRetailerFields.company_name}`]: data.retailer.companyName,\n [`${ModelRetailerFields.gst_no}`]: data.retailer.gstNo,\n [`${ModelRetailerFields.reg_no}`]: data.retailer.regNo,\n [`${ModelRetailerFields.remark}`]: data.retailer.remark,\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: RetailerUpdateProps[\"data\"]) => {\n\n if (\"retailer\" in data) {\n\n return {\n // [`${ModelRetailerFields.user_id}`]: data.retailer.userId,\n [`${ModelRetailerFields.account_code}`]: data.retailer.accountCode,\n [`${ModelRetailerFields.code}`]: data.retailer.code,\n [`${ModelRetailerFields.company_name}`]: data.retailer.companyName,\n [`${ModelRetailerFields.gst_no}`]: data.retailer.gstNo,\n [`${ModelRetailerFields.reg_no}`]: data.retailer.regNo,\n [`${ModelRetailerFields.remark}`]: data.retailer.remark,\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`rtl.${ModelRetailerFields.user_id}`]: \"user_id\",\n [`rtl.${ModelRetailerFields.retailer_id}`]: \"retailer_id\",\n [`rtl.${ModelRetailerFields.account_code}`]: \"account_code\",\n [`rtl.${ModelRetailerFields.code}`]: \"code\",\n [`rtl.${ModelRetailerFields.company_name}`]: \"company_name\",\n [`rtl.${ModelRetailerFields.gst_no}`]: \"gst_no\",\n [`rtl.${ModelRetailerFields.reg_no}`]: \"reg_no\",\n [`rtl.${ModelRetailerFields.remark}`]: \"remark\"\n}\n\nlet userSqlSelect = {\n [`usr.${ModelUserFields.login_username}`]: \"username\",\n [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n [`CONCAT(usr.${ModelUserFields.contact_country_code}, usr.${ModelUserFields.contact_phone_number})`]: \"contact\",\n [`usr.${ModelUserFields.contact_country_code}`]: \"contact_country_code\",\n [`usr.${ModelUserFields.contact_phone_number}`]: \"contact_phone_number\",\n [`usr.${ModelUserFields.email}`]: \"email\",\n [`usr.${ModelUserFields.address}`]: \"address\",\n [`usr.${ModelUserFields.status}`]: \"status\",\n}\n\nlet defaultSqlSelect = {\n [`rtl.${ModelRetailerFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`rtl.${ModelRetailerFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`rtl.${ModelRetailerFields.isdelete}`]: \"isdelete\",\n [`rtl.${ModelRetailerFields.istrash}`]: \"istrash\",\n [`rtl.${ModelRetailerFields.accountid}`]: \"accountid\",\n}\n\nexport const RetailerService = (props: RetailerServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const retailerModel = RetailerModel({ ...rest })\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"item\" })\n\n const createRetailer = async ({ data }: RetailerCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create retailer payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await retailerModel.create({ data: _data })\n\n return response\n }\n\n const updateRetailer = async ({ userId, data }: RetailerUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update retailer payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await retailerModel.update({ where: { [`${ModelRetailerFields.user_id}`]: userId }, data: _data })\n\n return response\n }\n\n const getRetailer = async ({ id, datatypes = [], includePassword = false }: RetailerGetProps) => {\n\n let { data } = await listRetailers({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelRetailerFields.user_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelRetailerFields.user_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listRetailers = async ({\n includePassword = false,\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: RetailerListProps) => {\n\n let data = []\n\n if (includePassword === true) {\n userSqlSelect = {\n ...userSqlSelect,\n [`usr.${ModelUserFields.login_password}`]: \"password\",\n }\n } else {\n delete userSqlSelect[`usr.${ModelUserFields.login_password}`];\n }\n\n let sqlSelect = [\n `COUNT(rtl.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, userSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"rtl\", \"users\", \"usr\", [\"rtl.user_id = usr.user_id\", \"usr.isdelete = false\", \"usr.istrash = false\"]),\n buildSqlRelation(\"left\", \"rtl\", \"users\", \"creator\", [\"rtl.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"rtl\", \"users\", \"updater\", [\"rtl.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(userSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...userSqlSelect, ...defaultSqlSelect }\n\n if (datatypes.includes(retailerDataTypes.retailerInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"user\", \"retailer\")\n\n const retailerInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"uif\", activeInjectionFields)\n\n // const retailerInjectionFieldSqlSelect = activeInjectionFields.reduce((acc, col) => {\n // acc[`uif.${col}`] = `${col}`;\n // return acc;\n // }, {} as Record<string, string>);\n\n filterColumns = { ...filterColumns, ...retailerInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, retailerInjectionFieldSqlSelect)] : [])]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"rtl\", \"user_injection_fields\", \"uif\", [\"rtl.user_id = uif.user_id\", \"uif.field_ref = 'user'\", \"uif.isdelete = false\", \"uif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(retailerInjectionFieldSqlSelect)]\n }\n\n if (datatypes.includes(retailerDataTypes.branch)) {\n\n let branchSqlSelect = {\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelUserBranchFields.type}', brn.type,\n '${ModelUserBranchFields.branch_id}', brn.branch_id,\n '${ModelUserBranchFields.branch_code}', brn.branch_code,\n '${ModelUserBranchFields.branch_name}', brn.branch_name,\n '${ModelUserBranchFields.address_1}', brn.address_1,\n '${ModelUserBranchFields.address_2}', brn.address_2,\n '${ModelUserBranchFields.area}', brn.area,\n '${ModelUserBranchFields.area_id}', brn.area_id,\n '${ModelUserBranchFields.branch_contact}', brn.branch_contact,\n '${ModelUserBranchFields.branch_email}', brn.branch_email,\n '${ModelUserBranchFields.country_id}', brn.country_id,\n '${ModelUserBranchFields.is_hq}', brn.is_hq,\n '${ModelUserBranchFields.remark}', brn.remark,\n '${ModelUserBranchFields.pic_contact}', brn.pic_contact,\n '${ModelUserBranchFields.pic_email}', brn.pic_email,\n '${ModelUserBranchFields.pic_contact}', brn.pic_contact,\n '${ModelUserBranchFields.postcode}', brn.postcode,\n '${ModelUserBranchFields.state_id}', brn.state_id,\n '${ModelUserBranchFields.status}', brn.status,\n '${ModelUserBranchFields.user_id}', brn.user_id\n )\n ) FILTER (WHERE brn.branch_id IS NOT NULL AND brn.isdelete = false AND brn.istrash = false), \n '[]'\n )`]: \"branches\"\n }\n\n filterColumns = { ...filterColumns, ...branchSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, branchSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"rtl\", \"branches\", \"brn\", [\"rtl.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n }\n\n if (datatypes.includes(retailerDataTypes.shippingAddress)) {\n\n let branchShippingAddressSqlSelect = {\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelUserBranchFields.type}', brnship.type,\n '${ModelUserBranchFields.branch_id}', brnship.branch_id,\n '${ModelUserBranchFields.branch_code}', brnship.branch_code,\n '${ModelUserBranchFields.branch_name}', brnship.branch_name,\n '${ModelUserBranchFields.address_1}', brnship.address_1,\n '${ModelUserBranchFields.address_2}', brnship.address_2,\n '${ModelUserBranchFields.area}', brnship.area,\n '${ModelUserBranchFields.area_id}', brnship.area_id,\n '${ModelUserBranchFields.branch_contact}', brnship.branch_contact,\n '${ModelUserBranchFields.branch_email}', brnship.branch_email,\n '${ModelUserBranchFields.country_id}', brnship.country_id,\n '${ModelUserBranchFields.is_hq}', brnship.is_hq,\n '${ModelUserBranchFields.remark}', brnship.remark,\n '${ModelUserBranchFields.pic_contact}', brnship.pic_contact,\n '${ModelUserBranchFields.pic_email}', brnship.pic_email,\n '${ModelUserBranchFields.pic_contact}', brnship.pic_contact,\n '${ModelUserBranchFields.postcode}', brnship.postcode,\n '${ModelUserBranchFields.state_id}', brnship.state_id,\n '${ModelUserBranchFields.status}', brnship.status,\n '${ModelUserBranchFields.user_id}', brnship.user_id\n )\n ) FILTER (WHERE brnship.branch_id IS NOT NULL AND brnship.isdelete = false AND brnship.istrash = false AND brnship.type = 'shipping_address'), \n '[]'\n )`]: \"shipping_address\"\n }\n\n filterColumns = { ...filterColumns, ...branchShippingAddressSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, branchShippingAddressSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"rtl\", \"branches\", \"brnship\", [\"rtl.user_id = brnship.user_id\", \"brnship.isdelete = false\", \"brnship.istrash = false\"])]\n\n }\n\n if (datatypes.includes(retailerDataTypes.branchCount)) {\n\n let branchCountSqlSelect = {\n [`COUNT(DISTINCT brncount.${ModelUserBranchFields.branch_id})::INT`]: \"branch_count\"\n }\n\n filterColumns = { ...filterColumns, ...branchCountSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, branchCountSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"rtl\", \"branches\", \"brncount\", [\"rtl.user_id = brncount.user_id\", \"brncount.isdelete = false\", \"brncount.istrash = false\"])]\n\n }\n\n if (datatypes.includes(retailerDataTypes.branchUserCount)) {\n\n let branchUserCountSqlSelect = {\n [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: \"branch_user_count\"\n }\n\n filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"rtl\", \"branch_users\", \"brnusrcount\", [\"rtl.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n }\n\n let sqlWhere = [\n `rtl.isdelete = false`,\n `rtl.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"retailers\",\n mainAlias: \"rtl\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await retailerModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeRetailers = async ({ userIds }: RetailerRemoveProps) => {\n\n if (!userIds.length) throwError('userIds is required');\n\n const response = await retailerModel.remove({ where: { [`${ModelRetailerFields.user_id}`]: { in: userIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(retailerDataTypes);\n }\n\n return {\n createRetailer,\n updateRetailer,\n getRetailer,\n listRetailers,\n removeRetailers,\n getDataTypes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"RetailerService.js","sourceRoot":"","sources":["../../../src/services/user/RetailerService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n ModelUserBranchFields,\n RetailerModel,\n ModelRetailerFields,\n ModelBranchUserFields,\n} from \"@/models\";\n\nimport { InjectionFieldService, userParentSqlSelect } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nexport type UserType = \"retailer\"\n\nexport const retailerDataTypes = {\n retailerInjectionFields: \"retailer_injection_fields\",\n business: \"business\",\n file: \"file\",\n branch: \"branch\",\n member: \"member\",\n branchCount: \"branch_count\",\n memberCount: \"member_count\",\n shippingAddress: \"shipping_address\",\n shippingAddressCount: \"shipping_address_count\",\n branchUserCount: \"branch_user_count\",\n parentUser: \"parent_user\"\n}\n\nexport type RetailerDataType = keyof typeof retailerDataTypes;\n\nexport type RetailerServiceProps = DefaultServiceProps & {};\n\nexport type RetailerGetProps = QueryGet & {\n id: number,\n includePassword?: boolean,\n datatypes: RetailerDataType[]\n};\n\nexport type RetailerListProps = QueryList & {\n includePassword?: boolean,\n datatypes: RetailerDataType[]\n};\n\nexport type RetailerRemoveProps = {\n userIds: BigInt[]\n};\n\nexport type RetailerCreateProps = {\n data:\n // retailer\n {\n retailer: {\n userId: number,\n accountCode: string,\n code: string\n companyName: string\n gstNo: string\n regNo: string\n remark: string\n }\n }\n}\n\nexport type RetailerUpdateProps = {\n userId: number,\n data:\n // retailer\n {\n retailer: {\n // userId: number,\n accountCode: string,\n code: string\n companyName: string\n gstNo: string\n regNo: string\n remark: string\n }\n }\n}\n\nconst getCreatePayload = (data: RetailerCreateProps[\"data\"]) => {\n\n if (\"retailer\" in data) {\n\n return {\n [`${ModelRetailerFields.user_id}`]: data.retailer.userId,\n [`${ModelRetailerFields.account_code}`]: data.retailer.accountCode,\n [`${ModelRetailerFields.code}`]: data.retailer.code,\n [`${ModelRetailerFields.company_name}`]: data.retailer.companyName,\n [`${ModelRetailerFields.gst_no}`]: data.retailer.gstNo,\n [`${ModelRetailerFields.reg_no}`]: data.retailer.regNo,\n [`${ModelRetailerFields.remark}`]: data.retailer.remark,\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: RetailerUpdateProps[\"data\"]) => {\n\n if (\"retailer\" in data) {\n\n return {\n // [`${ModelRetailerFields.user_id}`]: data.retailer.userId,\n [`${ModelRetailerFields.account_code}`]: data.retailer.accountCode,\n [`${ModelRetailerFields.code}`]: data.retailer.code,\n [`${ModelRetailerFields.company_name}`]: data.retailer.companyName,\n [`${ModelRetailerFields.gst_no}`]: data.retailer.gstNo,\n [`${ModelRetailerFields.reg_no}`]: data.retailer.regNo,\n [`${ModelRetailerFields.remark}`]: data.retailer.remark,\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`rtl.${ModelRetailerFields.user_id}`]: \"user_id\",\n [`rtl.${ModelRetailerFields.retailer_id}`]: \"retailer_id\",\n [`rtl.${ModelRetailerFields.account_code}`]: \"account_code\",\n [`rtl.${ModelRetailerFields.code}`]: \"code\",\n [`rtl.${ModelRetailerFields.company_name}`]: \"company_name\",\n [`rtl.${ModelRetailerFields.gst_no}`]: \"gst_no\",\n [`rtl.${ModelRetailerFields.reg_no}`]: \"reg_no\",\n [`rtl.${ModelRetailerFields.remark}`]: \"remark\"\n}\n\nlet userSqlSelect = {\n [`usr.${ModelUserFields.login_username}`]: \"username\",\n [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n [`CONCAT(usr.${ModelUserFields.contact_country_code}, usr.${ModelUserFields.contact_phone_number})`]: \"contact\",\n [`usr.${ModelUserFields.contact_country_code}`]: \"contact_country_code\",\n [`usr.${ModelUserFields.contact_phone_number}`]: \"contact_phone_number\",\n [`usr.${ModelUserFields.email}`]: \"email\",\n [`usr.${ModelUserFields.address}`]: \"address\",\n [`usr.${ModelUserFields.status}`]: \"status\",\n}\n\nlet defaultSqlSelect = {\n [`rtl.${ModelRetailerFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`rtl.${ModelRetailerFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`rtl.${ModelRetailerFields.isdelete}`]: \"isdelete\",\n [`rtl.${ModelRetailerFields.istrash}`]: \"istrash\",\n [`rtl.${ModelRetailerFields.accountid}`]: \"accountid\",\n}\n\nexport const RetailerService = (props: RetailerServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const retailerModel = RetailerModel({ ...rest })\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"item\" })\n\n const createRetailer = async ({ data }: RetailerCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create retailer payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await retailerModel.create({ data: _data })\n\n return response\n }\n\n const updateRetailer = async ({ userId, data }: RetailerUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update retailer payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await retailerModel.update({ where: { [`${ModelRetailerFields.user_id}`]: userId }, data: _data })\n\n return response\n }\n\n const getRetailer = async ({ id, datatypes = [], includePassword = false }: RetailerGetProps) => {\n\n let { data } = await listRetailers({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelRetailerFields.user_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelRetailerFields.user_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listRetailers = async ({\n includePassword = false,\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: RetailerListProps) => {\n\n let data = []\n\n if (includePassword === true) {\n userSqlSelect = {\n ...userSqlSelect,\n [`usr.${ModelUserFields.login_password}`]: \"password\",\n }\n } else {\n delete userSqlSelect[`usr.${ModelUserFields.login_password}`];\n }\n\n let sqlSelect = [\n `COUNT(rtl.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, userSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"rtl\", \"users\", \"usr\", [\"rtl.user_id = usr.user_id\", \"usr.isdelete = false\", \"usr.istrash = false\"]),\n buildSqlRelation(\"left\", \"rtl\", \"users\", \"creator\", [\"rtl.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"rtl\", \"users\", \"updater\", [\"rtl.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(userSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...userSqlSelect, ...defaultSqlSelect }\n\n if (datatypes.includes(retailerDataTypes.retailerInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"user\", \"retailer\")\n\n const retailerInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"uif\", activeInjectionFields)\n\n // const retailerInjectionFieldSqlSelect = activeInjectionFields.reduce((acc, col) => {\n // acc[`uif.${col}`] = `${col}`;\n // return acc;\n // }, {} as Record<string, string>);\n\n filterColumns = { ...filterColumns, ...retailerInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, retailerInjectionFieldSqlSelect)] : [])]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"rtl\", \"user_injection_fields\", \"uif\", [\"rtl.user_id = uif.user_id\", \"uif.field_ref = 'user'\", \"uif.isdelete = false\", \"uif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(retailerInjectionFieldSqlSelect)]\n }\n\n if (datatypes.includes(retailerDataTypes.branch)) {\n\n let branchSqlSelect = {\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelUserBranchFields.type}', brn.type,\n '${ModelUserBranchFields.branch_id}', brn.branch_id,\n '${ModelUserBranchFields.branch_code}', brn.branch_code,\n '${ModelUserBranchFields.branch_name}', brn.branch_name,\n '${ModelUserBranchFields.address_1}', brn.address_1,\n '${ModelUserBranchFields.address_2}', brn.address_2,\n '${ModelUserBranchFields.area}', brn.area,\n '${ModelUserBranchFields.area_id}', brn.area_id,\n '${ModelUserBranchFields.branch_contact}', brn.branch_contact,\n '${ModelUserBranchFields.branch_email}', brn.branch_email,\n '${ModelUserBranchFields.country_id}', brn.country_id,\n '${ModelUserBranchFields.is_hq}', brn.is_hq,\n '${ModelUserBranchFields.remark}', brn.remark,\n '${ModelUserBranchFields.pic_contact}', brn.pic_contact,\n '${ModelUserBranchFields.pic_email}', brn.pic_email,\n '${ModelUserBranchFields.pic_contact}', brn.pic_contact,\n '${ModelUserBranchFields.postcode}', brn.postcode,\n '${ModelUserBranchFields.state_id}', brn.state_id,\n '${ModelUserBranchFields.status}', brn.status,\n '${ModelUserBranchFields.user_id}', brn.user_id\n )\n ) FILTER (WHERE brn.branch_id IS NOT NULL AND brn.isdelete = false AND brn.istrash = false), \n '[]'\n )`]: \"branches\"\n }\n\n filterColumns = { ...filterColumns, ...branchSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, branchSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"rtl\", \"branches\", \"brn\", [\"rtl.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n }\n\n if (datatypes.includes(retailerDataTypes.shippingAddress)) {\n\n let branchShippingAddressSqlSelect = {\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelUserBranchFields.type}', brnship.type,\n '${ModelUserBranchFields.branch_id}', brnship.branch_id,\n '${ModelUserBranchFields.branch_code}', brnship.branch_code,\n '${ModelUserBranchFields.branch_name}', brnship.branch_name,\n '${ModelUserBranchFields.address_1}', brnship.address_1,\n '${ModelUserBranchFields.address_2}', brnship.address_2,\n '${ModelUserBranchFields.area}', brnship.area,\n '${ModelUserBranchFields.area_id}', brnship.area_id,\n '${ModelUserBranchFields.branch_contact}', brnship.branch_contact,\n '${ModelUserBranchFields.branch_email}', brnship.branch_email,\n '${ModelUserBranchFields.country_id}', brnship.country_id,\n '${ModelUserBranchFields.is_hq}', brnship.is_hq,\n '${ModelUserBranchFields.remark}', brnship.remark,\n '${ModelUserBranchFields.pic_contact}', brnship.pic_contact,\n '${ModelUserBranchFields.pic_email}', brnship.pic_email,\n '${ModelUserBranchFields.pic_contact}', brnship.pic_contact,\n '${ModelUserBranchFields.postcode}', brnship.postcode,\n '${ModelUserBranchFields.state_id}', brnship.state_id,\n '${ModelUserBranchFields.status}', brnship.status,\n '${ModelUserBranchFields.user_id}', brnship.user_id\n )\n ) FILTER (WHERE brnship.branch_id IS NOT NULL AND brnship.isdelete = false AND brnship.istrash = false AND brnship.type = 'shipping_address'), \n '[]'\n )`]: \"shipping_address\"\n }\n\n filterColumns = { ...filterColumns, ...branchShippingAddressSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, branchShippingAddressSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"rtl\", \"branches\", \"brnship\", [\"rtl.user_id = brnship.user_id\", \"brnship.isdelete = false\", \"brnship.istrash = false\"])]\n\n }\n\n if (datatypes.includes(retailerDataTypes.branchCount)) {\n\n let branchCountSqlSelect = {\n [`COUNT(DISTINCT brncount.${ModelUserBranchFields.branch_id})::INT`]: \"branch_count\"\n }\n\n filterColumns = { ...filterColumns, ...branchCountSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, branchCountSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"rtl\", \"branches\", \"brncount\", [\"rtl.user_id = brncount.user_id\", \"brncount.isdelete = false\", \"brncount.istrash = false\"])]\n\n }\n\n if (datatypes.includes(retailerDataTypes.branchUserCount)) {\n\n let branchUserCountSqlSelect = {\n [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: \"branch_user_count\"\n }\n\n filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"rtl\", \"branch_users\", \"brnusrcount\", [\"rtl.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n }\n\n if (datatypes.includes(retailerDataTypes.parentUser)) {\n\n filterColumns = { ...filterColumns, ...userParentSqlSelect }\n\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"wrk\", \"users\", \"parentuser\", [\"usr.parent_user_id = parentuser.user_id\", \"parentuser.isdelete = false\", \"parentuser.istrash = false\"])]\n sqlSelect = [...sqlSelect, buildSqlSelect(``, userParentSqlSelect)]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(userParentSqlSelect)]\n\n }\n\n let sqlWhere = [\n `rtl.isdelete = false`,\n `rtl.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"retailers\",\n mainAlias: \"rtl\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await retailerModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeRetailers = async ({ userIds }: RetailerRemoveProps) => {\n\n if (!userIds.length) throwError('userIds is required');\n\n const response = await retailerModel.remove({ where: { [`${ModelRetailerFields.user_id}`]: { in: userIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(retailerDataTypes);\n }\n\n return {\n createRetailer,\n updateRetailer,\n getRetailer,\n listRetailers,\n removeRetailers,\n getDataTypes\n }\n\n}\n\n"]}
@@ -44,5 +44,6 @@ export declare const UserMeService: (props: UserMeServiceProps) => {
44
44
  address: string | null;
45
45
  contact_country_code: number;
46
46
  contact_phone_number: string | null;
47
+ parent_user_id: bigint;
47
48
  }>;
48
49
  };
@@ -61,6 +61,7 @@ export type User = {
61
61
  firstname: string;
62
62
  lastname: string;
63
63
  status: boolean;
64
+ parentUserId?: number;
64
65
  };
65
66
  export type UserOptionalLoginPassword = Omit<User, "loginPassword"> & {
66
67
  loginPassword?: string;
@@ -135,6 +136,9 @@ export type UserReplacePasswordProps = {
135
136
  };
136
137
  isOperator: boolean;
137
138
  };
139
+ export declare const userParentSqlSelect: {
140
+ [x: string]: string;
141
+ };
138
142
  export declare const loginUsernameReservedWords: string[];
139
143
  export declare const loginUsernameSchema: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
140
144
  export declare const UserService: (props: UserServiceProps) => {
@@ -166,6 +170,7 @@ export declare const UserService: (props: UserServiceProps) => {
166
170
  address: string | null;
167
171
  contact_country_code: number;
168
172
  contact_phone_number: string | null;
173
+ parent_user_id: bigint;
169
174
  }>;
170
175
  getDataTypes: () => any[];
171
176
  validateUserContact: (countryCode: number, phoneNumber: string) => Promise<boolean>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UserService = exports.loginUsernameSchema = exports.loginUsernameReservedWords = exports.userTypes = void 0;
3
+ exports.UserService = exports.loginUsernameSchema = exports.loginUsernameReservedWords = exports.userParentSqlSelect = exports.userTypes = void 0;
4
4
  const models_1 = require("../../models");
5
5
  const zod_1 = require("zod");
6
6
  const UserPropService_1 = require("./UserPropService");
@@ -38,6 +38,7 @@ let mainSqlSelect = {
38
38
  [`usr.${models_1.ModelUserFields.contact_phone_number}`]: "contact_phone_number",
39
39
  [`usr.${models_1.ModelUserFields.email}`]: "email",
40
40
  [`usr.${models_1.ModelUserFields.address}`]: "address",
41
+ [`usr.${models_1.ModelUserFields.parent_user_id}`]: "parent_user_id",
41
42
  [`usr.${models_1.ModelUserFields.status}`]: "status",
42
43
  };
43
44
  let defaultSqlSelect = {
@@ -49,6 +50,19 @@ let defaultSqlSelect = {
49
50
  [`usr.${models_1.ModelUserFields.istrash}`]: "istrash",
50
51
  [`usr.${models_1.ModelUserFields.accountid}`]: "accountid",
51
52
  };
53
+ exports.userParentSqlSelect = {
54
+ [`parentuser.${models_1.ModelUserFields.user_id}`]: "parent_user_id",
55
+ [`parentuser.${models_1.ModelUserFields.login_username}`]: "parent_username",
56
+ [`parentuser.${models_1.ModelUserFields.user_type}`]: "parent_user_type",
57
+ [`parentuser.${models_1.ModelUserFields.firstname}`]: "parent_firstname",
58
+ [`parentuser.${models_1.ModelUserFields.lastname}`]: "parent_lastname",
59
+ [`CONCAT(parentuser.${models_1.ModelUserFields.contact_country_code}, parentuser.${models_1.ModelUserFields.contact_phone_number})`]: "parent_contact",
60
+ [`parentuser.${models_1.ModelUserFields.contact_country_code}`]: "parent_contact_country_code",
61
+ [`parentuser.${models_1.ModelUserFields.contact_phone_number}`]: "parent_contact_phone_number",
62
+ [`parentuser.${models_1.ModelUserFields.email}`]: "parent_email",
63
+ [`parentuser.${models_1.ModelUserFields.address}`]: "parent_address",
64
+ [`parentuser.${models_1.ModelUserFields.status}`]: "parent_user_status"
65
+ };
52
66
  const getCreatePayload = async (userType, data, contact) => {
53
67
  if ("user" in data) {
54
68
  // have to hash the password
@@ -62,7 +76,8 @@ const getCreatePayload = async (userType, data, contact) => {
62
76
  [`${models_1.ModelUserFields.firstname}`]: data.user.firstname,
63
77
  [`${models_1.ModelUserFields.lastname}`]: data.user.lastname,
64
78
  [`${models_1.ModelUserFields.status}`]: Boolean(data.user.status),
65
- [`${models_1.ModelUserFields.user_type}`]: `${userType}`
79
+ [`${models_1.ModelUserFields.user_type}`]: `${userType}`,
80
+ ...(data?.user?.parentUserId ? { [`${models_1.ModelUserFields.parent_user_id}`]: Number(data.user.parentUserId) } : {})
66
81
  };
67
82
  }
68
83
  return false;
@@ -80,7 +95,8 @@ const getUpdatePayload = async (userType, data, contact) => {
80
95
  [`${models_1.ModelUserFields.firstname}`]: data.user.firstname,
81
96
  [`${models_1.ModelUserFields.lastname}`]: data.user.lastname,
82
97
  [`${models_1.ModelUserFields.status}`]: Boolean(data.user.status),
83
- [`${models_1.ModelUserFields.user_type}`]: `${userType}`
98
+ [`${models_1.ModelUserFields.user_type}`]: `${userType}`,
99
+ ...(data?.user?.parentUserId ? { [`${models_1.ModelUserFields.parent_user_id}`]: Number(data.user.parentUserId) } : {})
84
100
  };
85
101
  }
86
102
  return false;
@@ -208,20 +224,20 @@ const UserService = (props) => {
208
224
  if (checkUsername.length > 0)
209
225
  (0, utils_1.throwError)(`Duplicated username: ${data.user.loginUsername}(${checkUsername[0]?.user_type})`);
210
226
  // validation before insertion
211
- if (_userType === "member" && "member" in data) {
212
- const memberOwnerUserId = data?.member?.ownerUserId ?? "";
213
- // validate owner user id
214
- if (memberOwnerUserId) {
215
- await memberService.validateMemberOwnerUserId(memberOwnerUserId);
216
- }
217
- }
218
- if (_userType === "agent" && "agent" in data) {
219
- const agentOwnerUserId = data?.agent?.ownerUserId ?? "";
220
- // validate owner user id
221
- if (agentOwnerUserId) {
222
- await agentService.validateAgentOwnerUserId(agentOwnerUserId);
223
- }
224
- }
227
+ // if (_userType === "member" && "member" in data) {
228
+ // const memberOwnerUserId = data?.member?.ownerUserId ?? "";
229
+ // validate owner user id
230
+ // if (memberOwnerUserId) {
231
+ // await memberService.validateMemberOwnerUserId(memberOwnerUserId)
232
+ // }
233
+ // }
234
+ // if (_userType === "agent" && "agent" in data) {
235
+ // const agentOwnerUserId = data?.agent?.ownerUserId ?? "";
236
+ // validate owner user id
237
+ // if (agentOwnerUserId) {
238
+ // await agentService.validateAgentOwnerUserId(agentOwnerUserId)
239
+ // }
240
+ // }
225
241
  const _data = await getCreatePayload(_userType, data, {
226
242
  countryCode: userContactCountryCode,
227
243
  phoneNumber: userContactPhoneNumber
@@ -640,6 +656,7 @@ const UserService = (props) => {
640
656
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
641
657
  ];
642
658
  let sqlRelation = [
659
+ (0, lib_1.buildSqlRelation)("left", "usr", "users", "parentuser", ["usr.parent_user_id = parentuser.user_id", "parentuser.isdelete = false", "parentuser.istrash = false"]),
643
660
  (0, lib_1.buildSqlRelation)("left", "usr", "users", "creator", ["usr.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
644
661
  (0, lib_1.buildSqlRelation)("left", "usr", "users", "updater", ["usr.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"])
645
662
  ];