storemw-core-api 1.0.154 → 1.0.156

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 (62) hide show
  1. package/dist/lib/model_factory/default.d.ts +5 -5
  2. package/dist/lib/model_factory/default.js +8 -5
  3. package/dist/lib/model_factory/default.js.map +1 -1
  4. package/dist/services/access_control/AccessControlRoleService.js +1 -1
  5. package/dist/services/access_control/AccessControlRoleService.js.map +1 -1
  6. package/dist/services/access_key/AccessKeyService.js +1 -1
  7. package/dist/services/access_key/AccessKeyService.js.map +1 -1
  8. package/dist/services/account/AccountService.js +1 -1
  9. package/dist/services/account/AccountService.js.map +1 -1
  10. package/dist/services/business/BusinessService.js +1 -1
  11. package/dist/services/business/BusinessService.js.map +1 -1
  12. package/dist/services/injection_field/InjectionFieldService.js +1 -1
  13. package/dist/services/injection_field/InjectionFieldService.js.map +1 -1
  14. package/dist/services/item/ItemBrandService.js +1 -1
  15. package/dist/services/item/ItemBrandService.js.map +1 -1
  16. package/dist/services/item/ItemCategoryService.js +1 -1
  17. package/dist/services/item/ItemCategoryService.js.map +1 -1
  18. package/dist/services/item/ItemItemService.js +1 -1
  19. package/dist/services/item/ItemItemService.js.map +1 -1
  20. package/dist/services/item/ItemProductService.js +1 -1
  21. package/dist/services/item/ItemProductService.js.map +1 -1
  22. package/dist/services/item/ItemUomService.js +1 -1
  23. package/dist/services/item/ItemUomService.js.map +1 -1
  24. package/dist/services/location/LocationLocationService.js +1 -1
  25. package/dist/services/location/LocationLocationService.js.map +1 -1
  26. package/dist/services/location/LocationRackService.js +1 -1
  27. package/dist/services/location/LocationRackService.js.map +1 -1
  28. package/dist/services/location/LocationSlotService.js +1 -1
  29. package/dist/services/location/LocationSlotService.js.map +1 -1
  30. package/dist/services/one_time_code/OneTimeCodeService.js +1 -1
  31. package/dist/services/one_time_code/OneTimeCodeService.js.map +1 -1
  32. package/dist/services/region/AreaService.js +1 -1
  33. package/dist/services/region/AreaService.js.map +1 -1
  34. package/dist/services/region/CountryService.js +1 -1
  35. package/dist/services/region/CountryService.js.map +1 -1
  36. package/dist/services/region/StateService.js +1 -1
  37. package/dist/services/region/StateService.js.map +1 -1
  38. package/dist/services/scheduler/SchedulerLogService.js +1 -1
  39. package/dist/services/scheduler/SchedulerLogService.js.map +1 -1
  40. package/dist/services/subscription/account/AccountSubscribeService.js +1 -1
  41. package/dist/services/subscription/account/AccountSubscribeService.js.map +1 -1
  42. package/dist/services/subscription/plan/SubscribePlanService.js +1 -1
  43. package/dist/services/subscription/plan/SubscribePlanService.js.map +1 -1
  44. package/dist/services/user/AdministratorService.js +1 -1
  45. package/dist/services/user/AdministratorService.js.map +1 -1
  46. package/dist/services/user/AgentService.js +1 -1
  47. package/dist/services/user/AgentService.js.map +1 -1
  48. package/dist/services/user/CustomerService.js +1 -1
  49. package/dist/services/user/CustomerService.js.map +1 -1
  50. package/dist/services/user/DriverService.js +1 -1
  51. package/dist/services/user/DriverService.js.map +1 -1
  52. package/dist/services/user/MemberService.js +1 -1
  53. package/dist/services/user/MemberService.js.map +1 -1
  54. package/dist/services/user/OperatorService.js +1 -1
  55. package/dist/services/user/OperatorService.js.map +1 -1
  56. package/dist/services/user/RetailerService.js +1 -1
  57. package/dist/services/user/RetailerService.js.map +1 -1
  58. package/dist/services/user/UserService.js +1 -1
  59. package/dist/services/user/UserService.js.map +1 -1
  60. package/dist/services/user/WorkerService.js +1 -1
  61. package/dist/services/user/WorkerService.js.map +1 -1
  62. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SchedulerLogService.js","sourceRoot":"","sources":["../../../src/services/scheduler/SchedulerLogService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n SchedulerLogModel,\n ModelSchedulerLogFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { InjectionFieldModuleRef } from \"@/services\"\n\nimport { getSchedulerLogSqlRelationMaps, buildSqlRelation, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, getListWithCount } from \"@/lib\";\n\nimport {\n buildSchedulerLogDefaultSqlSelect,\n buildSchedulerLogMainSqlSelect\n} from \"@/lib\";\n\nexport type SchedulerLogModuleRef = InjectionFieldModuleRef\n\nexport type SchedulerLogServiceProps = DefaultServiceProps & {};\n\nexport type SchedulerLogGetProps = Omit<QueryGet, \"datatypes\"> & {\n id: number,\n};\n\nexport type SchedulerLogListProps = Omit<QueryList, \"datatypes\"> & {\n};\n\nexport type SchedulerLogRemoveProps = {\n schedulerLogIds: BigInt[]\n};\n\nexport const schedulerLogTypes = {\n in: \"in\",\n out: \"out\"\n}\n\nexport type SchedulerLogFlowType = keyof typeof schedulerLogTypes\n\nexport type SchedulerLog = {\n schedulerTaskId: number;\n flowType: SchedulerLogFlowType;\n\n sourceType: string;\n sourceEntityId: string;\n sourceEntityLabel: string;\n sourceEntityData: string;\n\n destinationType: string;\n destinationEntityId: string;\n destinationEntityLabel: string;\n destinationSubmitPayload: string;\n destinationSubmitResponse: string;\n\n logAction: string;\n logLabel: string;\n logStatus: boolean;\n logMesssage: string;\n}\n\nexport type SchedulerLogCreateProps = {\n data: SchedulerLog & {\n fieldRef: SchedulerLogModuleRef[\"field_ref\"],\n fieldModule: SchedulerLogModuleRef[\"field_module\"]\n }\n}\n\nconst { relationKeys, sqlRelationMaps } = getSchedulerLogSqlRelationMaps()\n\nconst getCreatePayload = (data: SchedulerLogCreateProps[\"data\"]) => {\n\n return {\n [`${ModelSchedulerLogFields.scheduler_task_id}`]: Number(data.schedulerTaskId),\n [`${ModelSchedulerLogFields.flow_type}`]: data.flowType,\n [`${ModelSchedulerLogFields.log_action}`]: data.logAction,\n\n [`${ModelSchedulerLogFields.field_module}`]: data.fieldRef,\n [`${ModelSchedulerLogFields.field_ref}`]: data.fieldModule,\n\n [`${ModelSchedulerLogFields.source_type}`]: data.sourceType,\n [`${ModelSchedulerLogFields.source_entity_id}`]: data.sourceEntityId,\n [`${ModelSchedulerLogFields.source_entity_label}`]: data.sourceEntityLabel,\n [`${ModelSchedulerLogFields.source_entity_data}`]: data.sourceEntityData,\n\n [`${ModelSchedulerLogFields.destination_type}`]: data.destinationType,\n [`${ModelSchedulerLogFields.destination_entity_id}`]: data.destinationEntityId,\n [`${ModelSchedulerLogFields.destination_entity_label}`]: data.destinationEntityLabel,\n [`${ModelSchedulerLogFields.destination_submit_payload}`]: data.destinationSubmitPayload,\n [`${ModelSchedulerLogFields.destination_submit_response}`]: data.destinationSubmitResponse,\n\n [`${ModelSchedulerLogFields.log_label}`]: data.logLabel,\n [`${ModelSchedulerLogFields.log_message}`]: data.logMesssage,\n [`${ModelSchedulerLogFields.log_status}`]: Boolean(data.logStatus),\n }\n\n}\n\nlet mainSqlSelect = buildSchedulerLogMainSqlSelect()\nlet defaultSqlSelect = buildSchedulerLogDefaultSqlSelect()\n\nexport const SchedulerLogService = (props: SchedulerLogServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const schedulerLogModel = SchedulerLogModel({ ...rest })\n\n const createSchedulerLog = async ({ data }: SchedulerLogCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create scheduler log payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await schedulerLogModel.create({ data: _data })\n\n return response\n }\n\n const getSchedulerLog = async ({ id }: SchedulerLogGetProps) => {\n\n let { data } = await listSchedulerLoges({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelSchedulerLogFields.scheduler_log_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelSchedulerLogFields.scheduler_log_id}`,\n sortorder: \"ASC\",\n })\n\n return data[0] ?? null;\n\n };\n\n const listSchedulerLoges = async ({ limit, offset, filters = [], sortfield, sortorder }: SchedulerLogListProps) => {\n\n // let data = []\n\n let sqlSelect = [\n // `COUNT(slog.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n // buildSqlSelect(``, regionSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n // buildSqlRelation(\"left\", \"slog\", \"states\", \"slogstate\", [\"slog.state_id = slogstate.state_id\", \"slogstate.isdelete = false\", \"slogstate.istrash = false\"]),\n // buildSqlRelation(\"left\", \"slog\", \"countries\", \"slogcoun\", [\"slog.country_id = slogcoun.country_id\", \"slogcoun.isdelete = false\", \"slogcoun.istrash = false\"]),\n // buildSqlRelation(\"left\", \"slog\", \"areas\", \"slogarea\", [\"slog.area_id = slogarea.area_id\", \"slogarea.isdelete = false\", \"slogarea.istrash = false\"]),\n buildSqlRelation(\"left\", \"slog\", \"users\", \"creator\", [\"slog.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"slog\", \"users\", \"updater\", [\"slog.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\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 let sqlWhere = [\n `slog.isdelete = false`,\n `slog.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: \"scheduler_logs\",\n // mainAlias: \"slog\",\n // accountId: rest.accountId,\n // sqlSelect,\n // sqlRelation,\n // sqlWhere,\n // sqlGroupBy,\n // sqlOrderby,\n // sqlLimitOffset\n // })\n\n // data = await schedulerLogModel.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 // get the listing data & count\n const { data, total } = await getListWithCount({\n model: schedulerLogModel,\n tableName: \"scheduler_logs\",\n mainAlias: \"slog\",\n countKey: `${ModelSchedulerLogFields.scheduler_log_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 removeSchedulerLoges = async ({ schedulerLogIds }: SchedulerLogRemoveProps) => {\n\n if (!schedulerLogIds.length) throwError('schedulerLogIds is required');\n\n const response = await schedulerLogModel.remove({ where: { [`${ModelSchedulerLogFields.scheduler_log_id}`]: { in: schedulerLogIds } } });\n\n return response\n };\n\n return {\n getSchedulerLog,\n createSchedulerLog,\n removeSchedulerLoges,\n listSchedulerLoges\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"SchedulerLogService.js","sourceRoot":"","sources":["../../../src/services/scheduler/SchedulerLogService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n SchedulerLogModel,\n ModelSchedulerLogFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { InjectionFieldModuleRef } from \"@/services\"\n\nimport { getSchedulerLogSqlRelationMaps, buildSqlRelation, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, getListWithCount } from \"@/lib\";\n\nimport {\n buildSchedulerLogDefaultSqlSelect,\n buildSchedulerLogMainSqlSelect\n} from \"@/lib\";\n\nexport type SchedulerLogModuleRef = InjectionFieldModuleRef\n\nexport type SchedulerLogServiceProps = DefaultServiceProps & {};\n\nexport type SchedulerLogGetProps = Omit<QueryGet, \"datatypes\"> & {\n id: number,\n};\n\nexport type SchedulerLogListProps = Omit<QueryList, \"datatypes\"> & {\n};\n\nexport type SchedulerLogRemoveProps = {\n schedulerLogIds: BigInt[]\n};\n\nexport const schedulerLogTypes = {\n in: \"in\",\n out: \"out\"\n}\n\nexport type SchedulerLogFlowType = keyof typeof schedulerLogTypes\n\nexport type SchedulerLog = {\n schedulerTaskId: number;\n flowType: SchedulerLogFlowType;\n\n sourceType: string;\n sourceEntityId: string;\n sourceEntityLabel: string;\n sourceEntityData: string;\n\n destinationType: string;\n destinationEntityId: string;\n destinationEntityLabel: string;\n destinationSubmitPayload: string;\n destinationSubmitResponse: string;\n\n logAction: string;\n logLabel: string;\n logStatus: boolean;\n logMesssage: string;\n}\n\nexport type SchedulerLogCreateProps = {\n data: SchedulerLog & {\n fieldRef: SchedulerLogModuleRef[\"field_ref\"],\n fieldModule: SchedulerLogModuleRef[\"field_module\"]\n }\n}\n\nconst { relationKeys, sqlRelationMaps } = getSchedulerLogSqlRelationMaps()\n\nconst getCreatePayload = (data: SchedulerLogCreateProps[\"data\"]) => {\n\n return {\n [`${ModelSchedulerLogFields.scheduler_task_id}`]: Number(data.schedulerTaskId),\n [`${ModelSchedulerLogFields.flow_type}`]: data.flowType,\n [`${ModelSchedulerLogFields.log_action}`]: data.logAction,\n\n [`${ModelSchedulerLogFields.field_module}`]: data.fieldRef,\n [`${ModelSchedulerLogFields.field_ref}`]: data.fieldModule,\n\n [`${ModelSchedulerLogFields.source_type}`]: data.sourceType,\n [`${ModelSchedulerLogFields.source_entity_id}`]: data.sourceEntityId,\n [`${ModelSchedulerLogFields.source_entity_label}`]: data.sourceEntityLabel,\n [`${ModelSchedulerLogFields.source_entity_data}`]: data.sourceEntityData,\n\n [`${ModelSchedulerLogFields.destination_type}`]: data.destinationType,\n [`${ModelSchedulerLogFields.destination_entity_id}`]: data.destinationEntityId,\n [`${ModelSchedulerLogFields.destination_entity_label}`]: data.destinationEntityLabel,\n [`${ModelSchedulerLogFields.destination_submit_payload}`]: data.destinationSubmitPayload,\n [`${ModelSchedulerLogFields.destination_submit_response}`]: data.destinationSubmitResponse,\n\n [`${ModelSchedulerLogFields.log_label}`]: data.logLabel,\n [`${ModelSchedulerLogFields.log_message}`]: data.logMesssage,\n [`${ModelSchedulerLogFields.log_status}`]: Boolean(data.logStatus),\n }\n\n}\n\nlet mainSqlSelect = buildSchedulerLogMainSqlSelect()\nlet defaultSqlSelect = buildSchedulerLogDefaultSqlSelect()\n\nexport const SchedulerLogService = (props: SchedulerLogServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const schedulerLogModel = SchedulerLogModel({ ...rest })\n\n const createSchedulerLog = async ({ data }: SchedulerLogCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create scheduler log payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await schedulerLogModel.create({ data: _data })\n\n return response\n }\n\n const getSchedulerLog = async ({ id }: SchedulerLogGetProps) => {\n\n let { data } = await listSchedulerLoges({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelSchedulerLogFields.scheduler_log_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelSchedulerLogFields.scheduler_log_id}`,\n sortorder: \"ASC\",\n })\n\n return data[0] ?? null;\n\n };\n\n const listSchedulerLoges = async ({ limit, offset, filters = [], sortfield, sortorder }: SchedulerLogListProps) => {\n\n // let data = []\n\n let sqlSelect = [\n // `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n // buildSqlSelect(``, regionSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n // buildSqlRelation(\"left\", \"slog\", \"states\", \"slogstate\", [\"slog.state_id = slogstate.state_id\", \"slogstate.isdelete = false\", \"slogstate.istrash = false\"]),\n // buildSqlRelation(\"left\", \"slog\", \"countries\", \"slogcoun\", [\"slog.country_id = slogcoun.country_id\", \"slogcoun.isdelete = false\", \"slogcoun.istrash = false\"]),\n // buildSqlRelation(\"left\", \"slog\", \"areas\", \"slogarea\", [\"slog.area_id = slogarea.area_id\", \"slogarea.isdelete = false\", \"slogarea.istrash = false\"]),\n buildSqlRelation(\"left\", \"slog\", \"users\", \"creator\", [\"slog.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"slog\", \"users\", \"updater\", [\"slog.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\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 let sqlWhere = [\n `slog.isdelete = false`,\n `slog.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: \"scheduler_logs\",\n // mainAlias: \"slog\",\n // accountId: rest.accountId,\n // sqlSelect,\n // sqlRelation,\n // sqlWhere,\n // sqlGroupBy,\n // sqlOrderby,\n // sqlLimitOffset\n // })\n\n // data = await schedulerLogModel.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 // get the listing data & count\n const { data, total } = await getListWithCount({\n model: schedulerLogModel,\n tableName: \"scheduler_logs\",\n mainAlias: \"slog\",\n countKey: `${ModelSchedulerLogFields.scheduler_log_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 removeSchedulerLoges = async ({ schedulerLogIds }: SchedulerLogRemoveProps) => {\n\n if (!schedulerLogIds.length) throwError('schedulerLogIds is required');\n\n const response = await schedulerLogModel.remove({ where: { [`${ModelSchedulerLogFields.scheduler_log_id}`]: { in: schedulerLogIds } } });\n\n return response\n };\n\n return {\n getSchedulerLog,\n createSchedulerLog,\n removeSchedulerLoges,\n listSchedulerLoges\n }\n\n}\n\n"]}
