storemw-core-api 1.0.140 → 1.0.141

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 (58) hide show
  1. package/dist/controllers/user/userController.js +8 -4
  2. package/dist/controllers/user/userController.js.map +1 -1
  3. package/dist/models/account/AccountModel.d.ts +13 -13
  4. package/dist/models/branch_user/BranchUserModel.d.ts +13 -13
  5. package/dist/models/user/AgentModel.d.ts +2 -24
  6. package/dist/models/user/MemberModel.d.ts +2 -24
  7. package/dist/models/user/UserModel.d.ts +13 -2
  8. package/dist/schema/payload/account/schemaAccount.d.ts +7 -0
  9. package/dist/schema/payload/user/schemaUser.d.ts +3 -0
  10. package/dist/schema/payload/user/schemaUser.js +1 -0
  11. package/dist/schema/payload/user/schemaUser.js.map +1 -1
  12. package/dist/schema/payload/user/schemaUserAdministrator.d.ts +14 -0
  13. package/dist/schema/payload/user/schemaUserAgent.d.ts +15 -12
  14. package/dist/schema/payload/user/schemaUserAgent.js +2 -2
  15. package/dist/schema/payload/user/schemaUserAgent.js.map +1 -1
  16. package/dist/schema/payload/user/schemaUserCustomer.d.ts +14 -0
  17. package/dist/schema/payload/user/schemaUserDriver.d.ts +14 -0
  18. package/dist/schema/payload/user/schemaUserMember.d.ts +15 -12
  19. package/dist/schema/payload/user/schemaUserMember.js +2 -2
  20. package/dist/schema/payload/user/schemaUserMember.js.map +1 -1
  21. package/dist/schema/payload/user/schemaUserOperator.d.ts +14 -0
  22. package/dist/schema/payload/user/schemaUserRetailer.d.ts +14 -0
  23. package/dist/schema/payload/user/schemaUserWorker.d.ts +14 -0
  24. package/dist/services/account/AccountService.js +14 -4
  25. package/dist/services/account/AccountService.js.map +1 -1
  26. package/dist/services/index.d.ts +1 -1
  27. package/dist/services/index.js +2 -1
  28. package/dist/services/index.js.map +1 -1
  29. package/dist/services/user/AdministratorService.d.ts +1 -0
  30. package/dist/services/user/AdministratorService.js +7 -0
  31. package/dist/services/user/AdministratorService.js.map +1 -1
  32. package/dist/services/user/AgentService.d.ts +2 -12
  33. package/dist/services/user/AgentService.js +35 -26
  34. package/dist/services/user/AgentService.js.map +1 -1
  35. package/dist/services/user/CustomerService.d.ts +1 -0
  36. package/dist/services/user/CustomerService.js +7 -0
  37. package/dist/services/user/CustomerService.js.map +1 -1
  38. package/dist/services/user/DriverService.d.ts +1 -0
  39. package/dist/services/user/DriverService.js +7 -0
  40. package/dist/services/user/DriverService.js.map +1 -1
  41. package/dist/services/user/MemberService.d.ts +2 -12
  42. package/dist/services/user/MemberService.js +35 -26
  43. package/dist/services/user/MemberService.js.map +1 -1
  44. package/dist/services/user/OperatorService.d.ts +4 -2
  45. package/dist/services/user/OperatorService.js +11 -3
  46. package/dist/services/user/OperatorService.js.map +1 -1
  47. package/dist/services/user/RetailerService.d.ts +1 -0
  48. package/dist/services/user/RetailerService.js +7 -0
  49. package/dist/services/user/RetailerService.js.map +1 -1
  50. package/dist/services/user/UserMeService.d.ts +1 -0
  51. package/dist/services/user/UserService.d.ts +5 -0
  52. package/dist/services/user/UserService.js +34 -17
  53. package/dist/services/user/UserService.js.map +1 -1
  54. package/dist/services/user/WorkerService.d.ts +1 -0
  55. package/dist/services/user/WorkerService.js +52 -44
  56. package/dist/services/user/WorkerService.js.map +1 -1
  57. package/package.json +1 -1
  58. package/prisma/schema.prisma +44 -47
@@ -12,6 +12,7 @@ exports.workerDataTypes = {
12
12
  zoneCount: "zone_count",
13
13
  workerInjectionFields: "worker_injection_fields",
14
14
  file: "file",
15
+ parentUser: "parent_user"
15
16
  };
16
17
  const getCreatePayload = (data) => {
17
18
  if ("worker" in data) {
@@ -46,26 +47,27 @@ let userSqlSelect = {
46
47
  [`usr.${models_1.ModelUserFields.contact_phone_number}`]: "contact_phone_number",
47
48
  [`usr.${models_1.ModelUserFields.email}`]: "email",
48
49
  [`usr.${models_1.ModelUserFields.address}`]: "address",
49
- [`usr.${models_1.ModelUserFields.status}`]: "status",
50
+ [`usr.${models_1.ModelUserFields.parent_user_id}`]: "parent_user_id",
51
+ [`usr.${models_1.ModelUserFields.status}`]: "status"
50
52
  };
51
53
  let defaultSqlSelect = {
52
- [`wrk.${models_1.ModelWorkerFields.createdatetime}`]: "createdatetime",
53
- [`creator.${models_1.ModelUserFields.login_username}`]: "createusername",
54
- [`wrk.${models_1.ModelWorkerFields.updatedatetime}`]: "updatedatetime",
55
- [`updater.${models_1.ModelUserFields.login_username}`]: "updateusername",
56
- [`wrk.${models_1.ModelWorkerFields.isdelete}`]: "isdelete",
57
- [`wrk.${models_1.ModelWorkerFields.istrash}`]: "istrash",
58
- [`wrk.${models_1.ModelWorkerFields.accountid}`]: "accountid",
54
+ [`wrk.${models_1.ModelWorkerFields.createdatetime} `]: "createdatetime",
55
+ [`creator.${models_1.ModelUserFields.login_username} `]: "createusername",
56
+ [`wrk.${models_1.ModelWorkerFields.updatedatetime} `]: "updatedatetime",
57
+ [`updater.${models_1.ModelUserFields.login_username} `]: "updateusername",
58
+ [`wrk.${models_1.ModelWorkerFields.isdelete} `]: "isdelete",
59
+ [`wrk.${models_1.ModelWorkerFields.istrash} `]: "istrash",
60
+ [`wrk.${models_1.ModelWorkerFields.accountid} `]: "accountid",
59
61
  };
60
62
  let userPropLocationSqlSelect = {
61
63
  [`COALESCE(
62
- STRING_AGG(usrprop_location.${models_1.ModelUserPropFields.props_id}::text, ', '),
63
- ''
64
- )`]: "location_id",
64
+ STRING_AGG(usrprop_location.${models_1.ModelUserPropFields.props_id}:: text, ', '),
65
+ ''
66
+ )`]: "location_id",
65
67
  [`COALESCE(
66
- STRING_AGG(location.${models_1.ModelLocationFields.location_name}::text, ', '),
67
- ''
68
- )`]: "location_name",
68
+ STRING_AGG(location.${models_1.ModelLocationFields.location_name}:: text, ', '),
69
+ ''
70
+ )`]: "location_name",
69
71
  };
70
72
  const WorkerService = (props) => {
71
73
  const { ...rest } = props;
@@ -75,7 +77,7 @@ const WorkerService = (props) => {
75
77
  const createWorker = async ({ data }) => {
76
78
  const _data = getCreatePayload(data);
77
79
  if (!_data) {
78
- throw new Error(`Invalid create worker payload: ${JSON.stringify(_data)}`);
80
+ throw new Error(`Invalid create worker payload: ${JSON.stringify(_data)} `);
79
81
  }
80
82
  let response = await workerModel.create({ data: _data });
81
83
  return response;
@@ -83,9 +85,9 @@ const WorkerService = (props) => {
83
85
  const updateWorker = async ({ userId, data }) => {
84
86
  const _data = getUpdatePayload(data);
85
87
  if (!_data) {
86
- throw new Error(`Invalid update worker payload: ${JSON.stringify(_data)}`);
88
+ throw new Error(`Invalid update worker payload: ${JSON.stringify(_data)} `);
87
89
  }
88
- let response = await workerModel.update({ where: { [`${models_1.ModelWorkerFields.user_id}`]: userId }, data: _data });
90
+ let response = await workerModel.update({ where: { [`${models_1.ModelWorkerFields.user_id} `]: userId }, data: _data });
89
91
  return response;
90
92
  };
91
93
  const getWorker = async ({ id, datatypes = [], includePassword = false }) => {
@@ -105,11 +107,11 @@ const WorkerService = (props) => {
105
107
  if (includePassword === true) {
106
108
  userSqlSelect = {
107
109
  ...userSqlSelect,
108
- [`usr.${models_1.ModelUserFields.login_password}`]: "password",
110
+ [`usr.${models_1.ModelUserFields.login_password} `]: "password",
109
111
  };
110
112
  }
111
113
  else {
112
- delete userSqlSelect[`usr.${models_1.ModelUserFields.login_password}`];
114
+ delete userSqlSelect[`usr.${models_1.ModelUserFields.login_password} `];
113
115
  }
114
116
  let sqlSelect = [
115
117
  `COUNT(wrk.*) OVER() as filtered_count`,
@@ -145,31 +147,37 @@ const WorkerService = (props) => {
145
147
  sqlRelation = [...sqlRelation, (0, lib_1.buildSqlRelation)("left", "wrk", "user_injection_fields", "uif", ["wrk.user_id = uif.user_id", "uif.field_ref = 'user'", "uif.field_module = 'worker'", "uif.isdelete = false", "uif.istrash = false"])];
146
148
  sqlGroupBy = [...sqlGroupBy, ...Object.keys(workerInjectionFieldSqlSelect)];
147
149
  }
150
+ if (datatypes.includes(exports.workerDataTypes.parentUser)) {
151
+ filterColumns = { ...filterColumns, ...services_1.userParentSqlSelect };
152
+ sqlRelation = [...sqlRelation, (0, lib_1.buildSqlRelation)("left", "wrk", "users", "parentuser", ["usr.parent_user_id = parentuser.user_id", "parentuser.isdelete = false", "parentuser.istrash = false"])];
153
+ sqlSelect = [...sqlSelect, (0, lib_1.buildSqlSelect)(``, services_1.userParentSqlSelect)];
154
+ sqlGroupBy = [...sqlGroupBy, ...Object.keys(services_1.userParentSqlSelect)];
155
+ }
148
156
  if (datatypes.includes(exports.workerDataTypes.location)) {
149
157
  let locationSqlSelect = {
150
158
  [`COALESCE(
151
- JSON_AGG(
152
- DISTINCT JSONB_BUILD_OBJECT(
153
- '${models_1.ModelLocationFields.location_id}', location.location_id,
154
- '${models_1.ModelLocationFields.location_code}', location.location_code,
155
- '${models_1.ModelLocationFields.location_name}', location.location_name,
156
- '${models_1.ModelLocationFields.location_type}', location.location_type,
157
- '${models_1.ModelLocationFields.address_1}', location.address_1,
158
- '${models_1.ModelLocationFields.address_2}', location.address_2,
159
- '${models_1.ModelLocationFields.area_id}', location.area_id,
160
- '${models_1.ModelLocationFields.country_id}', location.country_id,
161
- '${models_1.ModelLocationFields.state_id}', location.state_id,
162
- '${models_1.ModelLocationFields.postcode}', location.postcode,
163
- '${models_1.ModelLocationFields.is_default}', location.is_default,
164
- '${models_1.ModelLocationFields.person_contact}', location.person_contact,
165
- '${models_1.ModelLocationFields.person_name}', location.person_contact,
166
- '${models_1.ModelLocationFields.person_email}', location.person_email,
167
- '${models_1.ModelLocationFields.isdelete}', location.isdelete,
168
- '${models_1.ModelLocationFields.istrash}', location.istrash
169
- )
170
- ) FILTER (WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false),
171
- '[]'
172
- )`]: "locations"
159
+ JSON_AGG(
160
+ DISTINCT JSONB_BUILD_OBJECT(
161
+ '${models_1.ModelLocationFields.location_id}', location.location_id,
162
+ '${models_1.ModelLocationFields.location_code}', location.location_code,
163
+ '${models_1.ModelLocationFields.location_name}', location.location_name,
164
+ '${models_1.ModelLocationFields.location_type}', location.location_type,
165
+ '${models_1.ModelLocationFields.address_1}', location.address_1,
166
+ '${models_1.ModelLocationFields.address_2}', location.address_2,
167
+ '${models_1.ModelLocationFields.area_id}', location.area_id,
168
+ '${models_1.ModelLocationFields.country_id}', location.country_id,
169
+ '${models_1.ModelLocationFields.state_id}', location.state_id,
170
+ '${models_1.ModelLocationFields.postcode}', location.postcode,
171
+ '${models_1.ModelLocationFields.is_default}', location.is_default,
172
+ '${models_1.ModelLocationFields.person_contact}', location.person_contact,
173
+ '${models_1.ModelLocationFields.person_name}', location.person_contact,
174
+ '${models_1.ModelLocationFields.person_email}', location.person_email,
175
+ '${models_1.ModelLocationFields.isdelete}', location.isdelete,
176
+ '${models_1.ModelLocationFields.istrash}', location.istrash
177
+ )
178
+ ) FILTER(WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false),
179
+ '[]'
180
+ )`]: "locations"
173
181
  };
174
182
  filterColumns = { ...filterColumns, ...locationSqlSelect };
175
183
  sqlSelect = [...sqlSelect, (0, lib_1.buildSqlSelect)(``, locationSqlSelect)];
@@ -177,7 +185,7 @@ const WorkerService = (props) => {
177
185
  }
178
186
  if (datatypes.includes(exports.workerDataTypes.locationCount)) {
179
187
  let locationCountSqlSelect = {
180
- [`COUNT(DISTINCT location.${models_1.ModelLocationFields.location_id})::INT`]: "location_count"
188
+ [`COUNT(DISTINCT location.${models_1.ModelLocationFields.location_id}):: INT`]: "location_count"
181
189
  };
182
190
  filterColumns = { ...filterColumns, ...locationCountSqlSelect };
183
191
  sqlSelect = [...sqlSelect, (0, lib_1.buildSqlSelect)(``, locationCountSqlSelect)];
@@ -185,7 +193,7 @@ const WorkerService = (props) => {
185
193
  }
186
194
  // if (datatypes.includes(customerDataTypes.branchUserCount)) {
187
195
  // let branchUserCountSqlSelect = {
188
- // [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: "branch_user_count"
196
+ // [`COUNT(DISTINCT brnusrcount.${ ModelBranchUserFields.branch_user_id }):: INT`]: "branch_user_count"
189
197
  // }
190
198
  // filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }
191
199
  // sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]
@@ -219,7 +227,7 @@ const WorkerService = (props) => {
219
227
  const removeWorkers = async ({ userIds }) => {
220
228
  if (!userIds.length)
221
229
  (0, utils_1.throwError)('userIds is required');
222
- const response = await workerModel.remove({ where: { [`${models_1.ModelWorkerFields.user_id}`]: { in: userIds } } });
230
+ const response = await workerModel.remove({ where: { [`${models_1.ModelWorkerFields.user_id} `]: { in: userIds } } });
223
231
  return response;
224
232
  };
225
233
  const getDataTypes = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerService.js","sourceRoot":"","sources":["../../../src/services/user/WorkerService.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,qCAOkB;AAElB,yCAAmD;AAMnD,+BAA4K;AAI/J,QAAA,eAAe,GAAG;IAC3B,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,gBAAgB;IAC/B,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,YAAY;IACvB,qBAAqB,EAAE,yBAAyB;IAChD,IAAI,EAAE,MAAM;CACf,CAAA;AA4CD,MAAM,gBAAgB,GAAG,CAAC,IAA+B,EAAE,EAAE;IAEzD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QAEnB,OAAO;YACH,CAAC,GAAG,0BAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YACpD,CAAC,GAAG,0BAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SACtD,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAEhB,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,IAA+B,EAAE,EAAE;IAEzD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QAEnB,OAAO;YACH,wDAAwD;YACxD,CAAC,GAAG,0BAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SACtD,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAEhB,CAAC,CAAA;AAED,IAAI,aAAa,GAAG;IAChB,CAAC,OAAO,0BAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;IACnD,CAAC,OAAO,0BAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IAC/C,CAAC,OAAO,0BAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ;CAChD,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,0BAAiB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC7D,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,OAAO,0BAAiB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC7D,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,OAAO,0BAAiB,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;IACjD,CAAC,OAAO,0BAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IAC/C,CAAC,OAAO,0BAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;CACtD,CAAA;AAED,IAAI,yBAAyB,GAAG;IAC5B,CAAC;sCACiC,4BAAmB,CAAC,QAAQ;;MAE5D,CAAC,EAAE,aAAa;IAClB,CAAC;8BACyB,4BAAmB,CAAC,aAAa;;MAEzD,CAAC,EAAE,eAAe;CACvB,CAAA;AAEM,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,EAAE;IAEvD,MAAM,EACF,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAE5C,MAAM,qBAAqB,GAAG,IAAA,gCAAqB,EAAC,EAAE,GAAG,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAA;IAE5F,uEAAuE;IAEvE,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;QAEvD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAExD,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAqB,EAAE,EAAE;QAE/D,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,0BAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAE7G,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,eAAe,GAAG,KAAK,EAAkB,EAAE,EAAE;QAExF,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,CAAC;YAC7B,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;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,EAAE,EACvB,eAAe,GAAG,KAAK,EACvB,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,GAAG,EAAE,EACA,EAAE,EAAE;QAElB,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,uCAAuC;YACvC,IAAA,oBAAc,EAAC,EAAE,EAAE,aAAa,CAAC;YACjC,IAAA,oBAAc,EAAC,EAAE,EAAE,aAAa,CAAC;YACjC,IAAA,oBAAc,EAAC,EAAE,EAAE,gBAAgB,CAAC;YACpC,IAAA,oBAAc,EAAC,EAAE,EAAE,yBAAyB,CAAC;SAChD,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,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;SAC1K,CAAA;QAED,IAAI,UAAU,GAAa;YACvB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAC7B,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAC7B,6CAA6C;YAC7C,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;SACnC,CAAA;QAED,IAAI,aAAa,GAAG;YAChB,GAAG,aAAa;YAChB,GAAG,aAAa;YAChB,GAAG,yBAAyB;YAC5B,GAAG,gBAAgB;SACtB,CAAA;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,uBAAe,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAE5D,IAAI,qBAAqB,GAAG,MAAM,qBAAqB,CAAC,yBAAyB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAEnG,MAAM,6BAA6B,GAAG,IAAA,mCAA6B,EAAC,KAAK,EAAE,qBAAqB,CAAC,CAAA;YAEjG,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,6BAA6B,EAAE,CAAA;YAEtE,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAc,EAAC,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC5H,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,IAAA,sBAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,2BAA2B,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACtO,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAA;QAE/E,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,uBAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YAE/C,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,uBAAe,CAAC,aAAa,CAAC,EAAE,CAAC;YAEpD,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,+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,SAAS;YACpB,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS;YACT,WAAW;YACX,QAAQ;YACR,UAAU;YACV,UAAU;YACV,cAAc;SACjB,CAAC,CAAA;QAEF,IAAI,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAEpC,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,aAAa,GAAG,KAAK,EAAE,EAAE,OAAO,EAAqB,EAAE,EAAE;QAE3D,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,IAAA,kBAAU,EAAC,qBAAqB,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,0BAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAE5G,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC,uBAAe,CAAC,CAAC;IAC1C,CAAC,CAAA;IAED,OAAO;QACH,YAAY;QACZ,YAAY;QACZ,SAAS;QACT,WAAW;QACX,aAAa;QACb,YAAY;KACf,CAAA;AAEL,CAAC,CAAA;AA1OY,QAAA,aAAa,iBA0OzB","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n WorkerModel,\n ModelWorkerFields,\n ModelUserPropFields,\n ModelLocationFields,\n UserInjectionFieldModel\n} from \"@/models\";\n\nimport { InjectionFieldService } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { toFieldMap, buildSqlRawSelect, buildSqlRelation, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nexport type UserType = \"worker\"\n\nexport const workerDataTypes = {\n location: \"location\",\n locationCount: \"location_count\",\n zone: \"zone\",\n zoneCount: \"zone_count\",\n workerInjectionFields: \"worker_injection_fields\",\n file: \"file\",\n}\n\nexport type WorkerDataType = keyof typeof workerDataTypes;\n\nexport type WorkerServiceProps = DefaultServiceProps & {};\n\nexport type WorkerGetProps = {\n id: number,\n includePassword?: boolean,\n datatypes: WorkerDataType[]\n};\n\nexport type WorkerListProps = QueryList & {\n includePassword?: boolean,\n datatypes: WorkerDataType[]\n};\n\nexport type WorkerRemoveProps = {\n userIds: BigInt[]\n};\n\nexport type WorkerCreateProps = {\n data:\n // worker\n {\n worker: {\n userId: number,\n remark: string\n }\n }\n}\n\nexport type WorkerUpdateProps = {\n userId: number,\n data:\n // worker\n {\n worker: {\n // userId: number,\n remark: string\n }\n }\n}\n\nconst getCreatePayload = (data: WorkerCreateProps[\"data\"]) => {\n\n if (\"worker\" in data) {\n\n return {\n [`${ModelWorkerFields.user_id}`]: data.worker.userId,\n [`${ModelWorkerFields.remark}`]: data.worker.remark\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: WorkerUpdateProps[\"data\"]) => {\n\n if (\"worker\" in data) {\n\n return {\n // [`${ModelWorkerFields.user_id}`]: data.worker.userId,\n [`${ModelWorkerFields.remark}`]: data.worker.remark\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`wrk.${ModelWorkerFields.worker_id}`]: \"worker_id\",\n [`wrk.${ModelWorkerFields.user_id}`]: \"user_id\",\n [`wrk.${ModelWorkerFields.remark}`]: \"remark\",\n}\n\nlet userSqlSelect = {\n [`usr.${ModelUserFields.login_username}`]: \"username\",\n [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n [`CONCAT(usr.${ModelUserFields.contact_country_code}, usr.${ModelUserFields.contact_phone_number})`]: \"contact\",\n [`usr.${ModelUserFields.contact_country_code}`]: \"contact_country_code\",\n [`usr.${ModelUserFields.contact_phone_number}`]: \"contact_phone_number\",\n [`usr.${ModelUserFields.email}`]: \"email\",\n [`usr.${ModelUserFields.address}`]: \"address\",\n [`usr.${ModelUserFields.status}`]: \"status\",\n}\n\nlet defaultSqlSelect = {\n [`wrk.${ModelWorkerFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`wrk.${ModelWorkerFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`wrk.${ModelWorkerFields.isdelete}`]: \"isdelete\",\n [`wrk.${ModelWorkerFields.istrash}`]: \"istrash\",\n [`wrk.${ModelWorkerFields.accountid}`]: \"accountid\",\n}\n\nlet userPropLocationSqlSelect = {\n [`COALESCE(\n STRING_AGG(usrprop_location.${ModelUserPropFields.props_id}::text, ', '),\n ''\n )`]: \"location_id\",\n [`COALESCE(\n STRING_AGG(location.${ModelLocationFields.location_name}::text, ', '),\n ''\n )`]: \"location_name\",\n}\n\nexport const WorkerService = (props: WorkerServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const workerModel = WorkerModel({ ...rest })\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"user\" })\n\n // const userInjectionFieldModel = UserInjectionFieldModel({ ...rest })\n\n const createWorker = async ({ data }: WorkerCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create worker payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await workerModel.create({ data: _data })\n\n return response\n }\n\n const updateWorker = async ({ userId, data }: WorkerUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update worker payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await workerModel.update({ where: { [`${ModelWorkerFields.user_id}`]: userId }, data: _data })\n\n return response\n }\n\n const getWorker = async ({ id, datatypes = [], includePassword = false }: WorkerGetProps) => {\n\n let { data } = await listWorkers({\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 })\n\n return data[0] ?? null;\n\n };\n\n const listWorkers = async ({\n includePassword = false,\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: WorkerListProps) => {\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(wrk.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, userSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n buildSqlSelect(``, userPropLocationSqlSelect),\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"wrk\", \"users\", \"usr\", [\"wrk.user_id = usr.user_id\", \"usr.isdelete = false\", \"usr.istrash = false\"]),\n buildSqlRelation(\"left\", \"wrk\", \"users\", \"creator\", [\"wrk.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"wrk\", \"users\", \"updater\", [\"wrk.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"]),\n buildSqlRelation(\"left\", \"wrk\", \"user_props\", \"usrprop_location\", [\"wrk.user_id = usrprop_location.user_id\", \"usrprop_location.type = 'LOCATION_ID'\", \"usrprop_location.isdelete = false\", \"usrprop_location.istrash = false\"]),\n buildSqlRelation(\"left\", \"wrk\", \"locations\", \"location\", [\"usrprop_location.props_id = location.location_id\", \"location.isdelete = false\", \"location.istrash = false\"]),\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(userSqlSelect),\n // ...Object.keys(userPropLocationSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...userSqlSelect,\n ...userPropLocationSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(workerDataTypes.workerInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"user\", \"worker\")\n\n const workerInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"uif\", activeInjectionFields)\n\n filterColumns = { ...filterColumns, ...workerInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, workerInjectionFieldSqlSelect)] : [])]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"wrk\", \"user_injection_fields\", \"uif\", [\"wrk.user_id = uif.user_id\", \"uif.field_ref = 'user'\", \"uif.field_module = 'worker'\", \"uif.isdelete = false\", \"uif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(workerInjectionFieldSqlSelect)]\n\n }\n\n if (datatypes.includes(workerDataTypes.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\", [\"wrk.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n }\n\n if (datatypes.includes(workerDataTypes.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\", [\"wrk.user_id = brncount.user_id\", \"brncount.isdelete = false\", \"brncount.istrash = false\"])]\n\n }\n\n // if (datatypes.includes(customerDataTypes.branchUserCount)) {\n\n // let branchUserCountSqlSelect = {\n // [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: \"branch_user_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branch_users\", \"brnusrcount\", [\"wrk.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `wrk.isdelete = false`,\n `wrk.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: \"workers\",\n mainAlias: \"wrk\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await workerModel.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 removeWorkers = async ({ userIds }: WorkerRemoveProps) => {\n\n if (!userIds.length) throwError('userIds is required');\n\n const response = await workerModel.remove({ where: { [`${ModelWorkerFields.user_id}`]: { in: userIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(workerDataTypes);\n }\n\n return {\n createWorker,\n updateWorker,\n getWorker,\n listWorkers,\n removeWorkers,\n getDataTypes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"WorkerService.js","sourceRoot":"","sources":["../../../src/services/user/WorkerService.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,qCAOkB;AAElB,yCAAwE;AAMxE,+BAA4K;AAI/J,QAAA,eAAe,GAAG;IAC3B,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,gBAAgB;IAC/B,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,YAAY;IACvB,qBAAqB,EAAE,yBAAyB;IAChD,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,aAAa;CAC5B,CAAA;AA4CD,MAAM,gBAAgB,GAAG,CAAC,IAA+B,EAAE,EAAE;IAEzD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QAEnB,OAAO;YACH,CAAC,GAAG,0BAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YACpD,CAAC,GAAG,0BAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SACtD,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAEhB,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,IAA+B,EAAE,EAAE;IAEzD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QAEnB,OAAO;YACH,wDAAwD;YACxD,CAAC,GAAG,0BAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SACtD,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAEhB,CAAC,CAAA;AAED,IAAI,aAAa,GAAG;IAChB,CAAC,OAAO,0BAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;IACnD,CAAC,OAAO,0BAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IAC/C,CAAC,OAAO,0BAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ;CAChD,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,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC3D,CAAC,OAAO,wBAAe,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ;CAC9C,CAAA;AAED,IAAI,gBAAgB,GAAG;IACnB,CAAC,OAAO,0BAAiB,CAAC,cAAc,GAAG,CAAC,EAAE,gBAAgB;IAC9D,CAAC,WAAW,wBAAe,CAAC,cAAc,GAAG,CAAC,EAAE,gBAAgB;IAChE,CAAC,OAAO,0BAAiB,CAAC,cAAc,GAAG,CAAC,EAAE,gBAAgB;IAC9D,CAAC,WAAW,wBAAe,CAAC,cAAc,GAAG,CAAC,EAAE,gBAAgB;IAChE,CAAC,OAAO,0BAAiB,CAAC,QAAQ,GAAG,CAAC,EAAE,UAAU;IAClD,CAAC,OAAO,0BAAiB,CAAC,OAAO,GAAG,CAAC,EAAE,SAAS;IAChD,CAAC,OAAO,0BAAiB,CAAC,SAAS,GAAG,CAAC,EAAE,WAAW;CACvD,CAAA;AAED,IAAI,yBAAyB,GAAG;IAC5B,CAAC;kCAC6B,4BAAmB,CAAC,QAAQ;;EAE5D,CAAC,EAAE,aAAa;IACd,CAAC;0BACqB,4BAAmB,CAAC,aAAa;;EAEzD,CAAC,EAAE,eAAe;CACnB,CAAA;AAEM,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,EAAE;IAEvD,MAAM,EACF,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAE5C,MAAM,qBAAqB,GAAG,IAAA,gCAAqB,EAAC,EAAE,GAAG,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAA;IAE5F,uEAAuE;IAEvE,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;QAEvD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAExD,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAqB,EAAE,EAAE;QAE/D,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,0BAAiB,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAE9G,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,eAAe,GAAG,KAAK,EAAkB,EAAE,EAAE;QAExF,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,CAAC;YAC7B,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;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,EAAE,EACvB,eAAe,GAAG,KAAK,EACvB,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,GAAG,EAAE,EACA,EAAE,EAAE;QAElB,IAAI,IAAI,GAAG,EAAE,CAAA;QAEb,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC3B,aAAa,GAAG;gBACZ,GAAG,aAAa;gBAChB,CAAC,OAAO,wBAAe,CAAC,cAAc,GAAG,CAAC,EAAE,UAAU;aACzD,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,OAAO,aAAa,CAAC,OAAO,wBAAe,CAAC,cAAc,GAAG,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,SAAS,GAAG;YACZ,uCAAuC;YACvC,IAAA,oBAAc,EAAC,EAAE,EAAE,aAAa,CAAC;YACjC,IAAA,oBAAc,EAAC,EAAE,EAAE,aAAa,CAAC;YACjC,IAAA,oBAAc,EAAC,EAAE,EAAE,gBAAgB,CAAC;YACpC,IAAA,oBAAc,EAAC,EAAE,EAAE,yBAAyB,CAAC;SAChD,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,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;SAC1K,CAAA;QAED,IAAI,UAAU,GAAa;YACvB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAC7B,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAC7B,6CAA6C;YAC7C,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;SACnC,CAAA;QAED,IAAI,aAAa,GAAG;YAChB,GAAG,aAAa;YAChB,GAAG,aAAa;YAChB,GAAG,yBAAyB;YAC5B,GAAG,gBAAgB;SACtB,CAAA;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,uBAAe,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAE5D,IAAI,qBAAqB,GAAG,MAAM,qBAAqB,CAAC,yBAAyB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAEnG,MAAM,6BAA6B,GAAG,IAAA,mCAA6B,EAAC,KAAK,EAAE,qBAAqB,CAAC,CAAA;YAEjG,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,6BAA6B,EAAE,CAAA;YAEtE,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAc,EAAC,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC5H,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,IAAA,sBAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,2BAA2B,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACtO,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAA;QAE/E,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,uBAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YAEjD,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,IAAI,SAAS,CAAC,QAAQ,CAAC,uBAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YAE/C,IAAI,iBAAiB,GAAG;gBACpB,CAAC;;;+BAGc,4BAAmB,CAAC,WAAW;+BAC/B,4BAAmB,CAAC,aAAa;+BACjC,4BAAmB,CAAC,aAAa;+BACjC,4BAAmB,CAAC,aAAa;+BACjC,4BAAmB,CAAC,SAAS;+BAC7B,4BAAmB,CAAC,SAAS;+BAC7B,4BAAmB,CAAC,OAAO;+BAC3B,4BAAmB,CAAC,UAAU;+BAC9B,4BAAmB,CAAC,QAAQ;+BAC5B,4BAAmB,CAAC,QAAQ;+BAC5B,4BAAmB,CAAC,UAAU;+BAC9B,4BAAmB,CAAC,cAAc;+BAClC,4BAAmB,CAAC,WAAW;+BAC/B,4BAAmB,CAAC,YAAY;+BAChC,4BAAmB,CAAC,QAAQ;+BAC5B,4BAAmB,CAAC,OAAO;;;;kBAIxC,CAAC,EAAE,WAAW;aACnB,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,uBAAe,CAAC,aAAa,CAAC,EAAE,CAAC;YAEpD,IAAI,sBAAsB,GAAG;gBACzB,CAAC,2BAA2B,4BAAmB,CAAC,WAAW,SAAS,CAAC,EAAE,gBAAgB;aAC1F,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,+DAA+D;QAE/D,uCAAuC;QACvC,+GAA+G;QAC/G,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,SAAS;YACpB,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS;YACT,WAAW;YACX,QAAQ;YACR,UAAU;YACV,UAAU;YACV,cAAc;SACjB,CAAC,CAAA;QAEF,IAAI,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAEpC,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,aAAa,GAAG,KAAK,EAAE,EAAE,OAAO,EAAqB,EAAE,EAAE;QAE3D,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,IAAA,kBAAU,EAAC,qBAAqB,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,0BAAiB,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAE7G,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC,uBAAe,CAAC,CAAC;IAC1C,CAAC,CAAA;IAED,OAAO;QACH,YAAY;QACZ,YAAY;QACZ,SAAS;QACT,WAAW;QACX,aAAa;QACb,YAAY;KACf,CAAA;AAEL,CAAC,CAAA;AApPY,QAAA,aAAa,iBAoPzB","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n WorkerModel,\n ModelWorkerFields,\n ModelUserPropFields,\n ModelLocationFields,\n UserInjectionFieldModel\n} from \"@/models\";\n\nimport { InjectionFieldService, userParentSqlSelect } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { toFieldMap, buildSqlRawSelect, buildSqlRelation, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nexport type UserType = \"worker\"\n\nexport const workerDataTypes = {\n location: \"location\",\n locationCount: \"location_count\",\n zone: \"zone\",\n zoneCount: \"zone_count\",\n workerInjectionFields: \"worker_injection_fields\",\n file: \"file\",\n parentUser: \"parent_user\"\n}\n\nexport type WorkerDataType = keyof typeof workerDataTypes;\n\nexport type WorkerServiceProps = DefaultServiceProps & {};\n\nexport type WorkerGetProps = {\n id: number,\n includePassword?: boolean,\n datatypes: WorkerDataType[]\n};\n\nexport type WorkerListProps = QueryList & {\n includePassword?: boolean,\n datatypes: WorkerDataType[]\n};\n\nexport type WorkerRemoveProps = {\n userIds: BigInt[]\n};\n\nexport type WorkerCreateProps = {\n data:\n // worker\n {\n worker: {\n userId: number,\n remark: string\n }\n }\n}\n\nexport type WorkerUpdateProps = {\n userId: number,\n data:\n // worker\n {\n worker: {\n // userId: number,\n remark: string\n }\n }\n}\n\nconst getCreatePayload = (data: WorkerCreateProps[\"data\"]) => {\n\n if (\"worker\" in data) {\n\n return {\n [`${ModelWorkerFields.user_id}`]: data.worker.userId,\n [`${ModelWorkerFields.remark}`]: data.worker.remark\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: WorkerUpdateProps[\"data\"]) => {\n\n if (\"worker\" in data) {\n\n return {\n // [`${ModelWorkerFields.user_id}`]: data.worker.userId,\n [`${ModelWorkerFields.remark}`]: data.worker.remark\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`wrk.${ModelWorkerFields.worker_id}`]: \"worker_id\",\n [`wrk.${ModelWorkerFields.user_id}`]: \"user_id\",\n [`wrk.${ModelWorkerFields.remark}`]: \"remark\",\n}\n\nlet userSqlSelect = {\n [`usr.${ModelUserFields.login_username}`]: \"username\",\n [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n [`CONCAT(usr.${ModelUserFields.contact_country_code}, usr.${ModelUserFields.contact_phone_number})`]: \"contact\",\n [`usr.${ModelUserFields.contact_country_code}`]: \"contact_country_code\",\n [`usr.${ModelUserFields.contact_phone_number}`]: \"contact_phone_number\",\n [`usr.${ModelUserFields.email}`]: \"email\",\n [`usr.${ModelUserFields.address}`]: \"address\",\n [`usr.${ModelUserFields.parent_user_id}`]: \"parent_user_id\",\n [`usr.${ModelUserFields.status}`]: \"status\"\n}\n\nlet defaultSqlSelect = {\n [`wrk.${ModelWorkerFields.createdatetime} `]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username} `]: \"createusername\",\n [`wrk.${ModelWorkerFields.updatedatetime} `]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username} `]: \"updateusername\",\n [`wrk.${ModelWorkerFields.isdelete} `]: \"isdelete\",\n [`wrk.${ModelWorkerFields.istrash} `]: \"istrash\",\n [`wrk.${ModelWorkerFields.accountid} `]: \"accountid\",\n}\n\nlet userPropLocationSqlSelect = {\n [`COALESCE(\n STRING_AGG(usrprop_location.${ModelUserPropFields.props_id}:: text, ', '),\n ''\n)`]: \"location_id\",\n [`COALESCE(\n STRING_AGG(location.${ModelLocationFields.location_name}:: text, ', '),\n ''\n)`]: \"location_name\",\n}\n\nexport const WorkerService = (props: WorkerServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const workerModel = WorkerModel({ ...rest })\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"user\" })\n\n // const userInjectionFieldModel = UserInjectionFieldModel({ ...rest })\n\n const createWorker = async ({ data }: WorkerCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create worker payload: ${JSON.stringify(_data)} `);\n }\n\n let response = await workerModel.create({ data: _data })\n\n return response\n }\n\n const updateWorker = async ({ userId, data }: WorkerUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update worker payload: ${JSON.stringify(_data)} `);\n }\n\n let response = await workerModel.update({ where: { [`${ModelWorkerFields.user_id} `]: userId }, data: _data })\n\n return response\n }\n\n const getWorker = async ({ id, datatypes = [], includePassword = false }: WorkerGetProps) => {\n\n let { data } = await listWorkers({\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 })\n\n return data[0] ?? null;\n\n };\n\n const listWorkers = async ({\n includePassword = false,\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: WorkerListProps) => {\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(wrk.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, userSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n buildSqlSelect(``, userPropLocationSqlSelect),\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"wrk\", \"users\", \"usr\", [\"wrk.user_id = usr.user_id\", \"usr.isdelete = false\", \"usr.istrash = false\"]),\n buildSqlRelation(\"left\", \"wrk\", \"users\", \"creator\", [\"wrk.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"wrk\", \"users\", \"updater\", [\"wrk.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"]),\n buildSqlRelation(\"left\", \"wrk\", \"user_props\", \"usrprop_location\", [\"wrk.user_id = usrprop_location.user_id\", \"usrprop_location.type = 'LOCATION_ID'\", \"usrprop_location.isdelete = false\", \"usrprop_location.istrash = false\"]),\n buildSqlRelation(\"left\", \"wrk\", \"locations\", \"location\", [\"usrprop_location.props_id = location.location_id\", \"location.isdelete = false\", \"location.istrash = false\"]),\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(userSqlSelect),\n // ...Object.keys(userPropLocationSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...userSqlSelect,\n ...userPropLocationSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(workerDataTypes.workerInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"user\", \"worker\")\n\n const workerInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"uif\", activeInjectionFields)\n\n filterColumns = { ...filterColumns, ...workerInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, workerInjectionFieldSqlSelect)] : [])]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"wrk\", \"user_injection_fields\", \"uif\", [\"wrk.user_id = uif.user_id\", \"uif.field_ref = 'user'\", \"uif.field_module = 'worker'\", \"uif.isdelete = false\", \"uif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(workerInjectionFieldSqlSelect)]\n\n }\n\n if (datatypes.includes(workerDataTypes.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(workerDataTypes.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\", [\"wrk.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n }\n\n if (datatypes.includes(workerDataTypes.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\", [\"wrk.user_id = brncount.user_id\", \"brncount.isdelete = false\", \"brncount.istrash = false\"])]\n\n }\n\n // if (datatypes.includes(customerDataTypes.branchUserCount)) {\n\n // let branchUserCountSqlSelect = {\n // [`COUNT(DISTINCT brnusrcount.${ ModelBranchUserFields.branch_user_id }):: INT`]: \"branch_user_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branch_users\", \"brnusrcount\", [\"wrk.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `wrk.isdelete = false`,\n `wrk.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: \"workers\",\n mainAlias: \"wrk\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await workerModel.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 removeWorkers = async ({ userIds }: WorkerRemoveProps) => {\n\n if (!userIds.length) throwError('userIds is required');\n\n const response = await workerModel.remove({ where: { [`${ModelWorkerFields.user_id} `]: { in: userIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(workerDataTypes);\n }\n\n return {\n createWorker,\n updateWorker,\n getWorker,\n listWorkers,\n removeWorkers,\n getDataTypes\n }\n\n}\n\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "storemw-core-api",
3
- "version": "1.0.140",
3
+ "version": "1.0.141",
4
4
  "description": "STOREMW Core API",
5
5
  "main": "dist/app.js",
6
6
  "types": "dist/app.d.ts",
@@ -130,6 +130,7 @@ model users {
130
130
  accountid BigInt @default(0)
131
131
  contact_country_code Int @default(0)
132
132
  contact_phone_number String? @db.VarChar(40)
133
+ parent_user_id BigInt @default(0)
133
134
  areas_areas_createuseridTousers areas[] @relation("areas_createuseridTousers")
134
135
  areas_areas_updateuseridTousers areas[] @relation("areas_updateuseridTousers")
135
136
  branches_branches_createuseridTousers branches[] @relation("branches_createuseridTousers")
@@ -2749,30 +2750,28 @@ model drivers {
2749
2750
  }
2750
2751
 
2751
2752
  model members {
2752
- member_id BigInt @id(map: "cl_members_pkey") @default(autoincrement())
2753
- user_id BigInt @default(0)
2754
- owner_user_type String? @db.VarChar(100)
2755
- owner_user_id BigInt? @default(0)
2756
- company_name String? @db.VarChar(100)
2757
- code String? @db.VarChar(64)
2758
- address_1 String? @db.VarChar(255)
2759
- address_2 String? @db.VarChar(255)
2760
- postcode String? @db.VarChar(255)
2761
- state_id BigInt? @default(0)
2762
- area String? @db.VarChar(255)
2763
- country_id BigInt? @default(0)
2764
- remark String? @db.VarChar(256)
2765
- createdatetime DateTime? @db.Timestamp(6)
2766
- createuserid BigInt @default(0)
2767
- updatedatetime DateTime? @db.Timestamp(6)
2768
- updateuserid BigInt @default(0)
2769
- isdelete Boolean? @default(false)
2770
- istrash Boolean? @default(false)
2771
- accountid BigInt @default(0)
2772
- area_id BigInt?
2773
- identity_no String? @db.VarChar(255)
2774
- gender String? @db.VarChar
2775
- dob DateTime? @db.Date
2753
+ member_id BigInt @id(map: "cl_members_pkey") @default(autoincrement())
2754
+ user_id BigInt @default(0)
2755
+ company_name String? @db.VarChar(100)
2756
+ code String? @db.VarChar(64)
2757
+ address_1 String? @db.VarChar(255)
2758
+ address_2 String? @db.VarChar(255)
2759
+ postcode String? @db.VarChar(255)
2760
+ state_id BigInt? @default(0)
2761
+ area String? @db.VarChar(255)
2762
+ country_id BigInt? @default(0)
2763
+ remark String? @db.VarChar(256)
2764
+ createdatetime DateTime? @db.Timestamp(6)
2765
+ createuserid BigInt @default(0)
2766
+ updatedatetime DateTime? @db.Timestamp(6)
2767
+ updateuserid BigInt @default(0)
2768
+ isdelete Boolean? @default(false)
2769
+ istrash Boolean? @default(false)
2770
+ accountid BigInt @default(0)
2771
+ area_id BigInt?
2772
+ identity_no String? @db.VarChar(255)
2773
+ gender String? @db.VarChar
2774
+ dob DateTime? @db.Date
2776
2775
 
2777
2776
  @@schema("public")
2778
2777
  }
@@ -2822,29 +2821,27 @@ model one_time_codes {
2822
2821
  }
2823
2822
 
2824
2823
  model agents {
2825
- agent_id BigInt @id @default(autoincrement())
2826
- createdatetime DateTime? @db.Timestamptz(6)
2827
- createuserid BigInt @default(0)
2828
- updatedatetime DateTime? @db.Timestamptz(6)
2829
- updateuserid BigInt @default(0)
2830
- isdelete Boolean? @default(false)
2831
- istrash Boolean? @default(false)
2832
- accountid BigInt @default(0)
2833
- user_id BigInt @default(0)
2834
- owner_user_type String? @db.VarChar(100)
2835
- owner_user_id BigInt @default(0)
2836
- company_name String? @db.VarChar(100)
2837
- identity_no String? @db.VarChar(100)
2838
- gender String? @db.VarChar(100)
2839
- dob DateTime? @db.Date
2840
- code String? @db.VarChar(64)
2841
- address_1 String? @db.VarChar(255)
2842
- address_2 String? @db.VarChar(255)
2843
- postcode String? @db.VarChar(255)
2844
- state_id BigInt? @default(0)
2845
- area_id BigInt? @default(0)
2846
- country_id BigInt? @default(0)
2847
- remark String? @db.VarChar(256)
2824
+ agent_id BigInt @id @default(autoincrement())
2825
+ createdatetime DateTime? @db.Timestamptz(6)
2826
+ createuserid BigInt @default(0)
2827
+ updatedatetime DateTime? @db.Timestamptz(6)
2828
+ updateuserid BigInt @default(0)
2829
+ isdelete Boolean? @default(false)
2830
+ istrash Boolean? @default(false)
2831
+ accountid BigInt @default(0)
2832
+ user_id BigInt @default(0)
2833
+ company_name String? @db.VarChar(100)
2834
+ identity_no String? @db.VarChar(100)
2835
+ gender String? @db.VarChar(100)
2836
+ dob DateTime? @db.Date
2837
+ code String? @db.VarChar(64)
2838
+ address_1 String? @db.VarChar(255)
2839
+ address_2 String? @db.VarChar(255)
2840
+ postcode String? @db.VarChar(255)
2841
+ state_id BigInt? @default(0)
2842
+ area_id BigInt? @default(0)
2843
+ country_id BigInt? @default(0)
2844
+ remark String? @db.VarChar(256)
2848
2845
 
2849
2846
  @@schema("public")
2850
2847
  }