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.
- package/dist/controllers/user/userController.js +8 -4
- package/dist/controllers/user/userController.js.map +1 -1
- package/dist/models/account/AccountModel.d.ts +13 -13
- package/dist/models/branch_user/BranchUserModel.d.ts +13 -13
- package/dist/models/user/AgentModel.d.ts +2 -24
- package/dist/models/user/MemberModel.d.ts +2 -24
- package/dist/models/user/UserModel.d.ts +13 -2
- package/dist/schema/payload/account/schemaAccount.d.ts +7 -0
- package/dist/schema/payload/user/schemaUser.d.ts +3 -0
- package/dist/schema/payload/user/schemaUser.js +1 -0
- package/dist/schema/payload/user/schemaUser.js.map +1 -1
- package/dist/schema/payload/user/schemaUserAdministrator.d.ts +14 -0
- package/dist/schema/payload/user/schemaUserAgent.d.ts +15 -12
- package/dist/schema/payload/user/schemaUserAgent.js +2 -2
- package/dist/schema/payload/user/schemaUserAgent.js.map +1 -1
- package/dist/schema/payload/user/schemaUserCustomer.d.ts +14 -0
- package/dist/schema/payload/user/schemaUserDriver.d.ts +14 -0
- package/dist/schema/payload/user/schemaUserMember.d.ts +15 -12
- package/dist/schema/payload/user/schemaUserMember.js +2 -2
- package/dist/schema/payload/user/schemaUserMember.js.map +1 -1
- package/dist/schema/payload/user/schemaUserOperator.d.ts +14 -0
- package/dist/schema/payload/user/schemaUserRetailer.d.ts +14 -0
- package/dist/schema/payload/user/schemaUserWorker.d.ts +14 -0
- package/dist/services/account/AccountService.js +14 -4
- package/dist/services/account/AccountService.js.map +1 -1
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.js +2 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/user/AdministratorService.d.ts +1 -0
- package/dist/services/user/AdministratorService.js +7 -0
- package/dist/services/user/AdministratorService.js.map +1 -1
- package/dist/services/user/AgentService.d.ts +2 -12
- package/dist/services/user/AgentService.js +35 -26
- package/dist/services/user/AgentService.js.map +1 -1
- package/dist/services/user/CustomerService.d.ts +1 -0
- package/dist/services/user/CustomerService.js +7 -0
- package/dist/services/user/CustomerService.js.map +1 -1
- package/dist/services/user/DriverService.d.ts +1 -0
- package/dist/services/user/DriverService.js +7 -0
- package/dist/services/user/DriverService.js.map +1 -1
- package/dist/services/user/MemberService.d.ts +2 -12
- package/dist/services/user/MemberService.js +35 -26
- package/dist/services/user/MemberService.js.map +1 -1
- package/dist/services/user/OperatorService.d.ts +4 -2
- package/dist/services/user/OperatorService.js +11 -3
- package/dist/services/user/OperatorService.js.map +1 -1
- package/dist/services/user/RetailerService.d.ts +1 -0
- package/dist/services/user/RetailerService.js +7 -0
- package/dist/services/user/RetailerService.js.map +1 -1
- package/dist/services/user/UserMeService.d.ts +1 -0
- package/dist/services/user/UserService.d.ts +5 -0
- package/dist/services/user/UserService.js +34 -17
- package/dist/services/user/UserService.js.map +1 -1
- package/dist/services/user/WorkerService.d.ts +1 -0
- package/dist/services/user/WorkerService.js +52 -44
- package/dist/services/user/WorkerService.js.map +1 -1
- package/package.json +1 -1
- package/prisma/schema.prisma +44 -47
|
@@ -30,6 +30,7 @@ export declare const schemaUserOperatorCreatePayload: z.ZodObject<{
|
|
|
30
30
|
}>;
|
|
31
31
|
address: z.ZodOptional<z.ZodString>;
|
|
32
32
|
email: z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>;
|
|
33
|
+
parentUserId: z.ZodOptional<z.ZodNumber>;
|
|
33
34
|
status: z.ZodBoolean;
|
|
34
35
|
}, "strip", z.ZodTypeAny, {
|
|
35
36
|
status: boolean;
|
|
@@ -43,6 +44,7 @@ export declare const schemaUserOperatorCreatePayload: z.ZodObject<{
|
|
|
43
44
|
username: string;
|
|
44
45
|
password: string;
|
|
45
46
|
address?: string | undefined;
|
|
47
|
+
parentUserId?: number | undefined;
|
|
46
48
|
}, {
|
|
47
49
|
status: boolean;
|
|
48
50
|
firstname: string;
|
|
@@ -55,6 +57,7 @@ export declare const schemaUserOperatorCreatePayload: z.ZodObject<{
|
|
|
55
57
|
username: string;
|
|
56
58
|
password: string;
|
|
57
59
|
address?: string | undefined;
|
|
60
|
+
parentUserId?: number | undefined;
|
|
58
61
|
}>;
|
|
59
62
|
operator: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
60
63
|
props: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
@@ -73,6 +76,7 @@ export declare const schemaUserOperatorCreatePayload: z.ZodObject<{
|
|
|
73
76
|
username: string;
|
|
74
77
|
password: string;
|
|
75
78
|
address?: string | undefined;
|
|
79
|
+
parentUserId?: number | undefined;
|
|
76
80
|
};
|
|
77
81
|
}, {
|
|
78
82
|
operator: {};
|
|
@@ -89,6 +93,7 @@ export declare const schemaUserOperatorCreatePayload: z.ZodObject<{
|
|
|
89
93
|
username: string;
|
|
90
94
|
password: string;
|
|
91
95
|
address?: string | undefined;
|
|
96
|
+
parentUserId?: number | undefined;
|
|
92
97
|
};
|
|
93
98
|
}>;
|
|
94
99
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -111,6 +116,7 @@ export declare const schemaUserOperatorCreatePayload: z.ZodObject<{
|
|
|
111
116
|
username: string;
|
|
112
117
|
password: string;
|
|
113
118
|
address?: string | undefined;
|
|
119
|
+
parentUserId?: number | undefined;
|
|
114
120
|
};
|
|
115
121
|
};
|
|
116
122
|
}, {
|
|
@@ -133,6 +139,7 @@ export declare const schemaUserOperatorCreatePayload: z.ZodObject<{
|
|
|
133
139
|
username: string;
|
|
134
140
|
password: string;
|
|
135
141
|
address?: string | undefined;
|
|
142
|
+
parentUserId?: number | undefined;
|
|
136
143
|
};
|
|
137
144
|
};
|
|
138
145
|
}>;
|
|
@@ -167,6 +174,7 @@ export declare const schemaUserOperatorUpdatePayload: z.ZodObject<{
|
|
|
167
174
|
phoneNumber: string;
|
|
168
175
|
}>;
|
|
169
176
|
username: z.ZodString;
|
|
177
|
+
parentUserId: z.ZodOptional<z.ZodNumber>;
|
|
170
178
|
password: z.ZodOptional<z.ZodString>;
|
|
171
179
|
}, "strip", z.ZodTypeAny, {
|
|
172
180
|
status: boolean;
|
|
@@ -179,6 +187,7 @@ export declare const schemaUserOperatorUpdatePayload: z.ZodObject<{
|
|
|
179
187
|
};
|
|
180
188
|
username: string;
|
|
181
189
|
address?: string | undefined;
|
|
190
|
+
parentUserId?: number | undefined;
|
|
182
191
|
password?: string | undefined;
|
|
183
192
|
}, {
|
|
184
193
|
status: boolean;
|
|
@@ -191,6 +200,7 @@ export declare const schemaUserOperatorUpdatePayload: z.ZodObject<{
|
|
|
191
200
|
};
|
|
192
201
|
username: string;
|
|
193
202
|
address?: string | undefined;
|
|
203
|
+
parentUserId?: number | undefined;
|
|
194
204
|
password?: string | undefined;
|
|
195
205
|
}>;
|
|
196
206
|
operator: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
@@ -209,6 +219,7 @@ export declare const schemaUserOperatorUpdatePayload: z.ZodObject<{
|
|
|
209
219
|
};
|
|
210
220
|
username: string;
|
|
211
221
|
address?: string | undefined;
|
|
222
|
+
parentUserId?: number | undefined;
|
|
212
223
|
password?: string | undefined;
|
|
213
224
|
};
|
|
214
225
|
}, {
|
|
@@ -225,6 +236,7 @@ export declare const schemaUserOperatorUpdatePayload: z.ZodObject<{
|
|
|
225
236
|
};
|
|
226
237
|
username: string;
|
|
227
238
|
address?: string | undefined;
|
|
239
|
+
parentUserId?: number | undefined;
|
|
228
240
|
password?: string | undefined;
|
|
229
241
|
};
|
|
230
242
|
}>;
|
|
@@ -247,6 +259,7 @@ export declare const schemaUserOperatorUpdatePayload: z.ZodObject<{
|
|
|
247
259
|
};
|
|
248
260
|
username: string;
|
|
249
261
|
address?: string | undefined;
|
|
262
|
+
parentUserId?: number | undefined;
|
|
250
263
|
password?: string | undefined;
|
|
251
264
|
};
|
|
252
265
|
};
|
|
@@ -269,6 +282,7 @@ export declare const schemaUserOperatorUpdatePayload: z.ZodObject<{
|
|
|
269
282
|
};
|
|
270
283
|
username: string;
|
|
271
284
|
address?: string | undefined;
|
|
285
|
+
parentUserId?: number | undefined;
|
|
272
286
|
password?: string | undefined;
|
|
273
287
|
};
|
|
274
288
|
};
|
|
@@ -29,6 +29,7 @@ export declare const schemaUserRetailerCreatePayload: z.ZodObject<{
|
|
|
29
29
|
}>;
|
|
30
30
|
address: z.ZodOptional<z.ZodString>;
|
|
31
31
|
email: z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>;
|
|
32
|
+
parentUserId: z.ZodOptional<z.ZodNumber>;
|
|
32
33
|
status: z.ZodBoolean;
|
|
33
34
|
}, "strip", z.ZodTypeAny, {
|
|
34
35
|
status: boolean;
|
|
@@ -42,6 +43,7 @@ export declare const schemaUserRetailerCreatePayload: z.ZodObject<{
|
|
|
42
43
|
username: string;
|
|
43
44
|
password: string;
|
|
44
45
|
address?: string | undefined;
|
|
46
|
+
parentUserId?: number | undefined;
|
|
45
47
|
}, {
|
|
46
48
|
status: boolean;
|
|
47
49
|
firstname: string;
|
|
@@ -54,6 +56,7 @@ export declare const schemaUserRetailerCreatePayload: z.ZodObject<{
|
|
|
54
56
|
username: string;
|
|
55
57
|
password: string;
|
|
56
58
|
address?: string | undefined;
|
|
59
|
+
parentUserId?: number | undefined;
|
|
57
60
|
}>;
|
|
58
61
|
retailer: z.ZodObject<{
|
|
59
62
|
code: z.ZodString;
|
|
@@ -108,6 +111,7 @@ export declare const schemaUserRetailerCreatePayload: z.ZodObject<{
|
|
|
108
111
|
username: string;
|
|
109
112
|
password: string;
|
|
110
113
|
address?: string | undefined;
|
|
114
|
+
parentUserId?: number | undefined;
|
|
111
115
|
};
|
|
112
116
|
}, {
|
|
113
117
|
retailer: {
|
|
@@ -133,6 +137,7 @@ export declare const schemaUserRetailerCreatePayload: z.ZodObject<{
|
|
|
133
137
|
username: string;
|
|
134
138
|
password: string;
|
|
135
139
|
address?: string | undefined;
|
|
140
|
+
parentUserId?: number | undefined;
|
|
136
141
|
};
|
|
137
142
|
}>;
|
|
138
143
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -164,6 +169,7 @@ export declare const schemaUserRetailerCreatePayload: z.ZodObject<{
|
|
|
164
169
|
username: string;
|
|
165
170
|
password: string;
|
|
166
171
|
address?: string | undefined;
|
|
172
|
+
parentUserId?: number | undefined;
|
|
167
173
|
};
|
|
168
174
|
};
|
|
169
175
|
}, {
|
|
@@ -195,6 +201,7 @@ export declare const schemaUserRetailerCreatePayload: z.ZodObject<{
|
|
|
195
201
|
username: string;
|
|
196
202
|
password: string;
|
|
197
203
|
address?: string | undefined;
|
|
204
|
+
parentUserId?: number | undefined;
|
|
198
205
|
};
|
|
199
206
|
};
|
|
200
207
|
}>;
|
|
@@ -229,6 +236,7 @@ export declare const schemaUserRetailerUpdatePayload: z.ZodObject<{
|
|
|
229
236
|
phoneNumber: string;
|
|
230
237
|
}>;
|
|
231
238
|
username: z.ZodString;
|
|
239
|
+
parentUserId: z.ZodOptional<z.ZodNumber>;
|
|
232
240
|
password: z.ZodOptional<z.ZodString>;
|
|
233
241
|
}, "strip", z.ZodTypeAny, {
|
|
234
242
|
status: boolean;
|
|
@@ -241,6 +249,7 @@ export declare const schemaUserRetailerUpdatePayload: z.ZodObject<{
|
|
|
241
249
|
};
|
|
242
250
|
username: string;
|
|
243
251
|
address?: string | undefined;
|
|
252
|
+
parentUserId?: number | undefined;
|
|
244
253
|
password?: string | undefined;
|
|
245
254
|
}, {
|
|
246
255
|
status: boolean;
|
|
@@ -253,6 +262,7 @@ export declare const schemaUserRetailerUpdatePayload: z.ZodObject<{
|
|
|
253
262
|
};
|
|
254
263
|
username: string;
|
|
255
264
|
address?: string | undefined;
|
|
265
|
+
parentUserId?: number | undefined;
|
|
256
266
|
password?: string | undefined;
|
|
257
267
|
}>;
|
|
258
268
|
retailer: z.ZodObject<{
|
|
@@ -307,6 +317,7 @@ export declare const schemaUserRetailerUpdatePayload: z.ZodObject<{
|
|
|
307
317
|
};
|
|
308
318
|
username: string;
|
|
309
319
|
address?: string | undefined;
|
|
320
|
+
parentUserId?: number | undefined;
|
|
310
321
|
password?: string | undefined;
|
|
311
322
|
};
|
|
312
323
|
}, {
|
|
@@ -332,6 +343,7 @@ export declare const schemaUserRetailerUpdatePayload: z.ZodObject<{
|
|
|
332
343
|
};
|
|
333
344
|
username: string;
|
|
334
345
|
address?: string | undefined;
|
|
346
|
+
parentUserId?: number | undefined;
|
|
335
347
|
password?: string | undefined;
|
|
336
348
|
};
|
|
337
349
|
}>;
|
|
@@ -363,6 +375,7 @@ export declare const schemaUserRetailerUpdatePayload: z.ZodObject<{
|
|
|
363
375
|
};
|
|
364
376
|
username: string;
|
|
365
377
|
address?: string | undefined;
|
|
378
|
+
parentUserId?: number | undefined;
|
|
366
379
|
password?: string | undefined;
|
|
367
380
|
};
|
|
368
381
|
};
|
|
@@ -394,6 +407,7 @@ export declare const schemaUserRetailerUpdatePayload: z.ZodObject<{
|
|
|
394
407
|
};
|
|
395
408
|
username: string;
|
|
396
409
|
address?: string | undefined;
|
|
410
|
+
parentUserId?: number | undefined;
|
|
397
411
|
password?: string | undefined;
|
|
398
412
|
};
|
|
399
413
|
};
|
|
@@ -29,6 +29,7 @@ export declare const schemaUserWorkerCreatePayload: z.ZodObject<{
|
|
|
29
29
|
}>;
|
|
30
30
|
address: z.ZodOptional<z.ZodString>;
|
|
31
31
|
email: z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>;
|
|
32
|
+
parentUserId: z.ZodOptional<z.ZodNumber>;
|
|
32
33
|
status: z.ZodBoolean;
|
|
33
34
|
}, "strip", z.ZodTypeAny, {
|
|
34
35
|
status: boolean;
|
|
@@ -42,6 +43,7 @@ export declare const schemaUserWorkerCreatePayload: z.ZodObject<{
|
|
|
42
43
|
username: string;
|
|
43
44
|
password: string;
|
|
44
45
|
address?: string | undefined;
|
|
46
|
+
parentUserId?: number | undefined;
|
|
45
47
|
}, {
|
|
46
48
|
status: boolean;
|
|
47
49
|
firstname: string;
|
|
@@ -54,6 +56,7 @@ export declare const schemaUserWorkerCreatePayload: z.ZodObject<{
|
|
|
54
56
|
username: string;
|
|
55
57
|
password: string;
|
|
56
58
|
address?: string | undefined;
|
|
59
|
+
parentUserId?: number | undefined;
|
|
57
60
|
}>;
|
|
58
61
|
worker: z.ZodObject<{
|
|
59
62
|
remark: z.ZodString;
|
|
@@ -88,6 +91,7 @@ export declare const schemaUserWorkerCreatePayload: z.ZodObject<{
|
|
|
88
91
|
username: string;
|
|
89
92
|
password: string;
|
|
90
93
|
address?: string | undefined;
|
|
94
|
+
parentUserId?: number | undefined;
|
|
91
95
|
};
|
|
92
96
|
}, {
|
|
93
97
|
worker: {
|
|
@@ -108,6 +112,7 @@ export declare const schemaUserWorkerCreatePayload: z.ZodObject<{
|
|
|
108
112
|
username: string;
|
|
109
113
|
password: string;
|
|
110
114
|
address?: string | undefined;
|
|
115
|
+
parentUserId?: number | undefined;
|
|
111
116
|
};
|
|
112
117
|
}>;
|
|
113
118
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -134,6 +139,7 @@ export declare const schemaUserWorkerCreatePayload: z.ZodObject<{
|
|
|
134
139
|
username: string;
|
|
135
140
|
password: string;
|
|
136
141
|
address?: string | undefined;
|
|
142
|
+
parentUserId?: number | undefined;
|
|
137
143
|
};
|
|
138
144
|
};
|
|
139
145
|
}, {
|
|
@@ -160,6 +166,7 @@ export declare const schemaUserWorkerCreatePayload: z.ZodObject<{
|
|
|
160
166
|
username: string;
|
|
161
167
|
password: string;
|
|
162
168
|
address?: string | undefined;
|
|
169
|
+
parentUserId?: number | undefined;
|
|
163
170
|
};
|
|
164
171
|
};
|
|
165
172
|
}>;
|
|
@@ -194,6 +201,7 @@ export declare const schemaUserWorkerUpdatePayload: z.ZodObject<{
|
|
|
194
201
|
phoneNumber: string;
|
|
195
202
|
}>;
|
|
196
203
|
username: z.ZodString;
|
|
204
|
+
parentUserId: z.ZodOptional<z.ZodNumber>;
|
|
197
205
|
password: z.ZodOptional<z.ZodString>;
|
|
198
206
|
}, "strip", z.ZodTypeAny, {
|
|
199
207
|
status: boolean;
|
|
@@ -206,6 +214,7 @@ export declare const schemaUserWorkerUpdatePayload: z.ZodObject<{
|
|
|
206
214
|
};
|
|
207
215
|
username: string;
|
|
208
216
|
address?: string | undefined;
|
|
217
|
+
parentUserId?: number | undefined;
|
|
209
218
|
password?: string | undefined;
|
|
210
219
|
}, {
|
|
211
220
|
status: boolean;
|
|
@@ -218,6 +227,7 @@ export declare const schemaUserWorkerUpdatePayload: z.ZodObject<{
|
|
|
218
227
|
};
|
|
219
228
|
username: string;
|
|
220
229
|
address?: string | undefined;
|
|
230
|
+
parentUserId?: number | undefined;
|
|
221
231
|
password?: string | undefined;
|
|
222
232
|
}>;
|
|
223
233
|
worker: z.ZodObject<{
|
|
@@ -252,6 +262,7 @@ export declare const schemaUserWorkerUpdatePayload: z.ZodObject<{
|
|
|
252
262
|
};
|
|
253
263
|
username: string;
|
|
254
264
|
address?: string | undefined;
|
|
265
|
+
parentUserId?: number | undefined;
|
|
255
266
|
password?: string | undefined;
|
|
256
267
|
};
|
|
257
268
|
}, {
|
|
@@ -272,6 +283,7 @@ export declare const schemaUserWorkerUpdatePayload: z.ZodObject<{
|
|
|
272
283
|
};
|
|
273
284
|
username: string;
|
|
274
285
|
address?: string | undefined;
|
|
286
|
+
parentUserId?: number | undefined;
|
|
275
287
|
password?: string | undefined;
|
|
276
288
|
};
|
|
277
289
|
}>;
|
|
@@ -298,6 +310,7 @@ export declare const schemaUserWorkerUpdatePayload: z.ZodObject<{
|
|
|
298
310
|
};
|
|
299
311
|
username: string;
|
|
300
312
|
address?: string | undefined;
|
|
313
|
+
parentUserId?: number | undefined;
|
|
301
314
|
password?: string | undefined;
|
|
302
315
|
};
|
|
303
316
|
};
|
|
@@ -324,6 +337,7 @@ export declare const schemaUserWorkerUpdatePayload: z.ZodObject<{
|
|
|
324
337
|
};
|
|
325
338
|
username: string;
|
|
326
339
|
address?: string | undefined;
|
|
340
|
+
parentUserId?: number | undefined;
|
|
327
341
|
password?: string | undefined;
|
|
328
342
|
};
|
|
329
343
|
};
|
|
@@ -367,21 +367,31 @@ const AccountService = (props) => {
|
|
|
367
367
|
const ownerUserId = item?.owner_user_id ?? 0;
|
|
368
368
|
const businessId = item?.business_id ?? 0;
|
|
369
369
|
const businessService = (0, services_1.BusinessService)({ ...rest, accountId: Number(accountId) });
|
|
370
|
-
const userService =
|
|
370
|
+
// const userService = UserService({ ...rest, accountId: Number(accountId), userType: "administrator" })
|
|
371
|
+
const userModel = (0, models_1.UserModel)({ ...rest });
|
|
371
372
|
let responseBusiness = [];
|
|
372
373
|
let responseUser = [];
|
|
373
374
|
// remove business
|
|
374
375
|
if (businessId) {
|
|
375
376
|
responseBusiness = await businessService.removeBusinesses({ businessIds: [BigInt(businessId)] });
|
|
376
377
|
}
|
|
377
|
-
// remove
|
|
378
|
+
// remove all users (administrator, etc...)
|
|
378
379
|
if (ownerUserId) {
|
|
379
|
-
|
|
380
|
+
const responseUsers = await userModel.remove({
|
|
381
|
+
// ids: [Number(ownerUserId)]
|
|
382
|
+
where: {
|
|
383
|
+
[`${models_1.ModelUserFields.accountid}`]: accountId
|
|
384
|
+
}
|
|
385
|
+
});
|
|
386
|
+
responseUser = responseUsers.map((i) => {
|
|
387
|
+
delete i.login_password;
|
|
388
|
+
return i;
|
|
389
|
+
});
|
|
380
390
|
}
|
|
381
391
|
response.push({
|
|
382
392
|
...item,
|
|
383
393
|
business: responseBusiness.length > 0 ? responseBusiness[0] : {},
|
|
384
|
-
|
|
394
|
+
users: responseUser
|
|
385
395
|
});
|
|
386
396
|
}));
|
|
387
397
|
return response;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountService.js","sourceRoot":"","sources":["../../../src/services/account/AccountService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport { z } from \"zod\";\n\nimport {\n ModelUserFields,\n ModelAccountFields,\n AccountModel,\n ModelUserBranchFields,\n ModelBusinessFields,\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\nimport { ServiceFactory } from \"@/lib\"\n\nimport {\n BusinessService,\n BusinessCreateProps,\n UserService,\n UserCreateProps,\n AccessKeyService\n} from \"@/services\";\n\nexport type AccountServiceProps = DefaultServiceProps & {};\n\nexport type AccountGetProps = QueryGet & {\n id: number,\n // datatypes: AccountDataType[]\n};\n\nexport type AccountListProps = QueryList & {\n // datatypes: AccountDataType[]\n};\n\nexport type AccountRemoveProps = {\n accountIds: BigInt[]\n};\n\nexport type Account = {\n accountId: number,\n name: string,\n accountCode?: string, // optional - skip for auto generation\n businessId: number,\n ownerUserId: number,\n status: boolean\n}\n\nexport type AccountCreateProps = {\n data: Omit<Account, \"accountId\" | \"businessId\" | \"ownerUserId\"> & {\n administrator: Omit<UserCreateProps[\"data\"][\"user\"], \"status\">,\n business: Omit<BusinessCreateProps[\"data\"], \"status\">\n }\n}\n\nexport type AccountUpdateProps = {\n accountId: number,\n data: Omit<Account, \"accountId\" | \"ownerUserId\">\n}\n\nconst getCreatePayload = (data: AccountCreateProps[\"data\"], accountCode: string = \"\") => {\n\n return {\n [`${ModelAccountFields.name}`]: data.name,\n [`${ModelAccountFields.status}`]: Boolean(data.status),\n [`${ModelAccountFields.account_code}`]: accountCode\n }\n\n}\n\nconst getCreateUpdatePayload = (businessId: number, ownerUserId: number) => {\n\n return {\n // [`${ModelAccountFields.account_id}`]: data.accountId,\n [`${ModelAccountFields.business_id}`]: businessId,\n [`${ModelAccountFields.owner_user_id}`]: ownerUserId,\n }\n\n}\n\nconst getUpdatePayload = (data: AccountUpdateProps[\"data\"], accountCode: string = \"\") => {\n\n return {\n // [`${ModelAccountFields.account_id}`]: accoundId,\n [`${ModelAccountFields.business_id}`]: data.businessId,\n [`${ModelAccountFields.name}`]: data.name,\n ...(accountCode ? { [`${ModelAccountFields.account_code}`]: data.accountCode } : {}),\n [`${ModelAccountFields.status}`]: Boolean(data.status)\n }\n\n}\n\nlet mainSqlSelect = {\n [`acc.${ModelAccountFields.account_id}`]: \"account_id\",\n [`acc.${ModelAccountFields.business_id}`]: \"business_id\",\n [`acc.${ModelAccountFields.name}`]: \"name\",\n [`acc.${ModelAccountFields.account_code}`]: \"account_code\",\n [`acc.${ModelAccountFields.status}`]: \"account_status\",\n}\n\nlet businessSqlSelect = {\n [`bus.${ModelBusinessFields.address_1}`]: \"address_1\",\n [`bus.${ModelBusinessFields.address_2}`]: \"address_2\",\n [`bus.${ModelBusinessFields.company_contact}`]: \"company_contact\",\n [`bus.${ModelBusinessFields.company_name}`]: \"company_name\",\n [`bus.${ModelBusinessFields.email}`]: \"email\",\n [`bus.${ModelBusinessFields.area_id}`]: \"area_id\",\n [`bussarea.${ModelAreaFields.area_name}`]: \"area_name\",\n [`bus.${ModelBusinessFields.state_id}`]: \"state_id\",\n [`bussstate.${ModelStateFields.state_name}`]: \"state_name\",\n [`busscoun.${ModelCountryFields.country_name}`]: \"country_name\",\n [`bus.${ModelBusinessFields.country_id}`]: \"country_id\",\n [`bus.${ModelBusinessFields.postcode}`]: \"postcode\",\n [`bus.${ModelBusinessFields.registration_number}`]: \"registration_number\",\n [`bus.${ModelBusinessFields.status}`]: \"business_status\",\n [`bus.${ModelBusinessFields.website}`]: \"website\",\n}\n\nlet ownerSqlSelectItem = {\n [`usrowner.${ModelUserFields.user_id}`]: \"user_id\",\n [`usrowner.${ModelUserFields.login_username}`]: \"login_username\",\n [`usrowner.${ModelUserFields.user_type}`]: \"user_type\",\n [`usrowner.${ModelUserFields.firstname}`]: \"firstname\",\n [`usrowner.${ModelUserFields.lastname}`]: \"lastname\",\n [`CONCAT(usrowner.${ModelUserFields.contact_country_code}, usrowner.${ModelUserFields.contact_phone_number})`]: \"contact\",\n [`usrowner.${ModelUserFields.contact_country_code}`]: \"contact_country_code\",\n [`usrowner.${ModelUserFields.contact_phone_number}`]: \"contact_phone_number\",\n [`usrowner.${ModelUserFields.email}`]: \"email\",\n [`usrowner.${ModelUserFields.address}`]: \"address\",\n [`usrowner.${ModelUserFields.status}`]: \"status\",\n}\n\nlet ownerSqlSelect = {\n [`COALESCE(\n JSONB_BUILD_OBJECT(\n ${Object.entries(ownerSqlSelectItem).map(([key, alias]) => `'${alias}', ${key}`).join(\", \")}\n ),\n '{}'::jsonb\n )`]: \"owner\"\n}\n\nlet defaultSqlSelect = {\n [`acc.${ModelAccountFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`acc.${ModelAccountFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`acc.${ModelAccountFields.isdelete}`]: \"isdelete\",\n [`acc.${ModelAccountFields.istrash}`]: \"istrash\",\n [`acc.${ModelAccountFields.accountid}`]: \"accountid\",\n}\n\n// Example reserved words for subdomains (account code)\nexport const accountCodeReservedWords = [\n \"www\", \"web\", \"api\", \"admin\", \"app\", \"mail\", \"support\", \"help\", \"docs\", \"dashboard\",\n \"billing\", \"login\", \"logout\", \"signup\", \"register\", \"auth\", \"account\", \"user\", \"users\", \"team\",\n \"teams\", \"settings\", \"config\", \"configuration\", \"system\", \"internal\", \"status\", \"test\", \"demo\", \"staging\",\n \"dev\", \"development\", \"prod\", \"production\", \"root\", \"home\", \"index\", \"static\", \"assets\", \"public\",\n \"beta\", \"alpha\", \"sandbox\", \"trial\", \"guest\", \"owner\", \"manager\", \"administrator\", \"moderator\", \"operator\",\n \"service\", \"api-docs\", \"portal\", \"console\", \"control\", \"ops\", \"supportdesk\", \"helpdesk\", \"contact\", \"feedback\",\n \"security\", \"privacy\", \"terms\", \"policy\", \"legal\", \"about\", \"company\", \"teaminfo\", \"partners\", \"affiliates\",\n \"news\", \"blog\", \"media\", \"press\", \"events\", \"calendar\", \"forum\", \"community\", \"chat\", \"messaging\",\n \"notifications\", \"alerts\", \"reports\", \"analytics\", \"metrics\", \"logs\", \"history\", \"archive\", \"backup\", \"restore\",\n \"files\", \"documents\", \"resources\", \"library\", \"gallery\", \"images\", \"videos\", \"downloads\", \"uploads\", \"templates\"\n];\n\n// Zod schema for subdomain (account code)\nexport const accountCodeSchema = z\n .string()\n .min(5, { message: \"Account code must be at least 5 characters\" })\n .max(63, { message: \"Account code must be at most 63 characters\" })\n .regex(\n /^[a-z0-9]([a-z0-9-]{3,61}[a-z0-9])$/,\n // Regex explanation:\n // ^[a-z0-9] -> first character must be a lowercase letter or number\n // ([a-z0-9-]{3,61} -> middle characters can be letters, numbers, or hyphens, 3–61 characters\n // [a-z0-9])$ -> last character must be a lowercase letter or number\n // Total length = 5–63 characters, no special symbols except hyphen in the middle\n \"Account code can only contain lowercase letters, numbers, and hyphens, and cannot start or end with a hyphen\"\n )\n .transform((val) => val.toLowerCase().trim()) // normalize\n .refine((val) => !accountCodeReservedWords.includes(val), {\n message: \"This account code is reserved. Please choose another one\",\n });\n\nexport const AccountService = (props: AccountServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const accountModel = AccountModel({ ...rest })\n const accessKeyService = AccessKeyService({ ...rest, accessKeyUserType: \"administrator\" })\n\n // generate account code (`{random 5 digit}{first 7 digit of timestamp}`)\n function generateAccountCode(): string {\n const timestamp = Date.now().toString();\n const last7 = timestamp.slice(-7); // last 7 digits of timestamp\n const prefix = Math.floor(Math.random() * 100000) // 0–99999\n .toString()\n .padStart(5, \"0\"); // ensure 5 digits\n return prefix + last7;\n }\n\n const checkAccoutCodeIsUsed = async (\n accountCode: Account[\"accountCode\"],\n selfAccountId?: Account[\"accountId\"]\n ) => {\n\n const { data } = await listAccounts({\n limit: 1,\n offset: 0,\n sortfield: `${ModelAccountFields.account_id}`,\n sortorder: \"ASC\",\n filters: [{\n field: `${ModelAccountFields.account_code}`,\n operator: \"=\",\n value: accountCode\n }],\n datatypes: []\n })\n\n if (data.length <= 0) return false\n\n if (selfAccountId) {\n\n if (Number(data[0].account_id) === Number(selfAccountId)) {\n return false\n } else {\n return true\n }\n\n } else {\n\n return true\n }\n\n }\n\n const validateAccountCodeIsUsed = async (accountCode: string) => {\n\n const accountCodeIsUsed = await checkAccoutCodeIsUsed(accountCode)\n\n if (accountCodeIsUsed === true) {\n throwError(`Account code has been used: ${accountCode}`)\n }\n\n }\n\n const validateAccountCodeFormat = (accountCode: string) => {\n try {\n return accountCodeSchema.parse(accountCode); // throws if invalid\n } catch (err) {\n if (err instanceof z.ZodError) {\n throw new Error(\n `Invalid account code: \"${accountCode}\". ` +\n err.errors.map((e) => e.message).join(\"; \")\n );\n }\n throw err;\n }\n };\n\n const createAccount = async ({ data }: AccountCreateProps) => {\n\n const administratorData = data?.administrator ?? {}\n\n // pre validation first\n if (administratorData?.contact) {\n\n const validateUserService = UserService({ ...rest, userType: \"administrator\" })\n\n // validate the contact\n await validateUserService.validateUserContact(administratorData.contact.countryCode, administratorData.contact.phoneNumber)\n\n }\n\n let accountCode = data?.accountCode ?? \"\";\n\n // auto generate if not specify\n if (accountCode === \"\") {\n accountCode = generateAccountCode()\n }\n\n // validate the account code format\n validateAccountCodeFormat(accountCode)\n\n // check account code cannot duplicated\n await validateAccountCodeIsUsed(accountCode)\n\n // create account\n const _data = getCreatePayload(data, accountCode)\n\n if (!_data) {\n throw new Error(`Invalid create account payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await accountModel.create({ data: _data })\n\n const newAccountId = response?.account_id ?? 0\n\n const businessService = BusinessService({ ...rest, accountId: Number(newAccountId) })\n const userService = UserService({ ...rest, accountId: Number(newAccountId), userType: \"administrator\" })\n\n let accountBusinessId = 0\n let accountUserId = 0\n let accountId = 0\n\n // create user(administrator)\n if (administratorData?.loginUsername) {\n\n let userData = administratorData\n\n let userPayload: UserCreateProps = {\n userType: \"administrator\",\n data: {\n user: {\n address: userData.address,\n contact: {\n countryCode: userData.contact.countryCode,\n phoneNumber: userData.contact.phoneNumber\n },\n email: userData.email,\n firstname: userData.firstname,\n lastname: userData.lastname,\n loginPassword: userData.loginPassword,\n loginUsername: userData.loginUsername,\n status: true // always true for first time\n },\n administrator: {\n isOwner: true // first create must be owner\n },\n props: {\n locationIds: []\n }\n }\n }\n\n const responseOwner = await userService.createUser(userPayload)\n\n accountUserId = Number(responseOwner?.user_id) ?? 0\n accountId = Number(responseOwner?.accountid) ?? 0\n\n }\n\n // create default administrator access key\n await accessKeyService.createAccessKey({\n data: {\n userId: accountUserId,\n isDefault: true,\n overrideAccountId: accountId\n }\n })\n\n // create business\n if (data?.business) {\n\n let businessData = data?.business ?? {}\n\n let businessPayload: BusinessCreateProps = {\n data: {\n address1: businessData.address1,\n address2: businessData.address2,\n areaId: businessData.areaId,\n companyContact: businessData.companyContact,\n companyName: businessData.companyName,\n countryId: businessData.countryId,\n email: businessData.email,\n postcode: businessData.postcode,\n registrationNumber: businessData.registrationNumber,\n stateId: businessData.stateId,\n website: businessData.website,\n status: true // always true for first time\n }\n }\n\n const responseBusiness = await businessService.createBusiness(businessPayload)\n\n accountBusinessId = Number(responseBusiness?.business_id) ?? 0\n\n }\n\n // update account for additional info\n const createUpdatedata = getCreateUpdatePayload(accountBusinessId, accountUserId)\n\n if (!createUpdatedata) {\n throw new Error(`Invalid create update account payload: ${JSON.stringify(_data)}`);\n }\n\n await accountModel.update({ id: Number(newAccountId), data: createUpdatedata })\n\n return await getAccount({ id: Number(newAccountId), datatypes: [] })\n }\n\n const updateAccount = async ({ accountId, data }: AccountUpdateProps) => {\n\n // only operator token/access key allowed to access\n // if (rest.isOperator !== true) throwError(`Only operator token/access key allowed to perform`)\n\n let accountCode = data?.accountCode ?? \"\";\n\n // check the override account code needed\n if (accountCode) {\n\n // validate the account code format\n validateAccountCodeFormat(accountCode)\n\n // check account code cannot duplicated\n await validateAccountCodeIsUsed(accountCode)\n }\n\n // const accountCodeIsUsed = await checkAccoutCodeIsUsed(data.accountCode, accountId)\n\n // if (accountCodeIsUsed === true) throwError(`Account code has been used: ${data.accountCode}`)\n\n const _data = getUpdatePayload(data, accountCode)\n\n if (!_data) {\n throw new Error(`Invalid update account payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await accountModel.update({ where: { [`${ModelAccountFields.account_id}`]: accountId }, data: _data })\n\n return await getAccount({ id: accountId, datatypes: [] })\n }\n\n const getAccount = async ({ id, datatypes = [] }: AccountGetProps) => {\n\n // only operator token/access key allowed to access\n // if (rest.isOperator !== true) throwError(`Only operator token/access key allowed to perform`)\n\n let { data } = await listAccounts({\n limit: 1,\n offset: 0,\n filters: [{ field: \"account_id\", operator: \"=\", value: id }],\n sortfield: \"account_id\",\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listAccounts = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [] }: AccountListProps) => {\n\n // only operator token/access key allowed to access\n // if (rest.isOperator !== true) throwError(`Only operator token/access key allowed to perform`)\n\n let data = []\n\n let sqlSelect = [\n `COUNT(acc.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, businessSqlSelect),\n buildSqlSelect(``, ownerSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"acc\", \"businesses\", \"bus\", [\"acc.business_id = bus.business_id\", \"bus.isdelete = false\", \"bus.istrash = false\"]),\n buildSqlRelation(\"left\", \"bus\", \"states\", \"bussstate\", [\"bus.state_id = bussstate.state_id\", \"bussstate.isdelete = false\", \"bussstate.istrash = false\"]),\n buildSqlRelation(\"left\", \"bus\", \"countries\", \"busscoun\", [\"bus.country_id = busscoun.country_id\", \"busscoun.isdelete = false\", \"busscoun.istrash = false\"]),\n buildSqlRelation(\"left\", \"bus\", \"areas\", \"bussarea\", [\"bus.area_id = bussarea.area_id\", \"bussarea.isdelete = false\", \"bussarea.istrash = false\"]),\n buildSqlRelation(\"left\", \"acc\", \"users\", \"usrowner\", [\"acc.owner_user_id = usrowner.user_id\", \"usrowner.isdelete = false\", \"usrowner.istrash = false\"]),\n buildSqlRelation(\"left\", \"acc\", \"users\", \"creator\", [\"acc.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"acc\", \"users\", \"updater\", [\"acc.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(businessSqlSelect),\n ...Object.keys(ownerSqlSelectItem),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = { ...mainSqlSelect, ...businessSqlSelect, ...ownerSqlSelectItem, ...defaultSqlSelect }\n\n let sqlWhere = [\n `acc.isdelete = false`,\n `acc.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: \"accounts\",\n mainAlias: \"acc\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: Boolean(rest.isOperator === true)\n })\n\n data = await accountModel.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 removeAccounts = async ({ accountIds }: AccountRemoveProps) => {\n\n // only operator token/access key allowed to access\n // if (rest.isOperator !== true) throwError(`Only operator token/access key allowed to perform`)\n\n if (!accountIds.length) throwError('accountIds is required');\n\n let accountResponse = await accountModel.remove({ where: { [`${ModelAccountFields.account_id}`]: { in: accountIds } } });\n\n let response: any[] = []\n\n await Promise.all(\n accountResponse.map(async (item) => {\n const accountId = item?.account_id ?? 0;\n const ownerUserId = item?.owner_user_id ?? 0;\n const businessId = item?.business_id ?? 0;\n\n const businessService = BusinessService({ ...rest, accountId: Number(accountId) })\n const userService = UserService({ ...rest, accountId: Number(accountId), userType: \"administrator\" })\n\n let responseBusiness: any[] = []\n let responseUser: any[] = []\n\n // remove business\n if (businessId) {\n responseBusiness = await businessService.removeBusinesses({ businessIds: [BigInt(businessId)] });\n }\n\n // remove user administrator\n if (ownerUserId) {\n responseUser = await userService.removeUsers({ ids: [BigInt(ownerUserId)] });\n }\n\n response.push({\n ...item,\n business: responseBusiness.length > 0 ? responseBusiness[0] : {},\n user: responseUser.length > 0 ? responseUser[0] : {}\n })\n\n })\n );\n\n return response\n\n };\n\n // const getDataTypes = () => {\n // return Object.values(accountDataTypes);\n // }\n\n // return {\n // // getAccount,\n // // createAccount,\n // // updateAccount,\n // // removeAccounts,\n // // listAccounts\n // // validateAccountCodeIsUsed: ServiceFactory(validateAccountCodeIsUsed, rest, \"validate account code is used\"),\n // getAccount: ServiceFactory([\"operator\"], \"AccountService\", getAccount, rest, \"get account\"),\n // createAccount: ServiceFactory([\"operator\"], \"AccountService\", createAccount, rest, \"create account\"),\n // updateAccount: ServiceFactory([\"operator\"], \"AccountService\", updateAccount, rest, \"update account\"),\n // removeAccounts: ServiceFactory([\"operator\"], \"AccountService\", removeAccounts, rest, \"remove accounts\"),\n // listAccounts: ServiceFactory([\"operator\"], \"AccountService\", listAccounts, rest, \"list accounts\"),\n // }\n\n const methodConfigs = {\n getAccount: { fn: getAccount, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get account\" },\n listAccounts: { fn: listAccounts, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"list accounts\" },\n createAccount: { fn: createAccount, allowUserTypes: [\"operator\"] as const, actionName: \"create account\" },\n updateAccount: { fn: updateAccount, allowUserTypes: [\"operator\"] as const, actionName: \"update account\" },\n removeAccounts: { fn: removeAccounts, allowUserTypes: [\"operator\"] as const, actionName: \"remove accounts\" },\n };\n\n return ServiceFactory(\"AccountService\", rest, methodConfigs);\n\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"AccountService.js","sourceRoot":"","sources":["../../../src/services/account/AccountService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport { z } from \"zod\";\n\nimport {\n ModelUserFields,\n ModelAccountFields,\n AccountModel,\n ModelUserBranchFields,\n ModelBusinessFields,\n ModelAreaFields,\n ModelStateFields,\n ModelCountryFields,\n UserModel,\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 { ServiceFactory } from \"@/lib\"\n\nimport {\n BusinessService,\n BusinessCreateProps,\n UserService,\n UserCreateProps,\n AccessKeyService\n} from \"@/services\";\n\nexport type AccountServiceProps = DefaultServiceProps & {};\n\nexport type AccountGetProps = QueryGet & {\n id: number,\n // datatypes: AccountDataType[]\n};\n\nexport type AccountListProps = QueryList & {\n // datatypes: AccountDataType[]\n};\n\nexport type AccountRemoveProps = {\n accountIds: BigInt[]\n};\n\nexport type Account = {\n accountId: number,\n name: string,\n accountCode?: string, // optional - skip for auto generation\n businessId: number,\n ownerUserId: number,\n status: boolean\n}\n\nexport type AccountCreateProps = {\n data: Omit<Account, \"accountId\" | \"businessId\" | \"ownerUserId\"> & {\n administrator: Omit<UserCreateProps[\"data\"][\"user\"], \"status\">,\n business: Omit<BusinessCreateProps[\"data\"], \"status\">\n }\n}\n\nexport type AccountUpdateProps = {\n accountId: number,\n data: Omit<Account, \"accountId\" | \"ownerUserId\">\n}\n\nconst getCreatePayload = (data: AccountCreateProps[\"data\"], accountCode: string = \"\") => {\n\n return {\n [`${ModelAccountFields.name}`]: data.name,\n [`${ModelAccountFields.status}`]: Boolean(data.status),\n [`${ModelAccountFields.account_code}`]: accountCode\n }\n\n}\n\nconst getCreateUpdatePayload = (businessId: number, ownerUserId: number) => {\n\n return {\n // [`${ModelAccountFields.account_id}`]: data.accountId,\n [`${ModelAccountFields.business_id}`]: businessId,\n [`${ModelAccountFields.owner_user_id}`]: ownerUserId,\n }\n\n}\n\nconst getUpdatePayload = (data: AccountUpdateProps[\"data\"], accountCode: string = \"\") => {\n\n return {\n // [`${ModelAccountFields.account_id}`]: accoundId,\n [`${ModelAccountFields.business_id}`]: data.businessId,\n [`${ModelAccountFields.name}`]: data.name,\n ...(accountCode ? { [`${ModelAccountFields.account_code}`]: data.accountCode } : {}),\n [`${ModelAccountFields.status}`]: Boolean(data.status)\n }\n\n}\n\nlet mainSqlSelect = {\n [`acc.${ModelAccountFields.account_id}`]: \"account_id\",\n [`acc.${ModelAccountFields.business_id}`]: \"business_id\",\n [`acc.${ModelAccountFields.name}`]: \"name\",\n [`acc.${ModelAccountFields.account_code}`]: \"account_code\",\n [`acc.${ModelAccountFields.status}`]: \"account_status\",\n}\n\nlet businessSqlSelect = {\n [`bus.${ModelBusinessFields.address_1}`]: \"address_1\",\n [`bus.${ModelBusinessFields.address_2}`]: \"address_2\",\n [`bus.${ModelBusinessFields.company_contact}`]: \"company_contact\",\n [`bus.${ModelBusinessFields.company_name}`]: \"company_name\",\n [`bus.${ModelBusinessFields.email}`]: \"email\",\n [`bus.${ModelBusinessFields.area_id}`]: \"area_id\",\n [`bussarea.${ModelAreaFields.area_name}`]: \"area_name\",\n [`bus.${ModelBusinessFields.state_id}`]: \"state_id\",\n [`bussstate.${ModelStateFields.state_name}`]: \"state_name\",\n [`busscoun.${ModelCountryFields.country_name}`]: \"country_name\",\n [`bus.${ModelBusinessFields.country_id}`]: \"country_id\",\n [`bus.${ModelBusinessFields.postcode}`]: \"postcode\",\n [`bus.${ModelBusinessFields.registration_number}`]: \"registration_number\",\n [`bus.${ModelBusinessFields.status}`]: \"business_status\",\n [`bus.${ModelBusinessFields.website}`]: \"website\",\n}\n\nlet ownerSqlSelectItem = {\n [`usrowner.${ModelUserFields.user_id}`]: \"user_id\",\n [`usrowner.${ModelUserFields.login_username}`]: \"login_username\",\n [`usrowner.${ModelUserFields.user_type}`]: \"user_type\",\n [`usrowner.${ModelUserFields.firstname}`]: \"firstname\",\n [`usrowner.${ModelUserFields.lastname}`]: \"lastname\",\n [`CONCAT(usrowner.${ModelUserFields.contact_country_code}, usrowner.${ModelUserFields.contact_phone_number})`]: \"contact\",\n [`usrowner.${ModelUserFields.contact_country_code}`]: \"contact_country_code\",\n [`usrowner.${ModelUserFields.contact_phone_number}`]: \"contact_phone_number\",\n [`usrowner.${ModelUserFields.email}`]: \"email\",\n [`usrowner.${ModelUserFields.address}`]: \"address\",\n [`usrowner.${ModelUserFields.status}`]: \"status\",\n}\n\nlet ownerSqlSelect = {\n [`COALESCE(\n JSONB_BUILD_OBJECT(\n ${Object.entries(ownerSqlSelectItem).map(([key, alias]) => `'${alias}', ${key}`).join(\", \")}\n ),\n '{}'::jsonb\n )`]: \"owner\"\n}\n\nlet defaultSqlSelect = {\n [`acc.${ModelAccountFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`acc.${ModelAccountFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`acc.${ModelAccountFields.isdelete}`]: \"isdelete\",\n [`acc.${ModelAccountFields.istrash}`]: \"istrash\",\n [`acc.${ModelAccountFields.accountid}`]: \"accountid\",\n}\n\n// Example reserved words for subdomains (account code)\nexport const accountCodeReservedWords = [\n \"www\", \"web\", \"api\", \"admin\", \"app\", \"mail\", \"support\", \"help\", \"docs\", \"dashboard\",\n \"billing\", \"login\", \"logout\", \"signup\", \"register\", \"auth\", \"account\", \"user\", \"users\", \"team\",\n \"teams\", \"settings\", \"config\", \"configuration\", \"system\", \"internal\", \"status\", \"test\", \"demo\", \"staging\",\n \"dev\", \"development\", \"prod\", \"production\", \"root\", \"home\", \"index\", \"static\", \"assets\", \"public\",\n \"beta\", \"alpha\", \"sandbox\", \"trial\", \"guest\", \"owner\", \"manager\", \"administrator\", \"moderator\", \"operator\",\n \"service\", \"api-docs\", \"portal\", \"console\", \"control\", \"ops\", \"supportdesk\", \"helpdesk\", \"contact\", \"feedback\",\n \"security\", \"privacy\", \"terms\", \"policy\", \"legal\", \"about\", \"company\", \"teaminfo\", \"partners\", \"affiliates\",\n \"news\", \"blog\", \"media\", \"press\", \"events\", \"calendar\", \"forum\", \"community\", \"chat\", \"messaging\",\n \"notifications\", \"alerts\", \"reports\", \"analytics\", \"metrics\", \"logs\", \"history\", \"archive\", \"backup\", \"restore\",\n \"files\", \"documents\", \"resources\", \"library\", \"gallery\", \"images\", \"videos\", \"downloads\", \"uploads\", \"templates\"\n];\n\n// Zod schema for subdomain (account code)\nexport const accountCodeSchema = z\n .string()\n .min(5, { message: \"Account code must be at least 5 characters\" })\n .max(63, { message: \"Account code must be at most 63 characters\" })\n .regex(\n /^[a-z0-9]([a-z0-9-]{3,61}[a-z0-9])$/,\n // Regex explanation:\n // ^[a-z0-9] -> first character must be a lowercase letter or number\n // ([a-z0-9-]{3,61} -> middle characters can be letters, numbers, or hyphens, 3–61 characters\n // [a-z0-9])$ -> last character must be a lowercase letter or number\n // Total length = 5–63 characters, no special symbols except hyphen in the middle\n \"Account code can only contain lowercase letters, numbers, and hyphens, and cannot start or end with a hyphen\"\n )\n .transform((val) => val.toLowerCase().trim()) // normalize\n .refine((val) => !accountCodeReservedWords.includes(val), {\n message: \"This account code is reserved. Please choose another one\",\n });\n\nexport const AccountService = (props: AccountServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const accountModel = AccountModel({ ...rest })\n const accessKeyService = AccessKeyService({ ...rest, accessKeyUserType: \"administrator\" })\n\n // generate account code (`{random 5 digit}{first 7 digit of timestamp}`)\n function generateAccountCode(): string {\n const timestamp = Date.now().toString();\n const last7 = timestamp.slice(-7); // last 7 digits of timestamp\n const prefix = Math.floor(Math.random() * 100000) // 0–99999\n .toString()\n .padStart(5, \"0\"); // ensure 5 digits\n return prefix + last7;\n }\n\n const checkAccoutCodeIsUsed = async (\n accountCode: Account[\"accountCode\"],\n selfAccountId?: Account[\"accountId\"]\n ) => {\n\n const { data } = await listAccounts({\n limit: 1,\n offset: 0,\n sortfield: `${ModelAccountFields.account_id}`,\n sortorder: \"ASC\",\n filters: [{\n field: `${ModelAccountFields.account_code}`,\n operator: \"=\",\n value: accountCode\n }],\n datatypes: []\n })\n\n if (data.length <= 0) return false\n\n if (selfAccountId) {\n\n if (Number(data[0].account_id) === Number(selfAccountId)) {\n return false\n } else {\n return true\n }\n\n } else {\n\n return true\n }\n\n }\n\n const validateAccountCodeIsUsed = async (accountCode: string) => {\n\n const accountCodeIsUsed = await checkAccoutCodeIsUsed(accountCode)\n\n if (accountCodeIsUsed === true) {\n throwError(`Account code has been used: ${accountCode}`)\n }\n\n }\n\n const validateAccountCodeFormat = (accountCode: string) => {\n try {\n return accountCodeSchema.parse(accountCode); // throws if invalid\n } catch (err) {\n if (err instanceof z.ZodError) {\n throw new Error(\n `Invalid account code: \"${accountCode}\". ` +\n err.errors.map((e) => e.message).join(\"; \")\n );\n }\n throw err;\n }\n };\n\n const createAccount = async ({ data }: AccountCreateProps) => {\n\n const administratorData = data?.administrator ?? {}\n\n // pre validation first\n if (administratorData?.contact) {\n\n const validateUserService = UserService({ ...rest, userType: \"administrator\" })\n\n // validate the contact\n await validateUserService.validateUserContact(administratorData.contact.countryCode, administratorData.contact.phoneNumber)\n\n }\n\n let accountCode = data?.accountCode ?? \"\";\n\n // auto generate if not specify\n if (accountCode === \"\") {\n accountCode = generateAccountCode()\n }\n\n // validate the account code format\n validateAccountCodeFormat(accountCode)\n\n // check account code cannot duplicated\n await validateAccountCodeIsUsed(accountCode)\n\n // create account\n const _data = getCreatePayload(data, accountCode)\n\n if (!_data) {\n throw new Error(`Invalid create account payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await accountModel.create({ data: _data })\n\n const newAccountId = response?.account_id ?? 0\n\n const businessService = BusinessService({ ...rest, accountId: Number(newAccountId) })\n const userService = UserService({ ...rest, accountId: Number(newAccountId), userType: \"administrator\" })\n\n let accountBusinessId = 0\n let accountUserId = 0\n let accountId = 0\n\n // create user(administrator)\n if (administratorData?.loginUsername) {\n\n let userData = administratorData\n\n let userPayload: UserCreateProps = {\n userType: \"administrator\",\n data: {\n user: {\n address: userData.address,\n contact: {\n countryCode: userData.contact.countryCode,\n phoneNumber: userData.contact.phoneNumber\n },\n email: userData.email,\n firstname: userData.firstname,\n lastname: userData.lastname,\n loginPassword: userData.loginPassword,\n loginUsername: userData.loginUsername,\n status: true // always true for first time\n },\n administrator: {\n isOwner: true // first create must be owner\n },\n props: {\n locationIds: []\n }\n }\n }\n\n const responseOwner = await userService.createUser(userPayload)\n\n accountUserId = Number(responseOwner?.user_id) ?? 0\n accountId = Number(responseOwner?.accountid) ?? 0\n\n }\n\n // create default administrator access key\n await accessKeyService.createAccessKey({\n data: {\n userId: accountUserId,\n isDefault: true,\n overrideAccountId: accountId\n }\n })\n\n // create business\n if (data?.business) {\n\n let businessData = data?.business ?? {}\n\n let businessPayload: BusinessCreateProps = {\n data: {\n address1: businessData.address1,\n address2: businessData.address2,\n areaId: businessData.areaId,\n companyContact: businessData.companyContact,\n companyName: businessData.companyName,\n countryId: businessData.countryId,\n email: businessData.email,\n postcode: businessData.postcode,\n registrationNumber: businessData.registrationNumber,\n stateId: businessData.stateId,\n website: businessData.website,\n status: true // always true for first time\n }\n }\n\n const responseBusiness = await businessService.createBusiness(businessPayload)\n\n accountBusinessId = Number(responseBusiness?.business_id) ?? 0\n\n }\n\n // update account for additional info\n const createUpdatedata = getCreateUpdatePayload(accountBusinessId, accountUserId)\n\n if (!createUpdatedata) {\n throw new Error(`Invalid create update account payload: ${JSON.stringify(_data)}`);\n }\n\n await accountModel.update({ id: Number(newAccountId), data: createUpdatedata })\n\n return await getAccount({ id: Number(newAccountId), datatypes: [] })\n }\n\n const updateAccount = async ({ accountId, data }: AccountUpdateProps) => {\n\n // only operator token/access key allowed to access\n // if (rest.isOperator !== true) throwError(`Only operator token/access key allowed to perform`)\n\n let accountCode = data?.accountCode ?? \"\";\n\n // check the override account code needed\n if (accountCode) {\n\n // validate the account code format\n validateAccountCodeFormat(accountCode)\n\n // check account code cannot duplicated\n await validateAccountCodeIsUsed(accountCode)\n }\n\n // const accountCodeIsUsed = await checkAccoutCodeIsUsed(data.accountCode, accountId)\n\n // if (accountCodeIsUsed === true) throwError(`Account code has been used: ${data.accountCode}`)\n\n const _data = getUpdatePayload(data, accountCode)\n\n if (!_data) {\n throw new Error(`Invalid update account payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await accountModel.update({ where: { [`${ModelAccountFields.account_id}`]: accountId }, data: _data })\n\n return await getAccount({ id: accountId, datatypes: [] })\n }\n\n const getAccount = async ({ id, datatypes = [] }: AccountGetProps) => {\n\n // only operator token/access key allowed to access\n // if (rest.isOperator !== true) throwError(`Only operator token/access key allowed to perform`)\n\n let { data } = await listAccounts({\n limit: 1,\n offset: 0,\n filters: [{ field: \"account_id\", operator: \"=\", value: id }],\n sortfield: \"account_id\",\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listAccounts = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [] }: AccountListProps) => {\n\n // only operator token/access key allowed to access\n // if (rest.isOperator !== true) throwError(`Only operator token/access key allowed to perform`)\n\n let data = []\n\n let sqlSelect = [\n `COUNT(acc.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, businessSqlSelect),\n buildSqlSelect(``, ownerSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"acc\", \"businesses\", \"bus\", [\"acc.business_id = bus.business_id\", \"bus.isdelete = false\", \"bus.istrash = false\"]),\n buildSqlRelation(\"left\", \"bus\", \"states\", \"bussstate\", [\"bus.state_id = bussstate.state_id\", \"bussstate.isdelete = false\", \"bussstate.istrash = false\"]),\n buildSqlRelation(\"left\", \"bus\", \"countries\", \"busscoun\", [\"bus.country_id = busscoun.country_id\", \"busscoun.isdelete = false\", \"busscoun.istrash = false\"]),\n buildSqlRelation(\"left\", \"bus\", \"areas\", \"bussarea\", [\"bus.area_id = bussarea.area_id\", \"bussarea.isdelete = false\", \"bussarea.istrash = false\"]),\n buildSqlRelation(\"left\", \"acc\", \"users\", \"usrowner\", [\"acc.owner_user_id = usrowner.user_id\", \"usrowner.isdelete = false\", \"usrowner.istrash = false\"]),\n buildSqlRelation(\"left\", \"acc\", \"users\", \"creator\", [\"acc.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"acc\", \"users\", \"updater\", [\"acc.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(businessSqlSelect),\n ...Object.keys(ownerSqlSelectItem),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = { ...mainSqlSelect, ...businessSqlSelect, ...ownerSqlSelectItem, ...defaultSqlSelect }\n\n let sqlWhere = [\n `acc.isdelete = false`,\n `acc.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: \"accounts\",\n mainAlias: \"acc\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: Boolean(rest.isOperator === true)\n })\n\n data = await accountModel.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 removeAccounts = async ({ accountIds }: AccountRemoveProps) => {\n\n // only operator token/access key allowed to access\n // if (rest.isOperator !== true) throwError(`Only operator token/access key allowed to perform`)\n\n if (!accountIds.length) throwError('accountIds is required');\n\n let accountResponse = await accountModel.remove({ where: { [`${ModelAccountFields.account_id}`]: { in: accountIds } } });\n\n let response: any[] = []\n\n await Promise.all(\n accountResponse.map(async (item) => {\n\n const accountId = item?.account_id ?? 0;\n const ownerUserId = item?.owner_user_id ?? 0;\n const businessId = item?.business_id ?? 0;\n\n const businessService = BusinessService({ ...rest, accountId: Number(accountId) })\n // const userService = UserService({ ...rest, accountId: Number(accountId), userType: \"administrator\" })\n\n const userModel = UserModel({ ...rest })\n\n let responseBusiness: any[] = []\n let responseUser: any[] = []\n\n // remove business\n if (businessId) {\n responseBusiness = await businessService.removeBusinesses({ businessIds: [BigInt(businessId)] });\n }\n\n // remove all users (administrator, etc...)\n if (ownerUserId) {\n\n const responseUsers = await userModel.remove({\n // ids: [Number(ownerUserId)]\n where: {\n [`${ModelUserFields.accountid}`]: accountId\n }\n })\n\n responseUser = responseUsers.map((i: any) => {\n delete i.login_password\n return i\n })\n\n }\n\n response.push({\n ...item,\n business: responseBusiness.length > 0 ? responseBusiness[0] : {},\n users: responseUser\n })\n\n })\n );\n\n return response\n\n };\n\n // const getDataTypes = () => {\n // return Object.values(accountDataTypes);\n // }\n\n // return {\n // // getAccount,\n // // createAccount,\n // // updateAccount,\n // // removeAccounts,\n // // listAccounts\n // // validateAccountCodeIsUsed: ServiceFactory(validateAccountCodeIsUsed, rest, \"validate account code is used\"),\n // getAccount: ServiceFactory([\"operator\"], \"AccountService\", getAccount, rest, \"get account\"),\n // createAccount: ServiceFactory([\"operator\"], \"AccountService\", createAccount, rest, \"create account\"),\n // updateAccount: ServiceFactory([\"operator\"], \"AccountService\", updateAccount, rest, \"update account\"),\n // removeAccounts: ServiceFactory([\"operator\"], \"AccountService\", removeAccounts, rest, \"remove accounts\"),\n // listAccounts: ServiceFactory([\"operator\"], \"AccountService\", listAccounts, rest, \"list accounts\"),\n // }\n\n const methodConfigs = {\n getAccount: { fn: getAccount, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get account\" },\n listAccounts: { fn: listAccounts, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"list accounts\" },\n createAccount: { fn: createAccount, allowUserTypes: [\"operator\"] as const, actionName: \"create account\" },\n updateAccount: { fn: updateAccount, allowUserTypes: [\"operator\"] as const, actionName: \"update account\" },\n removeAccounts: { fn: removeAccounts, allowUserTypes: [\"operator\"] as const, actionName: \"remove accounts\" },\n };\n\n return ServiceFactory(\"AccountService\", rest, methodConfigs);\n\n}\n\n"]}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export { AccountService } from "../services/account/AccountService";
|
|
|
10
10
|
export type { AccountServiceProps, Account, AccountGetProps, AccountListProps, AccountCreateProps, AccountUpdateProps } from "../services/account/AccountService";
|
|
11
11
|
export { BusinessService } from "../services/business/BusinessService";
|
|
12
12
|
export type { BusinessServiceProps, Business, BusinessGetProps, BusinessListProps, BusinessCreateProps, BusinessUpdateProps } from "../services/business/BusinessService";
|
|
13
|
-
export { UserService, userTypes } from "../services/user/UserService";
|
|
13
|
+
export { UserService, userTypes, userParentSqlSelect } from "../services/user/UserService";
|
|
14
14
|
export type { UserServiceProps, UserType, UserGetProps, UserListProps, UserCreateProps, UserUpdateProps, UserRemoveProps, UserReplacePasswordProps } from "../services/user/UserService";
|
|
15
15
|
export { UserMeService } from "../services/user/UserMeService";
|
|
16
16
|
export type { UserMeServiceProps, UserMeUpdateProps, UserMeChangePasswordProps } from "../services/user/UserMeService";
|
package/dist/services/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AccessKeyUtilService = exports.SmtpEmailService = exports.oneTimeCodeStatus = exports.oneTimeCodePurposeTypes = exports.oneTimeCodeTypes = exports.OneTimeCodeService = exports.NumberDateSequenceService = exports.injectionFieldDataTypes = exports.injectionFieldTypes = exports.InjectionFieldService = exports.LocationService = exports.FileService = exports.itemTypes = exports.ItemService = exports.DocumentService = exports.RegionService = exports.userBranchTypes = exports.UserBranchService = exports.UserMeService = exports.userTypes = exports.UserService = exports.BusinessService = exports.AccountService = exports.resetPasswordMethods = exports.ResetPasswordService = exports.AccessControlService = exports.accessKeyStatus = exports.accessKeyUserTypes = exports.AccessKeyService = exports.authTypes = exports.AuthService = void 0;
|
|
3
|
+
exports.AccessKeyUtilService = exports.SmtpEmailService = exports.oneTimeCodeStatus = exports.oneTimeCodePurposeTypes = exports.oneTimeCodeTypes = exports.OneTimeCodeService = exports.NumberDateSequenceService = exports.injectionFieldDataTypes = exports.injectionFieldTypes = exports.InjectionFieldService = exports.LocationService = exports.FileService = exports.itemTypes = exports.ItemService = exports.DocumentService = exports.RegionService = exports.userBranchTypes = exports.UserBranchService = exports.UserMeService = exports.userParentSqlSelect = exports.userTypes = exports.UserService = exports.BusinessService = exports.AccountService = exports.resetPasswordMethods = exports.ResetPasswordService = exports.AccessControlService = exports.accessKeyStatus = exports.accessKeyUserTypes = exports.AccessKeyService = exports.authTypes = exports.AuthService = void 0;
|
|
4
4
|
var AuthService_1 = require("../services/auth/AuthService");
|
|
5
5
|
Object.defineProperty(exports, "AuthService", { enumerable: true, get: function () { return AuthService_1.AuthService; } });
|
|
6
6
|
Object.defineProperty(exports, "authTypes", { enumerable: true, get: function () { return AuthService_1.authTypes; } });
|
|
@@ -20,6 +20,7 @@ Object.defineProperty(exports, "BusinessService", { enumerable: true, get: funct
|
|
|
20
20
|
var UserService_1 = require("../services/user/UserService");
|
|
21
21
|
Object.defineProperty(exports, "UserService", { enumerable: true, get: function () { return UserService_1.UserService; } });
|
|
22
22
|
Object.defineProperty(exports, "userTypes", { enumerable: true, get: function () { return UserService_1.userTypes; } });
|
|
23
|
+
Object.defineProperty(exports, "userParentSqlSelect", { enumerable: true, get: function () { return UserService_1.userParentSqlSelect; } });
|
|
23
24
|
var UserMeService_1 = require("../services/user/UserMeService");
|
|
24
25
|
Object.defineProperty(exports, "UserMeService", { enumerable: true, get: function () { return UserMeService_1.UserMeService; } });
|
|
25
26
|
// export { AdministratorService, administratorDataTypes } from "../services/user/AdministratorService"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;AAAA,2DAAoE;AAA3D,0GAAA,WAAW,OAAA;AAAE,wGAAA,SAAS,OAAA;AAE/B,2EAA8G;AAArG,oHAAA,gBAAgB,OAAA;AAAE,sHAAA,kBAAkB,OAAA;AAAE,mHAAA,eAAe,OAAA;AAE9D,uFAAqF;AAA5E,4HAAA,oBAAoB,OAAA;AAE7B,uFAA2G;AAAlG,4HAAA,oBAAoB,OAAA;AAAE,4HAAA,oBAAoB,OAAA;AAEnD,oEAAkE;AAAzD,gHAAA,cAAc,OAAA;AAEvB,uEAAqE;AAA5D,kHAAA,eAAe,OAAA;AAGxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;AAAA,2DAAoE;AAA3D,0GAAA,WAAW,OAAA;AAAE,wGAAA,SAAS,OAAA;AAE/B,2EAA8G;AAArG,oHAAA,gBAAgB,OAAA;AAAE,sHAAA,kBAAkB,OAAA;AAAE,mHAAA,eAAe,OAAA;AAE9D,uFAAqF;AAA5E,4HAAA,oBAAoB,OAAA;AAE7B,uFAA2G;AAAlG,4HAAA,oBAAoB,OAAA;AAAE,4HAAA,oBAAoB,OAAA;AAEnD,oEAAkE;AAAzD,gHAAA,cAAc,OAAA;AAEvB,uEAAqE;AAA5D,kHAAA,eAAe,OAAA;AAGxB,2DAAyF;AAAhF,0GAAA,WAAW,OAAA;AAAE,wGAAA,SAAS,OAAA;AAAE,kHAAA,mBAAmB,OAAA;AAGpD,+DAA6D;AAApD,8GAAA,aAAa,OAAA;AAGtB,sGAAsG;AACtG,qNAAqN;AACrN,uFAAuF;AACvF,kLAAkL;AAElL,yEAAwF;AAA/E,sHAAA,iBAAiB,OAAA;AAAE,oHAAA,eAAe,OAAA;AAE3C,iEAA+D;AAAtD,8GAAA,aAAa,OAAA;AAEtB,uEAAqE;AAA5D,kHAAA,eAAe,OAAA;AAExB,2DAAoE;AAA3D,0GAAA,WAAW,OAAA;AAAE,wGAAA,SAAS,OAAA;AAE/B,2DAAyD;AAAhD,0GAAA,WAAW,OAAA;AAEpB,uEAAqE;AAA5D,kHAAA,eAAe,OAAA;AAExB,0FAAsI;AAA7H,8HAAA,qBAAqB,OAAA;AAAE,4HAAA,mBAAmB,OAAA;AAAE,gIAAA,uBAAuB,OAAA;AAE5E,yFAAuF;AAA9E,sIAAA,yBAAyB,OAAA;AAElC,kFAA8I;AAArI,wHAAA,kBAAkB,OAAA;AAAE,sHAAA,gBAAgB,OAAA;AAAE,6HAAA,uBAAuB,OAAA;AAAE,uHAAA,iBAAiB,OAAA;AAEzF,wEAAsE;AAA7D,oHAAA,gBAAgB,OAAA;AAGzB,+FAA+F;AAC/F,wIAAwI;AACxI,8EAA4E;AAAnE,4HAAA,oBAAoB,OAAA","sourcesContent":["export { AuthService, authTypes } from \"@/services/auth/AuthService\"\nexport type { AuthServiceProps, AuthType, AuthJwtToken, AuthGetTokenProps } from \"@/services/auth/AuthService\"\nexport { AccessKeyService, accessKeyUserTypes, accessKeyStatus } from \"@/services/access_key/AccessKeyService\"\nexport type { AccessKeyServiceProps, AccessKeyStatus, AccessKeyUserType, AccessKeyCreateProps, AccessKeyRevokeProps } from \"@/services/access_key/AccessKeyService\"\nexport { AccessControlService } from \"@/services/access_control/AccessControlService\"\nexport type { AccessControlServiceProps, AccessControlScopeOrExtra, AccessControlListOptionsProps } from \"@/services/access_control/AccessControlService\"\nexport { ResetPasswordService, resetPasswordMethods } from \"@/services/reset_password/ResetPasswordService\"\nexport type { ResetPasswordServiceProps, ResetPasswordMethod, ResetPasswordRequestProps, ResetPasswordValidateCodeProps, ResetPasswordPerformProps } from \"@/services/reset_password/ResetPasswordService\"\nexport { AccountService } from \"@/services/account/AccountService\"\nexport type { AccountServiceProps, Account, AccountGetProps, AccountListProps, AccountCreateProps, AccountUpdateProps } from \"@/services/account/AccountService\"\nexport { BusinessService } from \"@/services/business/BusinessService\"\nexport type { BusinessServiceProps, Business, BusinessGetProps, BusinessListProps, BusinessCreateProps, BusinessUpdateProps } from \"@/services/business/BusinessService\"\n\nexport { UserService, userTypes, userParentSqlSelect } from \"@/services/user/UserService\"\nexport type { UserServiceProps, UserType, UserGetProps, UserListProps, UserCreateProps, UserUpdateProps, UserRemoveProps, UserReplacePasswordProps } from \"@/services/user/UserService\"\n\nexport { UserMeService } from \"@/services/user/UserMeService\"\nexport type { UserMeServiceProps, UserMeUpdateProps, UserMeChangePasswordProps } from \"@/services/user/UserMeService\"\n\n// export { AdministratorService, administratorDataTypes } from \"@/services/user/AdministratorService\"\n// export type { AdministratorServiceProps, AdministratorGetProps, AdministratorListProps, AdministratorCreateProps, AdministratorUpdateProps, AdministratorRemoveProps } from \"@/services/user/AdministratorService\"\n// export { OperatorService, operatorDataTypes } from \"@/services/user/OperatorService\"\n// export type { OperatorServiceProps, OperatorGetProps, OperatorListProps, OperatorCreateProps, OperatorUpdateProps, OperatorRemoveProps } from \"@/services/user/OperatorService\"\n\nexport { UserBranchService, userBranchTypes } from \"@/services/branch/UserBranchService\"\nexport type { UserBranchServiceProps, UserBranchType, UserBranchGetProps, UserBranchListProps, UserBranchCreateProps, UserBranchUpdateProps, UserBranchRemoveProps } from \"@/services/branch/UserBranchService\"\nexport { RegionService } from \"@/services/region/RegionService\"\nexport type { RegionServiceProps, RegionType, RegionGetProps, RegionCreateProps, RegionListProps, RegionUpdateProps, RegionRemoveProps } from \"@/services/region/RegionService\"\nexport { DocumentService } from \"@/services/document/DocumentService\"\nexport type { DocumentServiceProps, DocumentType, DocumentGetProps, DocumentUpdateProps, DocumentCreateProps, DocumentListProps, DocumentRemoveProps } from \"@/services/document/DocumentService\"\nexport { ItemService, itemTypes } from \"@/services/item/ItemService\"\nexport type { ItemServiceProps, ItemType, ItemGetProps, ItemUpdateProps, ItemCreateProps, ItemListProps, ItemRemoveProps } from \"@/services/item/ItemService\"\nexport { FileService } from \"@/services/file/FileService\"\nexport type { FileImageCompressionOptions, FileVideoCompressionOptions, FileStorageProviderType, FileLocalProviderOptions, FileGoogleCloudProviderOptions, FileAwsS3ProviderOptions, FileCategoryName, FileUploadItem, FileServiceProps, FileGetProps, FileUploadProps, FileCreateProps, FileListProps, FileRemoveProps } from \"@/services/file/FileService\"\nexport { LocationService } from \"@/services/location/LocationService\"\nexport type { LocationServiceProps, LocationType, LocationGetProps, LocationUpdateProps, LocationCreateProps, LocationListProps, LocationRemoveProps } from \"@/services/location/LocationService\"\nexport { InjectionFieldService, injectionFieldTypes, injectionFieldDataTypes } from \"@/services/injection_field/InjectionFieldService\"\nexport type { InjectionFieldModuleRef, InjectionFieldServiceProps, InjectionFieldType, InjectionFieldDataType, InjectionFieldCreateProps, InjectionFieldListProps, InjectionFieldGetProps, InjectionFieldReplaceProps } from \"@/services/injection_field/InjectionFieldService\"\nexport { NumberDateSequenceService } from \"@/services/others/NumberDateSequenceService\"\nexport type { NumberDateSequenceModuleRef, NumberDateSequenceServiceProps, NumberDateSequenceInitProps, NumberDateSequenceCreateProps } from \"@/services/others/NumberDateSequenceService\"\nexport { OneTimeCodeService, oneTimeCodeTypes, oneTimeCodePurposeTypes, oneTimeCodeStatus } from \"@/services/one_time_code/OneTimeCodeService\"\nexport type { OneTimeCodeModuleRef, OneTimeCodeType, OneTimeCodePurposeType, OneTimeCodeStatus, OneTimeCodeServiceProps, OneTimeCodeCreateProps } from \"@/services/one_time_code/OneTimeCodeService\"\nexport { SmtpEmailService } from \"@/services/gateway/SmtpEmailService\"\nexport type { SmtpEmailServiceProps, SmtpEmailSendProps, SmtpEmailTransporterOptions } from \"@/services/gateway/SmtpEmailService\"\n\n// export { ChangePasswordUtilService } from \"@/services/utils/unuse/ChangePasswordUtilService\"\n// export type { ChangePasswordUtilServiceProps, ChangePasswordUtilChangeProps } from \"@/services/utils/unuse/ChangePasswordUtilService\"\nexport { AccessKeyUtilService } from \"@/services/utils/AccessKeyUtilService\"\nexport type { AccessKeyUtilServiceProps, AccessKeyUtilValidateProps, AccessKeyUtilAccountOwnerProps } from \"@/services/utils/AccessKeyUtilService\""]}
|