@@ -128,7 +128,7 @@ const AccountSubscribeService = (props) => {
128
128
  const listAccountSubscribes = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [] }) => {
129
129
  let data = [];
130
130
  let sqlSelect = [
131
- `COUNT(accsub.*) OVER() as filtered_count`,
131
+ `COUNT(*) OVER() as filtered_count`,
132
132
  (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
133
133
  (0, lib_1.buildSqlSelect)(``, subscribePlanSqlSelect),
134
134
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
@@ -1 +1 @@
1
- {"version":3,"file":"AccountSubscribeService.js","sourceRoot":"","sources":["../../../../src/services/subscription/account/AccountSubscribeService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n AccountSubscribeModel,\n ModelAccountSubscribeFields,\n ModelAreaFields,\n ModelStateFields,\n ModelCountryFields,\n ModelSubscribePlanFields,\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nimport { SubscribePlanBillingCycle, SubscribePlanService } from \"@/services\"\nimport { AccountModel } from \"@/models\"\n\nexport type AccountSubscribeServiceProps = DefaultServiceProps & {};\n\nexport type AccountSubscribeGetProps = QueryGet & {\n accountSubscriptionId: number,\n};\n\nexport type AccountSubscribeListProps = QueryList & {\n};\n\nexport type AccountSubscribeCancelProps = {\n accountSubscriptionId: BigInt\n};\n\nexport type AccountSubscribe = {\n accountId: number\n subscribePlanId: number\n subscribeStartDate?: Date // optional - if no specify will get current\n}\n\nexport type AccountSubscribeCreateProps = {\n data: AccountSubscribe\n}\n\n// export type AccountSubscribeUpdateProps = {\n// subscribePlanId: number,\n// data: AccountSubscribe\n// }\n\nconst getCreatePayload = (\n data: AccountSubscribeCreateProps[\"data\"],\n startDate: Date,\n endDate: Date\n) => {\n\n return {\n [`${ModelAccountSubscribeFields.account_id}`]: data.accountId,\n [`${ModelAccountSubscribeFields.subscribe_plan_id}`]: data.subscribePlanId,\n [`${ModelAccountSubscribeFields.subscription_start_date}`]: startDate,\n [`${ModelAccountSubscribeFields.subscription_end_date}`]: endDate,\n [`${ModelAccountSubscribeFields.status}`]: true // must active\n }\n\n}\n\n// const getUpdatePayload = (data: AccountSubscribeUpdateProps[\"data\"]) => {\n\n// return {\n// [`${ModelAccountSubscribeFields.name}`]: data.name,\n// [`${ModelAccountSubscribeFields.short_description}`]: data.shortDescription,\n// [`${ModelAccountSubscribeFields.full_description}`]: data.fullDescription,\n// [`${ModelAccountSubscribeFields.price}`]: Number(data.price),\n// [`${ModelAccountSubscribeFields.currency}`]: data.currency,\n\n// [`${ModelAccountSubscribeFields.billing_cycle}`]: data.billingCycle,\n// [`${ModelAccountSubscribeFields.status}`]: Boolean(data.status)\n// }\n\n// }\n\nlet mainSqlSelect = {\n [`accsub.${ModelAccountSubscribeFields.account_subscription_id}`]: \"account_subscription_id\",\n [`accsub.${ModelAccountSubscribeFields.account_id}`]: \"account_id\",\n [`accsub.${ModelAccountSubscribeFields.subscribe_plan_id}`]: \"subscribe_plan_id\",\n [`accsub.${ModelAccountSubscribeFields.subscription_start_date}`]: \"subscription_start_date\",\n [`accsub.${ModelAccountSubscribeFields.subscription_end_date}`]: \"subscription_end_date\",\n [`accsub.${ModelAccountSubscribeFields.status}`]: \"status\",\n [`accsub.${ModelAccountSubscribeFields.is_cancel}`]: \"is_cancel\",\n [`accsub.${ModelAccountSubscribeFields.cancel_datetime}`]: \"cancel_datetime\",\n}\n\nlet subscribePlanSqlSelect = {\n [`subplan.${ModelSubscribePlanFields.name}`]: \"subscribe_plan_name\",\n [`subplan.${ModelSubscribePlanFields.billing_cycle}`]: \"subscribe_plan_billing_cycle\",\n [`subplan.${ModelSubscribePlanFields.currency}`]: \"subscribe_plan_currency\",\n [`subplan.${ModelSubscribePlanFields.short_description}`]: \"subscribe_plan_short_description\",\n [`subplan.${ModelSubscribePlanFields.full_description}`]: \"subscribe_plan_full_description\",\n [`subplan.${ModelSubscribePlanFields.price}::float`]: \"subscribe_plan_price\",\n [`subplan.${ModelSubscribePlanFields.is_single_subscription}`]: \"subscribe_plan_is_single_subscription\",\n [`subplan.${ModelSubscribePlanFields.status}`]: \"subscribe_plan_status\",\n}\n\nlet defaultSqlSelect = {\n [`accsub.${ModelAccountSubscribeFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`accsub.${ModelAccountSubscribeFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`accsub.${ModelAccountSubscribeFields.isdelete}`]: \"isdelete\",\n [`accsub.${ModelAccountSubscribeFields.istrash}`]: \"istrash\",\n [`accsub.${ModelAccountSubscribeFields.accountid}`]: \"accountid\",\n}\n\nexport const AccountSubscribeService = (props: AccountSubscribeServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const accountModel = AccountModel({ ...rest, isOperator: true })\n const accountSubscribeModel = AccountSubscribeModel({ ...rest, isOperator: true })\n const subscribePlanService = SubscribePlanService({ ...rest, isOperator: true })\n\n const createAccountSubscribe = async ({ data }: AccountSubscribeCreateProps) => {\n\n const accountId = data.accountId ?? 0\n const subscribePlanId = data.subscribePlanId ?? 0\n const subscribeStartDate = data.subscribeStartDate ?? new Date()\n\n // validate account\n const account = await accountModel.get({ id: Number(accountId) })\n\n if (!account?.account_id) {\n throw new Error(`Invalid account id: ${accountId}`)\n }\n\n if (account?.status !== true) {\n throw new Error(`Account is inactive: ${accountId}`)\n }\n\n // get the subscribe plan information\n const subscribePlan = await subscribePlanService.getSubscribePlan({ id: Number(subscribePlanId), datatypes: [] })\n\n if (!subscribePlan?.subscribe_plan_id) {\n throw new Error(`Invalid subscribe plan id: ${subscribePlanId}`)\n }\n\n const subscribePlanBillingCycle: SubscribePlanBillingCycle = subscribePlan?.billing_cycle\n const subscribePlanIsSingleSubscription = Boolean(subscribePlan?.is_single_subscription)\n\n if (!subscribePlanBillingCycle) {\n throw new Error(`Invalid subscribe plan billing cycle: ${subscribePlanId}`)\n }\n\n // check the plan is single subscription and check its already subscribed\n if (subscribePlanIsSingleSubscription === true) {\n const { data: existSubscriptions } = await listAccountSubscribes({\n limit: 1,\n offset: 0,\n filters: [\n { field: `account_id`, operator: \"=\", value: `${accountId}` },\n { field: `subscribe_plan_id`, operator: \"=\", value: `${subscribePlanId}` },\n { field: `status`, operator: \"=\", value: true },\n ],\n sortfield: `${ModelAccountSubscribeFields.account_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n // console.log('existSubscriptions', existSubscriptions)\n if (existSubscriptions.length > 0) {\n throw new Error(`This subscribe plan can only be subscribed once per account. Active Subscription Id: ${existSubscriptions[0]?.account_subscription_id}`)\n }\n }\n\n // get end of subscription date\n const subscribeEndDate = subscribePlanService.getNextBillingEndDate(subscribeStartDate, subscribePlanBillingCycle)\n\n const _data = getCreatePayload(data, subscribeStartDate, subscribeEndDate)\n\n if (!_data) {\n throw new Error(`Invalid create account subscribe payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await accountSubscribeModel.create({ data: _data })\n\n return await getAccountSubscribe({ accountSubscriptionId: Number(response?.account_subscription_id ?? 0), datatypes: [] })\n }\n\n const getAccountSubscribe = async ({ accountSubscriptionId, datatypes = [] }: AccountSubscribeGetProps) => {\n\n let { data } = await listAccountSubscribes({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelAccountSubscribeFields.account_subscription_id}`, operator: \"=\", value: accountSubscriptionId }],\n sortfield: `${ModelAccountSubscribeFields.account_subscription_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listAccountSubscribes = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [] }: AccountSubscribeListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(accsub.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, subscribePlanSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"subplan\", \"subscribe_plans\", \"subplan\", [\"accsub.subscribe_plan_id = subplan.subscribe_plan_id\", \"subplan.isdelete = false\", \"subplan.istrash = false\"]),\n buildSqlRelation(\"left\", \"subplan\", \"users\", \"creator\", [\"accsub.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"subplan\", \"users\", \"updater\", [\"accsub.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(subscribePlanSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...subscribePlanSqlSelect,\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `accsub.isdelete = false`,\n `accsub.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: \"account_subscriptions\",\n mainAlias: \"accsub\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await accountSubscribeModel.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 cancelAccountSubscribe = async ({ accountSubscriptionId }: AccountSubscribeCancelProps) => {\n\n if (!accountSubscriptionId) throwError('accountSubscriptionId is required');\n\n const { total } = await listAccountSubscribes({\n limit: 1,\n offset: 0,\n filters: [\n { field: `${ModelAccountSubscribeFields.account_subscription_id}`, operator: \"=\", value: `${accountSubscriptionId}` },\n { field: `${ModelAccountSubscribeFields.status}`, operator: \"=\", value: true }\n ],\n sortfield: `${ModelAccountSubscribeFields.account_subscription_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n if (total <= 0) {\n throw new Error(`Invalid subscription id : ${accountSubscriptionId}`)\n }\n\n const response = await accountSubscribeModel.update({\n id: Number(accountSubscriptionId),\n data: {\n [`${ModelAccountSubscribeFields.status}`]: false,\n [`${ModelAccountSubscribeFields.is_cancel}`]: true,\n [`${ModelAccountSubscribeFields.cancel_datetime}`]: new Date()\n },\n where: {\n [`${ModelAccountSubscribeFields.status}`]: true\n }\n });\n\n return response\n };\n\n return {\n getAccountSubscribe,\n createAccountSubscribe,\n cancelAccountSubscribe,\n listAccountSubscribes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"AccountSubscribeService.js","sourceRoot":"","sources":["../../../../src/services/subscription/account/AccountSubscribeService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n AccountSubscribeModel,\n ModelAccountSubscribeFields,\n ModelAreaFields,\n ModelStateFields,\n ModelCountryFields,\n ModelSubscribePlanFields,\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nimport { SubscribePlanBillingCycle, SubscribePlanService } from \"@/services\"\nimport { AccountModel } from \"@/models\"\n\nexport type AccountSubscribeServiceProps = DefaultServiceProps & {};\n\nexport type AccountSubscribeGetProps = QueryGet & {\n accountSubscriptionId: number,\n};\n\nexport type AccountSubscribeListProps = QueryList & {\n};\n\nexport type AccountSubscribeCancelProps = {\n accountSubscriptionId: BigInt\n};\n\nexport type AccountSubscribe = {\n accountId: number\n subscribePlanId: number\n subscribeStartDate?: Date // optional - if no specify will get current\n}\n\nexport type AccountSubscribeCreateProps = {\n data: AccountSubscribe\n}\n\n// export type AccountSubscribeUpdateProps = {\n// subscribePlanId: number,\n// data: AccountSubscribe\n// }\n\nconst getCreatePayload = (\n data: AccountSubscribeCreateProps[\"data\"],\n startDate: Date,\n endDate: Date\n) => {\n\n return {\n [`${ModelAccountSubscribeFields.account_id}`]: data.accountId,\n [`${ModelAccountSubscribeFields.subscribe_plan_id}`]: data.subscribePlanId,\n [`${ModelAccountSubscribeFields.subscription_start_date}`]: startDate,\n [`${ModelAccountSubscribeFields.subscription_end_date}`]: endDate,\n [`${ModelAccountSubscribeFields.status}`]: true // must active\n }\n\n}\n\n// const getUpdatePayload = (data: AccountSubscribeUpdateProps[\"data\"]) => {\n\n// return {\n// [`${ModelAccountSubscribeFields.name}`]: data.name,\n// [`${ModelAccountSubscribeFields.short_description}`]: data.shortDescription,\n// [`${ModelAccountSubscribeFields.full_description}`]: data.fullDescription,\n// [`${ModelAccountSubscribeFields.price}`]: Number(data.price),\n// [`${ModelAccountSubscribeFields.currency}`]: data.currency,\n\n// [`${ModelAccountSubscribeFields.billing_cycle}`]: data.billingCycle,\n// [`${ModelAccountSubscribeFields.status}`]: Boolean(data.status)\n// }\n\n// }\n\nlet mainSqlSelect = {\n [`accsub.${ModelAccountSubscribeFields.account_subscription_id}`]: \"account_subscription_id\",\n [`accsub.${ModelAccountSubscribeFields.account_id}`]: \"account_id\",\n [`accsub.${ModelAccountSubscribeFields.subscribe_plan_id}`]: \"subscribe_plan_id\",\n [`accsub.${ModelAccountSubscribeFields.subscription_start_date}`]: \"subscription_start_date\",\n [`accsub.${ModelAccountSubscribeFields.subscription_end_date}`]: \"subscription_end_date\",\n [`accsub.${ModelAccountSubscribeFields.status}`]: \"status\",\n [`accsub.${ModelAccountSubscribeFields.is_cancel}`]: \"is_cancel\",\n [`accsub.${ModelAccountSubscribeFields.cancel_datetime}`]: \"cancel_datetime\",\n}\n\nlet subscribePlanSqlSelect = {\n [`subplan.${ModelSubscribePlanFields.name}`]: \"subscribe_plan_name\",\n [`subplan.${ModelSubscribePlanFields.billing_cycle}`]: \"subscribe_plan_billing_cycle\",\n [`subplan.${ModelSubscribePlanFields.currency}`]: \"subscribe_plan_currency\",\n [`subplan.${ModelSubscribePlanFields.short_description}`]: \"subscribe_plan_short_description\",\n [`subplan.${ModelSubscribePlanFields.full_description}`]: \"subscribe_plan_full_description\",\n [`subplan.${ModelSubscribePlanFields.price}::float`]: \"subscribe_plan_price\",\n [`subplan.${ModelSubscribePlanFields.is_single_subscription}`]: \"subscribe_plan_is_single_subscription\",\n [`subplan.${ModelSubscribePlanFields.status}`]: \"subscribe_plan_status\",\n}\n\nlet defaultSqlSelect = {\n [`accsub.${ModelAccountSubscribeFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`accsub.${ModelAccountSubscribeFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`accsub.${ModelAccountSubscribeFields.isdelete}`]: \"isdelete\",\n [`accsub.${ModelAccountSubscribeFields.istrash}`]: \"istrash\",\n [`accsub.${ModelAccountSubscribeFields.accountid}`]: \"accountid\",\n}\n\nexport const AccountSubscribeService = (props: AccountSubscribeServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const accountModel = AccountModel({ ...rest, isOperator: true })\n const accountSubscribeModel = AccountSubscribeModel({ ...rest, isOperator: true })\n const subscribePlanService = SubscribePlanService({ ...rest, isOperator: true })\n\n const createAccountSubscribe = async ({ data }: AccountSubscribeCreateProps) => {\n\n const accountId = data.accountId ?? 0\n const subscribePlanId = data.subscribePlanId ?? 0\n const subscribeStartDate = data.subscribeStartDate ?? new Date()\n\n // validate account\n const account = await accountModel.get({ id: Number(accountId) })\n\n if (!account?.account_id) {\n throw new Error(`Invalid account id: ${accountId}`)\n }\n\n if (account?.status !== true) {\n throw new Error(`Account is inactive: ${accountId}`)\n }\n\n // get the subscribe plan information\n const subscribePlan = await subscribePlanService.getSubscribePlan({ id: Number(subscribePlanId), datatypes: [] })\n\n if (!subscribePlan?.subscribe_plan_id) {\n throw new Error(`Invalid subscribe plan id: ${subscribePlanId}`)\n }\n\n const subscribePlanBillingCycle: SubscribePlanBillingCycle = subscribePlan?.billing_cycle\n const subscribePlanIsSingleSubscription = Boolean(subscribePlan?.is_single_subscription)\n\n if (!subscribePlanBillingCycle) {\n throw new Error(`Invalid subscribe plan billing cycle: ${subscribePlanId}`)\n }\n\n // check the plan is single subscription and check its already subscribed\n if (subscribePlanIsSingleSubscription === true) {\n const { data: existSubscriptions } = await listAccountSubscribes({\n limit: 1,\n offset: 0,\n filters: [\n { field: `account_id`, operator: \"=\", value: `${accountId}` },\n { field: `subscribe_plan_id`, operator: \"=\", value: `${subscribePlanId}` },\n { field: `status`, operator: \"=\", value: true },\n ],\n sortfield: `${ModelAccountSubscribeFields.account_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n // console.log('existSubscriptions', existSubscriptions)\n if (existSubscriptions.length > 0) {\n throw new Error(`This subscribe plan can only be subscribed once per account. Active Subscription Id: ${existSubscriptions[0]?.account_subscription_id}`)\n }\n }\n\n // get end of subscription date\n const subscribeEndDate = subscribePlanService.getNextBillingEndDate(subscribeStartDate, subscribePlanBillingCycle)\n\n const _data = getCreatePayload(data, subscribeStartDate, subscribeEndDate)\n\n if (!_data) {\n throw new Error(`Invalid create account subscribe payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await accountSubscribeModel.create({ data: _data })\n\n return await getAccountSubscribe({ accountSubscriptionId: Number(response?.account_subscription_id ?? 0), datatypes: [] })\n }\n\n const getAccountSubscribe = async ({ accountSubscriptionId, datatypes = [] }: AccountSubscribeGetProps) => {\n\n let { data } = await listAccountSubscribes({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelAccountSubscribeFields.account_subscription_id}`, operator: \"=\", value: accountSubscriptionId }],\n sortfield: `${ModelAccountSubscribeFields.account_subscription_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listAccountSubscribes = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [] }: AccountSubscribeListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, subscribePlanSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"subplan\", \"subscribe_plans\", \"subplan\", [\"accsub.subscribe_plan_id = subplan.subscribe_plan_id\", \"subplan.isdelete = false\", \"subplan.istrash = false\"]),\n buildSqlRelation(\"left\", \"subplan\", \"users\", \"creator\", [\"accsub.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"subplan\", \"users\", \"updater\", [\"accsub.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(subscribePlanSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...subscribePlanSqlSelect,\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `accsub.isdelete = false`,\n `accsub.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: \"account_subscriptions\",\n mainAlias: \"accsub\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await accountSubscribeModel.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 cancelAccountSubscribe = async ({ accountSubscriptionId }: AccountSubscribeCancelProps) => {\n\n if (!accountSubscriptionId) throwError('accountSubscriptionId is required');\n\n const { total } = await listAccountSubscribes({\n limit: 1,\n offset: 0,\n filters: [\n { field: `${ModelAccountSubscribeFields.account_subscription_id}`, operator: \"=\", value: `${accountSubscriptionId}` },\n { field: `${ModelAccountSubscribeFields.status}`, operator: \"=\", value: true }\n ],\n sortfield: `${ModelAccountSubscribeFields.account_subscription_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n if (total <= 0) {\n throw new Error(`Invalid subscription id : ${accountSubscriptionId}`)\n }\n\n const response = await accountSubscribeModel.update({\n id: Number(accountSubscriptionId),\n data: {\n [`${ModelAccountSubscribeFields.status}`]: false,\n [`${ModelAccountSubscribeFields.is_cancel}`]: true,\n [`${ModelAccountSubscribeFields.cancel_datetime}`]: new Date()\n },\n where: {\n [`${ModelAccountSubscribeFields.status}`]: true\n }\n });\n\n return response\n };\n\n return {\n getAccountSubscribe,\n createAccountSubscribe,\n cancelAccountSubscribe,\n listAccountSubscribes\n }\n\n}\n\n"]}
@@ -93,7 +93,7 @@ const SubscribePlanService = (props) => {
93
93
  const listSubscribePlans = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [] }) => {
94
94
  let data = [];
95
95
  let sqlSelect = [
96
- `COUNT(subplan.*) OVER() as filtered_count`,
96
+ `COUNT(*) OVER() as filtered_count`,
97
97
  (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
98
98
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
99
99
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"SubscribePlanService.js","sourceRoot":"","sources":["../../../../src/services/subscription/plan/SubscribePlanService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n SubscribePlanModel,\n ModelSubscribePlanFields,\n ModelAreaFields,\n ModelStateFields,\n ModelCountryFields,\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nexport type SubscribePlanServiceProps = DefaultServiceProps & {};\n\nexport const subscribePlanBillingCycles = {\n monthly: \"monthly\",\n yearly: \"yearly\"\n}\n\nexport type SubscribePlanBillingCycle = keyof typeof subscribePlanBillingCycles\n\nexport const subscribeCurrencies = {\n myr: \"myr\",\n usd: \"usd\"\n}\n\nexport type SubscribePlanCurrency = keyof typeof subscribeCurrencies\n\nexport type SubscribePlanGetProps = QueryGet & {\n id: number,\n};\n\nexport type SubscribePlanListProps = QueryList & {\n};\n\nexport type SubscribePlanRemoveProps = {\n subscribePlanIds: BigInt[]\n};\n\nexport type SubscribePlan = {\n name: string\n shortDescription: string\n fullDescription: string\n price: number\n billingCycle: SubscribePlanBillingCycle;\n currency: SubscribePlanCurrency;\n isSingleSubscription: boolean;\n status: boolean\n}\n\nexport type SubscribePlanCreateProps = {\n data: SubscribePlan\n}\n\nexport type SubscribePlanUpdateProps = {\n subscribePlanId: number,\n data: SubscribePlan\n}\n\nconst getCreatePayload = (data: SubscribePlanCreateProps[\"data\"]) => {\n\n return {\n [`${ModelSubscribePlanFields.name}`]: data.name,\n [`${ModelSubscribePlanFields.short_description}`]: data.shortDescription,\n [`${ModelSubscribePlanFields.full_description}`]: data.fullDescription,\n [`${ModelSubscribePlanFields.price}`]: Number(data.price),\n [`${ModelSubscribePlanFields.currency}`]: data.currency,\n\n [`${ModelSubscribePlanFields.billing_cycle}`]: data.billingCycle,\n [`${ModelSubscribePlanFields.is_single_subscription}`]: Boolean(data.isSingleSubscription),\n\n [`${ModelSubscribePlanFields.status}`]: Boolean(data.status)\n }\n\n}\n\nconst getUpdatePayload = (data: SubscribePlanUpdateProps[\"data\"]) => {\n\n return {\n [`${ModelSubscribePlanFields.name}`]: data.name,\n [`${ModelSubscribePlanFields.short_description}`]: data.shortDescription,\n [`${ModelSubscribePlanFields.full_description}`]: data.fullDescription,\n [`${ModelSubscribePlanFields.price}`]: Number(data.price),\n [`${ModelSubscribePlanFields.currency}`]: data.currency,\n\n [`${ModelSubscribePlanFields.billing_cycle}`]: data.billingCycle,\n [`${ModelSubscribePlanFields.is_single_subscription}`]: Boolean(data.isSingleSubscription),\n\n [`${ModelSubscribePlanFields.status}`]: Boolean(data.status)\n }\n\n}\n\nlet mainSqlSelect = {\n [`subplan.${ModelSubscribePlanFields.subscribe_plan_id}`]: \"subscribe_plan_id\",\n [`subplan.${ModelSubscribePlanFields.short_description}`]: \"short_description\",\n [`subplan.${ModelSubscribePlanFields.full_description}`]: \"full_description\",\n [`subplan.${ModelSubscribePlanFields.price}::float`]: \"price\",\n [`subplan.${ModelSubscribePlanFields.billing_cycle}`]: \"billing_cycle\",\n [`subplan.${ModelSubscribePlanFields.currency}`]: \"currency\",\n [`subplan.${ModelSubscribePlanFields.is_single_subscription}`]: \"is_single_subscription\",\n [`subplan.${ModelSubscribePlanFields.status}`]: \"status\"\n}\n\n// let regionSqlSelect = {\n// [`bussarea.${ModelAreaFields.area_name}`]: \"area_name\",\n// [`bussstate.${ModelStateFields.state_name}`]: \"state_name\",\n// [`busscoun.${ModelCountryFields.country_name}`]: \"country_name\"\n// }\n\nlet defaultSqlSelect = {\n [`subplan.${ModelSubscribePlanFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`subplan.${ModelSubscribePlanFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`subplan.${ModelSubscribePlanFields.isdelete}`]: \"isdelete\",\n [`subplan.${ModelSubscribePlanFields.istrash}`]: \"istrash\",\n [`subplan.${ModelSubscribePlanFields.accountid}`]: \"accountid\",\n}\n\nexport const SubscribePlanService = (props: SubscribePlanServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const subscribePlanModel = SubscribePlanModel({ ...rest, isOperator: true })\n\n const createSubscribePlan = async ({ data }: SubscribePlanCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create subscribe plan payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await subscribePlanModel.create({ data: _data })\n\n return await getSubscribePlan({ id: Number(response?.subscribe_plan_id ?? 0), datatypes: [] })\n }\n\n const updateSubscribePlan = async ({ subscribePlanId, data }: SubscribePlanUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update subscribe plan payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await subscribePlanModel.update({ where: { [`${ModelSubscribePlanFields.subscribe_plan_id}`]: subscribePlanId }, data: _data })\n\n return await getSubscribePlan({ id: Number(subscribePlanId), datatypes: [] })\n }\n\n const getSubscribePlan = async ({ id, datatypes = [] }: SubscribePlanGetProps) => {\n\n let { data } = await listSubscribePlans({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelSubscribePlanFields.subscribe_plan_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelSubscribePlanFields.subscribe_plan_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listSubscribePlans = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [] }: SubscribePlanListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(subplan.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n // buildSqlRelation(\"left\", \"buss\", \"states\", \"bussstate\", [\"buss.state_id = bussstate.state_id\", \"bussstate.isdelete = false\", \"bussstate.istrash = false\"]),\n buildSqlRelation(\"left\", \"subplan\", \"users\", \"creator\", [\"subplan.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"subplan\", \"users\", \"updater\", [\"subplan.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `subplan.isdelete = false`,\n `subplan.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: \"subscribe_plans\",\n mainAlias: \"subplan\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await subscribePlanModel.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 removeSubscribePlans = async ({ subscribePlanIds }: SubscribePlanRemoveProps) => {\n\n if (!subscribePlanIds.length) throwError('subscribePlanIds is required');\n\n const response = await subscribePlanModel.remove({ where: { [`${ModelSubscribePlanFields.subscribe_plan_id}`]: { in: subscribePlanIds } } });\n\n return response\n };\n\n // const getDataTypes = () => {\n // return Object.values(accountDataTypes);\n // }\n\n /**\n * Calculate the next end date based on start date and billing cycle\n * @param startDate - the starting date of the subscription\n * @param cycle - either \"monthly\" or \"yearly\"\n * @returns the next end date as Date\n */\n const getNextBillingEndDate = (\n startDate: Date,\n cycle: SubscribePlanBillingCycle\n ): Date => {\n\n // const date = startDate instanceof Date ? new Date(startDate) : new Date(startDate);\n const date = new Date(startDate.getTime()); // clone to avoid mutating original\n\n switch (cycle) {\n case \"monthly\":\n date.setMonth(date.getMonth() + 1);\n break;\n case \"yearly\":\n date.setFullYear(date.getFullYear() + 1);\n break;\n default:\n throw new Error(`Unknown billing cycle: ${cycle}`);\n }\n\n return date;\n }\n\n return {\n getSubscribePlan,\n createSubscribePlan,\n updateSubscribePlan,\n removeSubscribePlans,\n listSubscribePlans,\n getNextBillingEndDate\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"SubscribePlanService.js","sourceRoot":"","sources":["../../../../src/services/subscription/plan/SubscribePlanService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n SubscribePlanModel,\n ModelSubscribePlanFields,\n ModelAreaFields,\n ModelStateFields,\n ModelCountryFields,\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nexport type SubscribePlanServiceProps = DefaultServiceProps & {};\n\nexport const subscribePlanBillingCycles = {\n monthly: \"monthly\",\n yearly: \"yearly\"\n}\n\nexport type SubscribePlanBillingCycle = keyof typeof subscribePlanBillingCycles\n\nexport const subscribeCurrencies = {\n myr: \"myr\",\n usd: \"usd\"\n}\n\nexport type SubscribePlanCurrency = keyof typeof subscribeCurrencies\n\nexport type SubscribePlanGetProps = QueryGet & {\n id: number,\n};\n\nexport type SubscribePlanListProps = QueryList & {\n};\n\nexport type SubscribePlanRemoveProps = {\n subscribePlanIds: BigInt[]\n};\n\nexport type SubscribePlan = {\n name: string\n shortDescription: string\n fullDescription: string\n price: number\n billingCycle: SubscribePlanBillingCycle;\n currency: SubscribePlanCurrency;\n isSingleSubscription: boolean;\n status: boolean\n}\n\nexport type SubscribePlanCreateProps = {\n data: SubscribePlan\n}\n\nexport type SubscribePlanUpdateProps = {\n subscribePlanId: number,\n data: SubscribePlan\n}\n\nconst getCreatePayload = (data: SubscribePlanCreateProps[\"data\"]) => {\n\n return {\n [`${ModelSubscribePlanFields.name}`]: data.name,\n [`${ModelSubscribePlanFields.short_description}`]: data.shortDescription,\n [`${ModelSubscribePlanFields.full_description}`]: data.fullDescription,\n [`${ModelSubscribePlanFields.price}`]: Number(data.price),\n [`${ModelSubscribePlanFields.currency}`]: data.currency,\n\n [`${ModelSubscribePlanFields.billing_cycle}`]: data.billingCycle,\n [`${ModelSubscribePlanFields.is_single_subscription}`]: Boolean(data.isSingleSubscription),\n\n [`${ModelSubscribePlanFields.status}`]: Boolean(data.status)\n }\n\n}\n\nconst getUpdatePayload = (data: SubscribePlanUpdateProps[\"data\"]) => {\n\n return {\n [`${ModelSubscribePlanFields.name}`]: data.name,\n [`${ModelSubscribePlanFields.short_description}`]: data.shortDescription,\n [`${ModelSubscribePlanFields.full_description}`]: data.fullDescription,\n [`${ModelSubscribePlanFields.price}`]: Number(data.price),\n [`${ModelSubscribePlanFields.currency}`]: data.currency,\n\n [`${ModelSubscribePlanFields.billing_cycle}`]: data.billingCycle,\n [`${ModelSubscribePlanFields.is_single_subscription}`]: Boolean(data.isSingleSubscription),\n\n [`${ModelSubscribePlanFields.status}`]: Boolean(data.status)\n }\n\n}\n\nlet mainSqlSelect = {\n [`subplan.${ModelSubscribePlanFields.subscribe_plan_id}`]: \"subscribe_plan_id\",\n [`subplan.${ModelSubscribePlanFields.short_description}`]: \"short_description\",\n [`subplan.${ModelSubscribePlanFields.full_description}`]: \"full_description\",\n [`subplan.${ModelSubscribePlanFields.price}::float`]: \"price\",\n [`subplan.${ModelSubscribePlanFields.billing_cycle}`]: \"billing_cycle\",\n [`subplan.${ModelSubscribePlanFields.currency}`]: \"currency\",\n [`subplan.${ModelSubscribePlanFields.is_single_subscription}`]: \"is_single_subscription\",\n [`subplan.${ModelSubscribePlanFields.status}`]: \"status\"\n}\n\n// let regionSqlSelect = {\n// [`bussarea.${ModelAreaFields.area_name}`]: \"area_name\",\n// [`bussstate.${ModelStateFields.state_name}`]: \"state_name\",\n// [`busscoun.${ModelCountryFields.country_name}`]: \"country_name\"\n// }\n\nlet defaultSqlSelect = {\n [`subplan.${ModelSubscribePlanFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`subplan.${ModelSubscribePlanFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`subplan.${ModelSubscribePlanFields.isdelete}`]: \"isdelete\",\n [`subplan.${ModelSubscribePlanFields.istrash}`]: \"istrash\",\n [`subplan.${ModelSubscribePlanFields.accountid}`]: \"accountid\",\n}\n\nexport const SubscribePlanService = (props: SubscribePlanServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const subscribePlanModel = SubscribePlanModel({ ...rest, isOperator: true })\n\n const createSubscribePlan = async ({ data }: SubscribePlanCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create subscribe plan payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await subscribePlanModel.create({ data: _data })\n\n return await getSubscribePlan({ id: Number(response?.subscribe_plan_id ?? 0), datatypes: [] })\n }\n\n const updateSubscribePlan = async ({ subscribePlanId, data }: SubscribePlanUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update subscribe plan payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await subscribePlanModel.update({ where: { [`${ModelSubscribePlanFields.subscribe_plan_id}`]: subscribePlanId }, data: _data })\n\n return await getSubscribePlan({ id: Number(subscribePlanId), datatypes: [] })\n }\n\n const getSubscribePlan = async ({ id, datatypes = [] }: SubscribePlanGetProps) => {\n\n let { data } = await listSubscribePlans({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelSubscribePlanFields.subscribe_plan_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelSubscribePlanFields.subscribe_plan_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listSubscribePlans = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [] }: SubscribePlanListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n // buildSqlRelation(\"left\", \"buss\", \"states\", \"bussstate\", [\"buss.state_id = bussstate.state_id\", \"bussstate.isdelete = false\", \"bussstate.istrash = false\"]),\n buildSqlRelation(\"left\", \"subplan\", \"users\", \"creator\", [\"subplan.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"subplan\", \"users\", \"updater\", [\"subplan.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `subplan.isdelete = false`,\n `subplan.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: \"subscribe_plans\",\n mainAlias: \"subplan\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await subscribePlanModel.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 removeSubscribePlans = async ({ subscribePlanIds }: SubscribePlanRemoveProps) => {\n\n if (!subscribePlanIds.length) throwError('subscribePlanIds is required');\n\n const response = await subscribePlanModel.remove({ where: { [`${ModelSubscribePlanFields.subscribe_plan_id}`]: { in: subscribePlanIds } } });\n\n return response\n };\n\n // const getDataTypes = () => {\n // return Object.values(accountDataTypes);\n // }\n\n /**\n * Calculate the next end date based on start date and billing cycle\n * @param startDate - the starting date of the subscription\n * @param cycle - either \"monthly\" or \"yearly\"\n * @returns the next end date as Date\n */\n const getNextBillingEndDate = (\n startDate: Date,\n cycle: SubscribePlanBillingCycle\n ): Date => {\n\n // const date = startDate instanceof Date ? new Date(startDate) : new Date(startDate);\n const date = new Date(startDate.getTime()); // clone to avoid mutating original\n\n switch (cycle) {\n case \"monthly\":\n date.setMonth(date.getMonth() + 1);\n break;\n case \"yearly\":\n date.setFullYear(date.getFullYear() + 1);\n break;\n default:\n throw new Error(`Unknown billing cycle: ${cycle}`);\n }\n\n return date;\n }\n\n return {\n getSubscribePlan,\n createSubscribePlan,\n updateSubscribePlan,\n removeSubscribePlans,\n listSubscribePlans,\n getNextBillingEndDate\n }\n\n}\n\n"]}
@@ -158,7 +158,7 @@ const AdministratorService = (props) => {
158
158
  delete userSqlSelect[`usr.${models_1.ModelUserFields.login_password}`];
159
159
  }
160
160
  let sqlSelect = [
161
- `COUNT(adm.*) OVER() as filtered_count`,
161
+ `COUNT(*) OVER() as filtered_count`,
162
162
  (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
163
163
  (0, lib_1.buildSqlSelect)(``, userSqlSelect),
164
164
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect),
@@ -1 +1 @@
1
- {"version":3,"file":"AdministratorService.js","sourceRoot":"","sources":["../../../src/services/user/AdministratorService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n AdministratorModel,\n ModelAdministratorFields,\n ModelGroupFields,\n ModelUserPropFields,\n ModelLocationFields\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\nimport { ServiceFactory } from \"@/lib\";\n\nexport type UserType = \"administrator\"\n\nexport const administratorDataTypes = {\n location: \"location\",\n locationCount: \"location_count\",\n administratorInjectionFields: \"administrator_injection_fields\",\n parentUser: \"parent_user\"\n}\n\nexport type AdministratorDataType = keyof typeof administratorDataTypes;\n\nexport type AdministratorServiceProps = DefaultServiceProps & {};\n\nexport type AdministratorGetProps = {\n id: number,\n includePassword?: boolean\n datatypes: AdministratorDataType[]\n skipFilterAccountId?: boolean\n};\n\nexport type AdministratorGetByUsernameProps = {\n username: string,\n includePassword?: boolean\n datatypes: AdministratorDataType[]\n skipFilterAccountId?: boolean\n};\n\nexport type AdministratorListProps = QueryList & {\n includePassword?: boolean\n datatypes: AdministratorDataType[]\n skipFilterAccountId?: boolean\n};\n\nexport type AdministratorRemoveProps = {\n userIds: BigInt[]\n};\n\nexport type AdministratorCreateProps = {\n data:\n // administrator\n {\n administrator: {\n userId: number,\n isOwner: boolean\n }\n }\n}\n\nexport type AdministratorUpdateProps = {\n userId: number,\n data:\n // administrator\n {\n administrator: {\n // userId: number,\n }\n }\n}\n\nconst getCreatePayload = (data: AdministratorCreateProps[\"data\"]) => {\n\n if (\"administrator\" in data) {\n\n return {\n [`${ModelAdministratorFields.user_id}`]: data.administrator.userId,\n [`${ModelAdministratorFields.is_owner}`]: Boolean(data.administrator.isOwner),\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: AdministratorUpdateProps[\"data\"]) => {\n\n if (\"administrator\" in data) {\n\n return {\n // [`${ModelAdministratorFields.user_id}`]: data.administrator.userId,\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`adm.${ModelAdministratorFields.administrator_id}`]: \"administrator_id\",\n [`adm.${ModelAdministratorFields.user_id}`]: \"user_id\",\n [`adm.${ModelAdministratorFields.is_owner}`]: \"is_owner\",\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 [`adm.${ModelAdministratorFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`adm.${ModelAdministratorFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`adm.${ModelAdministratorFields.isdelete}`]: \"isdelete\",\n [`adm.${ModelAdministratorFields.istrash}`]: \"istrash\",\n [`adm.${ModelAdministratorFields.accountid}`]: \"accountid\",\n}\n\n// let userStatusIsOwnerSqlSelect = {\n// [`COALESCE(usrsta_isowner.${ModelUserStatusFields.status}::int, 0)`]: \"is_owner\"\n// }\n\nlet 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\nlet 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 AdministratorService = (props: AdministratorServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const administratorModel = AdministratorModel({ ...rest })\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"user\" })\n\n const createAdministrator = async ({ data }: AdministratorCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create administrator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await administratorModel.create({ data: _data })\n\n return response\n }\n\n const updateAdministrator = async ({ userId, data }: AdministratorUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update administrator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await administratorModel.update({ where: { [`${ModelAdministratorFields.user_id}`]: userId }, data: _data })\n\n return response\n }\n\n const getAdministrator = async ({ id, datatypes = [], includePassword = false, skipFilterAccountId = false }: AdministratorGetProps) => {\n\n let { data } = await listAdministrators({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [{ field: \"user_id\", operator: \"=\", value: id }],\n sortfield: \"user_id\",\n sortorder: \"ASC\",\n datatypes,\n skipFilterAccountId\n })\n\n return data[0] ?? null;\n\n };\n\n const getAdministratorByUsername = async ({ username = \"\", includePassword = false, datatypes = [], skipFilterAccountId = false }: AdministratorGetByUsernameProps) => {\n\n let { data } = await listAdministrators({\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 skipFilterAccountId\n })\n\n return data[0] ?? null;\n\n };\n\n const listAdministrators = async ({\n includePassword = false,\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = [],\n skipFilterAccountId = false\n }: AdministratorListProps) => {\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(adm.*) 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\", \"adm\", \"users\", \"usr\", [\"adm.user_id = usr.user_id\", \"usr.isdelete = false\", \"usr.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"users\", \"creator\", [\"adm.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"users\", \"updater\", [\"adm.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"]),\n // buildSqlRelation(\"left\", \"adm\", \"user_status\", \"usrsta_isowner\", [\"adm.user_id = usrsta_isowner.user_id\", \"usrsta_isowner.type = 'IS_OWNER'\", \"usrsta_isowner.isdelete = false\", \"usrsta_isowner.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"user_props\", \"usrprop_location\", [\"adm.user_id = usrprop_location.user_id\", \"usrprop_location.type = 'LOCATION_ID'\", \"usrprop_location.isdelete = false\", \"usrprop_location.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"locations\", \"location\", [\"usrprop_location.props_id = location.location_id\", \"location.isdelete = false\", \"location.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"group_owners\", \"grpown\", [\"adm.user_id = grpown.user_id\", \"grpown.isdelete = false\", \"grpown.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"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(administratorDataTypes.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\", [\"adm.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(administratorDataTypes.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\", [\"adm.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n }\n\n if (datatypes.includes(administratorDataTypes.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\", [\"adm.user_id = brncount.user_id\", \"brncount.isdelete = false\", \"brncount.istrash = false\"])]\n\n }\n\n if (datatypes.includes(administratorDataTypes.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(customerDataTypes.branchUserCount)) {\n\n // let branchUserCountSqlSelect = {\n // [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: \"branch_user_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branch_users\", \"brnusrcount\", [\"adm.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `adm.isdelete = false`,\n `adm.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: \"administrators\",\n mainAlias: \"adm\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId\n })\n\n data = await administratorModel.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 removeAdministrators = async ({ userIds }: AdministratorRemoveProps) => {\n\n if (!userIds.length) throwError('userIds is required');\n\n const response = await administratorModel.remove({\n where: {\n [`${ModelAdministratorFields.user_id}`]: {\n in: userIds\n },\n [`${ModelAdministratorFields.is_owner}`]: false // cannot default is_owner account\n }\n });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(administratorDataTypes);\n }\n\n // return {\n // createAdministrator,\n // updateAdministrator,\n // getAdministrator,\n // listAdministrators,\n // removeAdministrators,\n // getDataTypes\n // }\n\n const methodConfigs = {\n getAdministrator: { fn: getAdministrator, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get administrator\" },\n getAdministratorByUsername: { fn: getAdministratorByUsername, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get administrator by username\" },\n listAdministrators: { fn: listAdministrators, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"list administrators\" },\n createAdministrator: { fn: createAdministrator, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"create administrator\" },\n updateAdministrator: { fn: updateAdministrator, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"update administrator\" },\n removeAdministrators: { fn: removeAdministrators, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"remove administrators\" },\n getDataTypes: { fn: getDataTypes, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get administrator datatypes\" },\n };\n\n return ServiceFactory(\"AdministratorService\", rest, methodConfigs);\n\n}\n\n"]}
1
+ {"version":3,"file":"AdministratorService.js","sourceRoot":"","sources":["../../../src/services/user/AdministratorService.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,qCAOkB;AAElB,yCAAwE;AAMxE,+BAAgK;AAEhK,+BAAuC;AAI1B,QAAA,sBAAsB,GAAG;IAClC,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,gBAAgB;IAC/B,4BAA4B,EAAE,gCAAgC;IAC9D,UAAU,EAAE,aAAa;CAC5B,CAAA;AAoDD,MAAM,gBAAgB,GAAG,CAAC,IAAsC,EAAE,EAAE;IAEhE,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;QAE1B,OAAO;YACH,CAAC,GAAG,iCAAwB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;YAClE,CAAC,GAAG,iCAAwB,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;SAChF,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAEhB,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,IAAsC,EAAE,EAAE;IAEhE,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;QAE1B,OAAO;QACH,sEAAsE;SACzE,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAEhB,CAAC,CAAA;AAED,IAAI,aAAa,GAAG;IAChB,CAAC,OAAO,iCAAwB,CAAC,gBAAgB,EAAE,CAAC,EAAE,kBAAkB;IACxE,CAAC,OAAO,iCAAwB,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IACtD,CAAC,OAAO,iCAAwB,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;CAC3D,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,OAAO,iCAAwB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IACpE,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,OAAO,iCAAwB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IACpE,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,OAAO,iCAAwB,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;IACxD,CAAC,OAAO,iCAAwB,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IACtD,CAAC,OAAO,iCAAwB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;CAC7D,CAAA;AAED,qCAAqC;AACrC,uFAAuF;AACvF,IAAI;AAEJ,IAAI,yBAAyB,GAAG;IAC5B,yFAAyF;IACzF,CAAC;+CAC0C,4BAAmB,CAAC,QAAQ;;MAErE,CAAC,EAAE,aAAa;IAClB,0FAA0F;IAC1F,CAAC;uCACkC,4BAAmB,CAAC,aAAa;;MAElE,CAAC,EAAE,eAAe;CACvB,CAAA;AAED,IAAI,mBAAmB,GAAG;IACtB,CAAC;kCAC6B,yBAAgB,CAAC,QAAQ;;MAErD,CAAC,EAAE,iBAAiB;IACtB,CAAC;kCAC6B,yBAAgB,CAAC,WAAW;;MAExD,CAAC,EAAE,oBAAoB;IACzB,CAAC;kCAC6B,yBAAgB,CAAC,iBAAiB;;MAE9D,CAAC,EAAE,0BAA0B;IAC/B,CAAC;kCAC6B,yBAAgB,CAAC,UAAU;;MAEvD,CAAC,EAAE,mBAAmB;IACxB,cAAc;IACd,gBAAgB;IAChB,uCAAuC;IACvC,kEAAkE;IAClE,4DAA4D;IAC5D,+DAA+D;IAC/D,YAAY;IACZ,mGAAmG;IACnG,WAAW;IACX,aAAa;CAChB,CAAA;AAEM,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAE,EAAE;IAErE,MAAM,EACF,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,kBAAkB,GAAG,IAAA,2BAAkB,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAE1D,MAAM,qBAAqB,GAAG,IAAA,gCAAqB,EAAC,EAAE,GAAG,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAA;IAE5F,MAAM,mBAAmB,GAAG,KAAK,EAAE,EAAE,IAAI,EAA4B,EAAE,EAAE;QAErE,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAE/D,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,mBAAmB,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAA4B,EAAE,EAAE;QAE7E,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,iCAAwB,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAE3H,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,eAAe,GAAG,KAAK,EAAE,mBAAmB,GAAG,KAAK,EAAyB,EAAE,EAAE;QAEnI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC;YACpC,eAAe;YACf,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACzD,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,KAAK;YAChB,SAAS;YACT,mBAAmB;SACtB,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3B,CAAC,CAAC;IAEF,MAAM,0BAA0B,GAAG,KAAK,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,eAAe,GAAG,KAAK,EAAE,SAAS,GAAG,EAAE,EAAE,mBAAmB,GAAG,KAAK,EAAmC,EAAE,EAAE;QAElK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC;YACpC,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;YACT,mBAAmB;SACtB,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3B,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,EAC9B,eAAe,GAAG,KAAK,EACvB,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,GAAG,EAAE,EACd,mBAAmB,GAAG,KAAK,EACN,EAAE,EAAE;QAEzB,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,mCAAmC;YACnC,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,IAAA,oBAAc,EAAC,EAAE,EAAE,yBAAyB,CAAC;YAC7C,IAAA,oBAAc,EAAC,EAAE,EAAE,mBAAmB,CAAC;SAC1C,CAAA;QAED,IAAI,WAAW,GAAG;YACd,IAAA,sBAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,2BAA2B,EAAE,sBAAsB,EAAE,qBAAqB,CAAC,CAAC;YAC7H,IAAA,sBAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,oCAAoC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;YAClJ,IAAA,sBAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,oCAAoC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;YAClJ,uNAAuN;YACvN,IAAA,sBAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC,wCAAwC,EAAE,uCAAuC,EAAE,mCAAmC,EAAE,kCAAkC,CAAC,CAAC;YAC/N,IAAA,sBAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,kDAAkD,EAAE,2BAA2B,EAAE,0BAA0B,CAAC,CAAC;YACvK,IAAA,sBAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,8BAA8B,EAAE,yBAAyB,EAAE,wBAAwB,CAAC,CAAC;YAChJ,IAAA,sBAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,gCAAgC,EAAE,sBAAsB,EAAE,qBAAqB,CAAC,CAAC;SACtI,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,GAAG,yBAAyB;YAC5B,GAAG,gBAAgB;SACtB,CAAA;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,8BAAsB,CAAC,4BAA4B,CAAC,EAAE,CAAC;YAE1E,IAAI,qBAAqB,GAAG,MAAM,qBAAqB,CAAC,yBAAyB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;YAE1G,MAAM,oCAAoC,GAAG,IAAA,mCAA6B,EAAC,KAAK,EAAE,qBAAqB,CAAC,CAAA;YAExG,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,oCAAoC,EAAE,CAAA;YAE7E,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAc,EAAC,EAAE,EAAE,oCAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACnI,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,IAAA,sBAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,2BAA2B,EAAE,wBAAwB,EAAE,oCAAoC,EAAE,sBAAsB,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC7O,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAA;QACtF,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,8BAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAEtD,IAAI,iBAAiB,GAAG;gBACpB,CAAC;;;mCAGkB,4BAAmB,CAAC,WAAW;mCAC/B,4BAAmB,CAAC,aAAa;mCACjC,4BAAmB,CAAC,aAAa;mCACjC,4BAAmB,CAAC,aAAa;mCACjC,4BAAmB,CAAC,SAAS;mCAC7B,4BAAmB,CAAC,SAAS;mCAC7B,4BAAmB,CAAC,OAAO;mCAC3B,4BAAmB,CAAC,UAAU;mCAC9B,4BAAmB,CAAC,QAAQ;mCAC5B,4BAAmB,CAAC,QAAQ;mCAC5B,4BAAmB,CAAC,UAAU;mCAC9B,4BAAmB,CAAC,cAAc;mCAClC,4BAAmB,CAAC,WAAW;mCAC/B,4BAAmB,CAAC,YAAY;mCAChC,4BAAmB,CAAC,QAAQ;mCAC5B,4BAAmB,CAAC,OAAO;;;;sBAIxC,CAAC,EAAE,WAAW;aACvB,CAAA;YAED,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,iBAAiB,EAAE,CAAA;YAE1D,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,IAAA,oBAAc,EAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAA;YACjE,gLAAgL;QAEpL,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,8BAAsB,CAAC,aAAa,CAAC,EAAE,CAAC;YAE3D,IAAI,sBAAsB,GAAG;gBACzB,CAAC,2BAA2B,4BAAmB,CAAC,WAAW,QAAQ,CAAC,EAAE,gBAAgB;aACzF,CAAA;YAED,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,sBAAsB,EAAE,CAAA;YAE/D,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,IAAA,oBAAc,EAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAA;YACtE,uLAAuL;QAE3L,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,8BAAsB,CAAC,UAAU,CAAC,EAAE,CAAC;YAExD,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,+DAA+D;QAE/D,uCAAuC;QACvC,4GAA4G;QAC5G,QAAQ;QAER,wEAAwE;QAExE,+EAA+E;QAC/E,2MAA2M;QAE3M,IAAI;QAEJ,IAAI,QAAQ,GAAG;YACX,sBAAsB;YACtB,qBAAqB;YACrB,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,gBAAgB;YAC3B,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS;YACT,WAAW;YACX,QAAQ;YACR,UAAU;YACV,UAAU;YACV,cAAc;YACd,mBAAmB;SACtB,CAAC,CAAA;QAEF,IAAI,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAE3C,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,oBAAoB,GAAG,KAAK,EAAE,EAAE,OAAO,EAA4B,EAAE,EAAE;QAEzE,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,IAAA,kBAAU,EAAC,qBAAqB,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC;YAC7C,KAAK,EAAE;gBACH,CAAC,GAAG,iCAAwB,CAAC,OAAO,EAAE,CAAC,EAAE;oBACrC,EAAE,EAAE,OAAO;iBACd;gBACD,CAAC,GAAG,iCAAwB,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,kCAAkC;aACrF;SACJ,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC,8BAAsB,CAAC,CAAC;IACjD,CAAC,CAAA;IAED,WAAW;IACX,2BAA2B;IAC3B,2BAA2B;IAC3B,wBAAwB;IACxB,0BAA0B;IAC1B,4BAA4B;IAC5B,mBAAmB;IACnB,IAAI;IAEJ,MAAM,aAAa,GAAG;QAClB,gBAAgB,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC,UAAU,EAAE,eAAe,CAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE;QACnI,0BAA0B,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,cAAc,EAAE,CAAC,UAAU,EAAE,eAAe,CAAU,EAAE,UAAU,EAAE,+BAA+B,EAAE;QACnK,kBAAkB,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC,UAAU,EAAE,eAAe,CAAU,EAAE,UAAU,EAAE,qBAAqB,EAAE;QACzI,mBAAmB,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC,UAAU,EAAE,eAAe,CAAU,EAAE,UAAU,EAAE,sBAAsB,EAAE;QAC5I,mBAAmB,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC,UAAU,EAAE,eAAe,CAAU,EAAE,UAAU,EAAE,sBAAsB,EAAE;QAC5I,oBAAoB,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC,UAAU,EAAE,eAAe,CAAU,EAAE,UAAU,EAAE,uBAAuB,EAAE;QAC/I,YAAY,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,UAAU,EAAE,eAAe,CAAU,EAAE,UAAU,EAAE,6BAA6B,EAAE;KACxI,CAAC;IAEF,OAAO,IAAA,oBAAc,EAAC,sBAAsB,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;AAEvE,CAAC,CAAA;AAjSY,QAAA,oBAAoB,wBAiShC","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n AdministratorModel,\n ModelAdministratorFields,\n ModelGroupFields,\n ModelUserPropFields,\n ModelLocationFields\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\nimport { ServiceFactory } from \"@/lib\";\n\nexport type UserType = \"administrator\"\n\nexport const administratorDataTypes = {\n location: \"location\",\n locationCount: \"location_count\",\n administratorInjectionFields: \"administrator_injection_fields\",\n parentUser: \"parent_user\"\n}\n\nexport type AdministratorDataType = keyof typeof administratorDataTypes;\n\nexport type AdministratorServiceProps = DefaultServiceProps & {};\n\nexport type AdministratorGetProps = {\n id: number,\n includePassword?: boolean\n datatypes: AdministratorDataType[]\n skipFilterAccountId?: boolean\n};\n\nexport type AdministratorGetByUsernameProps = {\n username: string,\n includePassword?: boolean\n datatypes: AdministratorDataType[]\n skipFilterAccountId?: boolean\n};\n\nexport type AdministratorListProps = QueryList & {\n includePassword?: boolean\n datatypes: AdministratorDataType[]\n skipFilterAccountId?: boolean\n};\n\nexport type AdministratorRemoveProps = {\n userIds: BigInt[]\n};\n\nexport type AdministratorCreateProps = {\n data:\n // administrator\n {\n administrator: {\n userId: number,\n isOwner: boolean\n }\n }\n}\n\nexport type AdministratorUpdateProps = {\n userId: number,\n data:\n // administrator\n {\n administrator: {\n // userId: number,\n }\n }\n}\n\nconst getCreatePayload = (data: AdministratorCreateProps[\"data\"]) => {\n\n if (\"administrator\" in data) {\n\n return {\n [`${ModelAdministratorFields.user_id}`]: data.administrator.userId,\n [`${ModelAdministratorFields.is_owner}`]: Boolean(data.administrator.isOwner),\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: AdministratorUpdateProps[\"data\"]) => {\n\n if (\"administrator\" in data) {\n\n return {\n // [`${ModelAdministratorFields.user_id}`]: data.administrator.userId,\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`adm.${ModelAdministratorFields.administrator_id}`]: \"administrator_id\",\n [`adm.${ModelAdministratorFields.user_id}`]: \"user_id\",\n [`adm.${ModelAdministratorFields.is_owner}`]: \"is_owner\",\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 [`adm.${ModelAdministratorFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`adm.${ModelAdministratorFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`adm.${ModelAdministratorFields.isdelete}`]: \"isdelete\",\n [`adm.${ModelAdministratorFields.istrash}`]: \"istrash\",\n [`adm.${ModelAdministratorFields.accountid}`]: \"accountid\",\n}\n\n// let userStatusIsOwnerSqlSelect = {\n// [`COALESCE(usrsta_isowner.${ModelUserStatusFields.status}::int, 0)`]: \"is_owner\"\n// }\n\nlet 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\nlet 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 AdministratorService = (props: AdministratorServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const administratorModel = AdministratorModel({ ...rest })\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"user\" })\n\n const createAdministrator = async ({ data }: AdministratorCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create administrator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await administratorModel.create({ data: _data })\n\n return response\n }\n\n const updateAdministrator = async ({ userId, data }: AdministratorUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update administrator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await administratorModel.update({ where: { [`${ModelAdministratorFields.user_id}`]: userId }, data: _data })\n\n return response\n }\n\n const getAdministrator = async ({ id, datatypes = [], includePassword = false, skipFilterAccountId = false }: AdministratorGetProps) => {\n\n let { data } = await listAdministrators({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [{ field: \"user_id\", operator: \"=\", value: id }],\n sortfield: \"user_id\",\n sortorder: \"ASC\",\n datatypes,\n skipFilterAccountId\n })\n\n return data[0] ?? null;\n\n };\n\n const getAdministratorByUsername = async ({ username = \"\", includePassword = false, datatypes = [], skipFilterAccountId = false }: AdministratorGetByUsernameProps) => {\n\n let { data } = await listAdministrators({\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 skipFilterAccountId\n })\n\n return data[0] ?? null;\n\n };\n\n const listAdministrators = async ({\n includePassword = false,\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = [],\n skipFilterAccountId = false\n }: AdministratorListProps) => {\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(*) 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\", \"adm\", \"users\", \"usr\", [\"adm.user_id = usr.user_id\", \"usr.isdelete = false\", \"usr.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"users\", \"creator\", [\"adm.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"users\", \"updater\", [\"adm.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"]),\n // buildSqlRelation(\"left\", \"adm\", \"user_status\", \"usrsta_isowner\", [\"adm.user_id = usrsta_isowner.user_id\", \"usrsta_isowner.type = 'IS_OWNER'\", \"usrsta_isowner.isdelete = false\", \"usrsta_isowner.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"user_props\", \"usrprop_location\", [\"adm.user_id = usrprop_location.user_id\", \"usrprop_location.type = 'LOCATION_ID'\", \"usrprop_location.isdelete = false\", \"usrprop_location.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"locations\", \"location\", [\"usrprop_location.props_id = location.location_id\", \"location.isdelete = false\", \"location.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"group_owners\", \"grpown\", [\"adm.user_id = grpown.user_id\", \"grpown.isdelete = false\", \"grpown.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"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(administratorDataTypes.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\", [\"adm.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(administratorDataTypes.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\", [\"adm.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n }\n\n if (datatypes.includes(administratorDataTypes.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\", [\"adm.user_id = brncount.user_id\", \"brncount.isdelete = false\", \"brncount.istrash = false\"])]\n\n }\n\n if (datatypes.includes(administratorDataTypes.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(customerDataTypes.branchUserCount)) {\n\n // let branchUserCountSqlSelect = {\n // [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: \"branch_user_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branch_users\", \"brnusrcount\", [\"adm.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `adm.isdelete = false`,\n `adm.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: \"administrators\",\n mainAlias: \"adm\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId\n })\n\n data = await administratorModel.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 removeAdministrators = async ({ userIds }: AdministratorRemoveProps) => {\n\n if (!userIds.length) throwError('userIds is required');\n\n const response = await administratorModel.remove({\n where: {\n [`${ModelAdministratorFields.user_id}`]: {\n in: userIds\n },\n [`${ModelAdministratorFields.is_owner}`]: false // cannot default is_owner account\n }\n });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(administratorDataTypes);\n }\n\n // return {\n // createAdministrator,\n // updateAdministrator,\n // getAdministrator,\n // listAdministrators,\n // removeAdministrators,\n // getDataTypes\n // }\n\n const methodConfigs = {\n getAdministrator: { fn: getAdministrator, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get administrator\" },\n getAdministratorByUsername: { fn: getAdministratorByUsername, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get administrator by username\" },\n listAdministrators: { fn: listAdministrators, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"list administrators\" },\n createAdministrator: { fn: createAdministrator, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"create administrator\" },\n updateAdministrator: { fn: updateAdministrator, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"update administrator\" },\n removeAdministrators: { fn: removeAdministrators, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"remove administrators\" },\n getDataTypes: { fn: getDataTypes, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get administrator datatypes\" },\n };\n\n return ServiceFactory(\"AdministratorService\", rest, methodConfigs);\n\n}\n\n"]}
@@ -237,7 +237,7 @@ const AgentService = (props) => {
237
237
  delete userSqlSelect[`usr.${models_1.ModelUserFields.login_password}`];
238
238
  }
239
239
  let sqlSelect = [
240
- `COUNT(agt.*) OVER() as filtered_count`,
240
+ `COUNT(*) OVER() as filtered_count`,
241
241
  (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
242
242
  (0, lib_1.buildSqlSelect)(``, userSqlSelect),
243
243
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect),