storemw-core-client 1.0.1

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 (112) hide show
  1. package/.env +1 -0
  2. package/.vscode/launch.json +24 -0
  3. package/dist/config/config.d.ts +6 -0
  4. package/dist/config/config.js +13 -0
  5. package/dist/config/env.d.ts +7 -0
  6. package/dist/config/env.js +16 -0
  7. package/dist/config/index.d.ts +2 -0
  8. package/dist/config/index.js +8 -0
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.js +32 -0
  11. package/dist/lib/ApiService.d.ts +41 -0
  12. package/dist/lib/ApiService.js +143 -0
  13. package/dist/lib/index.d.ts +4 -0
  14. package/dist/lib/index.js +9 -0
  15. package/dist/lib/queryParams.d.ts +43 -0
  16. package/dist/lib/queryParams.js +99 -0
  17. package/dist/services/account/AccountService.d.ts +52 -0
  18. package/dist/services/account/AccountService.js +119 -0
  19. package/dist/services/auth/AuthService.d.ts +44 -0
  20. package/dist/services/auth/AuthService.js +76 -0
  21. package/dist/services/branch/BranchService.d.ts +124 -0
  22. package/dist/services/branch/BranchService.js +162 -0
  23. package/dist/services/business/BusinessService.d.ts +91 -0
  24. package/dist/services/business/BusinessService.js +153 -0
  25. package/dist/services/document/DocumentService.d.ts +578 -0
  26. package/dist/services/document/DocumentService.js +615 -0
  27. package/dist/services/index.d.ts +36 -0
  28. package/dist/services/index.js +97 -0
  29. package/dist/services/injection_field/InjectionFieldService.d.ts +113 -0
  30. package/dist/services/injection_field/InjectionFieldService.js +220 -0
  31. package/dist/services/inventory/InventoryService.d.ts +27 -0
  32. package/dist/services/inventory/InventoryService.js +231 -0
  33. package/dist/services/item/ItemService.d.ts +227 -0
  34. package/dist/services/item/ItemService.js +411 -0
  35. package/dist/services/location/LocationService.d.ts +154 -0
  36. package/dist/services/location/LocationService.js +256 -0
  37. package/dist/services/logistic/LogisticService.d.ts +104 -0
  38. package/dist/services/logistic/LogisticService.js +150 -0
  39. package/dist/services/permission/PermissionService.d.ts +296 -0
  40. package/dist/services/permission/PermissionService.js +576 -0
  41. package/dist/services/permission/config/custom/adminPermission.d.ts +4 -0
  42. package/dist/services/permission/config/custom/adminPermission.js +18 -0
  43. package/dist/services/permission/config/custom/config.d.ts +40 -0
  44. package/dist/services/permission/config/custom/config.js +23 -0
  45. package/dist/services/permission/config/default/adminPermission.d.ts +2 -0
  46. package/dist/services/permission/config/default/adminPermission.js +129 -0
  47. package/dist/services/permission/config/default/agentPermission.d.ts +2 -0
  48. package/dist/services/permission/config/default/agentPermission.js +43 -0
  49. package/dist/services/permission/config/default/customerPermission.d.ts +2 -0
  50. package/dist/services/permission/config/default/customerPermission.js +10 -0
  51. package/dist/services/permission/config/default/driverPermission.d.ts +2 -0
  52. package/dist/services/permission/config/default/driverPermission.js +4 -0
  53. package/dist/services/permission/config/default/workerPermission.d.ts +2 -0
  54. package/dist/services/permission/config/default/workerPermission.js +25 -0
  55. package/dist/services/rate/RateService.d.ts +201 -0
  56. package/dist/services/rate/RateService.js +303 -0
  57. package/dist/services/region/RegionService.d.ts +111 -0
  58. package/dist/services/region/RegionService.js +193 -0
  59. package/dist/services/repository/RepositoryService.d.ts +153 -0
  60. package/dist/services/repository/RepositoryService.js +243 -0
  61. package/dist/services/transaction/TransactionService.d.ts +153 -0
  62. package/dist/services/transaction/TransactionService.js +173 -0
  63. package/dist/services/user/BranchUserService.d.ts +129 -0
  64. package/dist/services/user/BranchUserService.js +193 -0
  65. package/dist/services/user/UserRoleService.d.ts +105 -0
  66. package/dist/services/user/UserRoleService.js +193 -0
  67. package/dist/services/user/UserService.d.ts +269 -0
  68. package/dist/services/user/UserService.js +477 -0
  69. package/dist/services/wallet/WalletService.d.ts +104 -0
  70. package/dist/services/wallet/WalletService.js +163 -0
  71. package/dist/utils/dateUtils.d.ts +6 -0
  72. package/dist/utils/dateUtils.js +28 -0
  73. package/dist/utils/index.d.ts +2 -0
  74. package/dist/utils/index.js +13 -0
  75. package/package.json +27 -0
  76. package/src/config/config.ts +15 -0
  77. package/src/config/env.ts +18 -0
  78. package/src/config/index.ts +2 -0
  79. package/src/index.ts +41 -0
  80. package/src/lib/ApiService.ts +170 -0
  81. package/src/lib/index.ts +5 -0
  82. package/src/lib/queryParams.ts +162 -0
  83. package/src/services/account/AccountService.ts +232 -0
  84. package/src/services/auth/AuthService.ts +125 -0
  85. package/src/services/branch/BranchService.ts +330 -0
  86. package/src/services/business/BusinessService.ts +277 -0
  87. package/src/services/document/DocumentService.ts +1471 -0
  88. package/src/services/index.ts +73 -0
  89. package/src/services/injection_field/InjectionFieldService.ts +483 -0
  90. package/src/services/inventory/InventoryService.ts +314 -0
  91. package/src/services/item/ItemService.ts +707 -0
  92. package/src/services/location/LocationService.ts +505 -0
  93. package/src/services/logistic/LogisticService.ts +285 -0
  94. package/src/services/permission/PermissionService.ts +1069 -0
  95. package/src/services/permission/config/custom/adminPermission.ts +19 -0
  96. package/src/services/permission/config/custom/config.ts +39 -0
  97. package/src/services/permission/config/default/adminPermission.ts +129 -0
  98. package/src/services/permission/config/default/agentPermission.ts +42 -0
  99. package/src/services/permission/config/default/customerPermission.ts +9 -0
  100. package/src/services/permission/config/default/driverPermission.ts +4 -0
  101. package/src/services/permission/config/default/workerPermission.ts +25 -0
  102. package/src/services/rate/RateService.ts +570 -0
  103. package/src/services/region/RegionService.ts +353 -0
  104. package/src/services/repository/RepositoryService.ts +437 -0
  105. package/src/services/transaction/TransactionService.ts +404 -0
  106. package/src/services/user/BranchUserService.ts +381 -0
  107. package/src/services/user/UserRoleService.ts +342 -0
  108. package/src/services/user/UserService.ts +807 -0
  109. package/src/services/wallet/WalletService.ts +300 -0
  110. package/src/utils/dateUtils.ts +26 -0
  111. package/src/utils/index.ts +2 -0
  112. package/tsconfig.json +119 -0
@@ -0,0 +1,477 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserService = exports.userTargetTypes = exports.userTypes = void 0;
4
+ const lib_1 = require("@/lib");
5
+ const lib_2 = require("@/lib");
6
+ exports.userTypes = {
7
+ administrator: "administrator",
8
+ worker: "worker",
9
+ supplier: "supplier",
10
+ customer: "customer",
11
+ driver: "driver",
12
+ retailer: "retailer",
13
+ member: "member",
14
+ };
15
+ exports.userTargetTypes = {
16
+ administrator: "administrator",
17
+ worker: "worker",
18
+ supplier: "supplier",
19
+ customer: "customer",
20
+ driver: "driver",
21
+ retailer: "retailer",
22
+ member: "member",
23
+ };
24
+ const getCreatePayload = (userType, data) => {
25
+ if (userType === "administrator" && "administrator" in data) {
26
+ return {
27
+ credential: {
28
+ username: data.administrator.credential.username,
29
+ password: data.administrator.credential.password,
30
+ user_type: userType,
31
+ firstname: data.administrator.credential.firstname,
32
+ lastname: data.administrator.credential.lastname,
33
+ contact: data.administrator.credential.contact,
34
+ email: data.administrator.credential.email,
35
+ status: (data.administrator.credential.status === true) ? 1 : 0,
36
+ address: data.administrator.credential.address
37
+ },
38
+ administrator: [],
39
+ props: {
40
+ location_id: data.administrator.locationIds
41
+ }
42
+ };
43
+ }
44
+ if (userType === "customer" && "customer" in data) {
45
+ return {
46
+ credential: {
47
+ username: data.customer.credential.username,
48
+ password: data.customer.credential.password,
49
+ user_type: userType,
50
+ firstname: data.customer.credential.firstname,
51
+ lastname: data.customer.credential.lastname,
52
+ contact: data.customer.credential.contact,
53
+ email: data.customer.credential.email,
54
+ status: (data.customer.credential.status === true) ? 1 : 0,
55
+ address: data.customer.credential.address
56
+ },
57
+ customer: {
58
+ code: data.customer.code,
59
+ account_code: data.customer.accountCode,
60
+ company_name: data.customer.companyName,
61
+ reg_no: data.customer.regNo,
62
+ secondary_reg_no: data.customer.secondaryRegNo,
63
+ remark: data.customer.remark,
64
+ tax_identification_no: data.customer.taxIdentificationNo,
65
+ tax_registration_no: data.customer.taxRegistrationNo,
66
+ },
67
+ props: {
68
+ salesperson: data.customer.salesperson,
69
+ exclude_tax_rate: data.customer.excludeTaxRate
70
+ }
71
+ };
72
+ }
73
+ if (userType === "retailer" && "retailer" in data) {
74
+ return {
75
+ credential: {
76
+ username: data.retailer.credential.username,
77
+ password: data.retailer.credential.password,
78
+ user_type: userType,
79
+ firstname: data.retailer.credential.firstname,
80
+ lastname: data.retailer.credential.lastname,
81
+ contact: data.retailer.credential.contact,
82
+ email: data.retailer.credential.email,
83
+ status: (data.retailer.credential.status === true) ? 1 : 0,
84
+ address: data.retailer.credential.address
85
+ },
86
+ retailer: {
87
+ code: data.retailer.code,
88
+ account_code: data.retailer.accountCode,
89
+ company_name: data.retailer.companyName,
90
+ reg_no: data.retailer.regNo,
91
+ remark: data.retailer.remark
92
+ },
93
+ props: {
94
+ business_id: data.retailer.businessId
95
+ },
96
+ status: {
97
+ is_different_business: (data.retailer.isDifferentBusiness === true) ? 1 : 0
98
+ }
99
+ };
100
+ }
101
+ if (userType === "worker" && "worker" in data) {
102
+ return {
103
+ credential: {
104
+ username: data.worker.credential.username,
105
+ password: data.worker.credential.password,
106
+ user_type: userType,
107
+ firstname: data.worker.credential.firstname,
108
+ lastname: data.worker.credential.lastname,
109
+ contact: data.worker.credential.contact,
110
+ email: data.worker.credential.email,
111
+ status: (data.worker.credential.status === true) ? 1 : 0,
112
+ address: data.worker.credential.address
113
+ },
114
+ worker: {
115
+ remark: data.worker.remark
116
+ },
117
+ props: {
118
+ location_id: data.worker.locationIds
119
+ }
120
+ };
121
+ }
122
+ if (userType === "driver" && "driver" in data) {
123
+ return {
124
+ credential: {
125
+ username: data.driver.credential.username,
126
+ password: data.driver.credential.password,
127
+ user_type: userType,
128
+ firstname: data.driver.credential.firstname,
129
+ lastname: data.driver.credential.lastname,
130
+ contact: data.driver.credential.contact,
131
+ email: data.driver.credential.email,
132
+ status: (data.driver.credential.status === true) ? 1 : 0,
133
+ address: data.driver.credential.address
134
+ },
135
+ driver: {
136
+ company_name: data.driver.companyName,
137
+ remark: data.driver.remark
138
+ },
139
+ props: {
140
+ location_id: data.driver.locationIds
141
+ }
142
+ };
143
+ }
144
+ if (userType === "supplier" && "supplier" in data) {
145
+ return {
146
+ credential: {
147
+ username: data.supplier.credential.username,
148
+ password: data.supplier.credential.password,
149
+ user_type: userType,
150
+ firstname: data.supplier.credential.firstname,
151
+ lastname: data.supplier.credential.lastname,
152
+ contact: data.supplier.credential.contact,
153
+ email: data.supplier.credential.email,
154
+ status: (data.supplier.credential.status === true) ? 1 : 0,
155
+ address: data.supplier.credential.address
156
+ },
157
+ supplier: {
158
+ type: data.supplier.type,
159
+ company_name: data.supplier.companyName,
160
+ contact: data.supplier.contact,
161
+ code: data.supplier.code,
162
+ reg_no: data.supplier.regNo,
163
+ remark: data.supplier.remark,
164
+ address_1: data.supplier.address1,
165
+ address_2: data.supplier.address2,
166
+ postcode: data.supplier.postcode,
167
+ country_id: data.supplier.countryId,
168
+ state_id: data.supplier.stateId,
169
+ area_id: data.supplier.areaId,
170
+ bank_name: data.supplier.bankName,
171
+ bank_acc: data.supplier.bankAcc
172
+ },
173
+ props: {
174
+ item_id: data.supplier.itemIds,
175
+ retailer_id: data.supplier.retailerId
176
+ }
177
+ };
178
+ }
179
+ if (userType === "member" && "member" in data) {
180
+ return {
181
+ credential: {
182
+ username: data.member.credential.username,
183
+ password: data.member.credential.password,
184
+ user_type: userType,
185
+ firstname: data.member.credential.firstname,
186
+ lastname: data.member.credential.lastname,
187
+ contact: data.member.credential.contact,
188
+ email: data.member.credential.email,
189
+ status: (data.member.credential.status === true) ? 1 : 0,
190
+ address: data.member.credential.address
191
+ },
192
+ member: {
193
+ owner_user_id: (data.member.ownerUserId === 0) ? "" : data.member.ownerUserId, /* retailer_user_id or empty if global */
194
+ company_name: data.member.companyName,
195
+ identity_no: data.member.identityNo,
196
+ gender: data.member.gender,
197
+ dob: data.member.dob,
198
+ address_1: data.member.address1,
199
+ address_2: data.member.address2,
200
+ country_id: data.member.countryId,
201
+ state_id: data.member.stateId,
202
+ area_id: data.member.areaId,
203
+ postcode: data.member.postcode,
204
+ remark: data.member.remark
205
+ }
206
+ };
207
+ }
208
+ };
209
+ const getUpdatePayload = (userType, data) => {
210
+ if (userType === "administrator" && "administrator" in data) {
211
+ return {
212
+ credential: {
213
+ ...(data.administrator.credential.password ? { password: data.administrator.credential.password } : {}),
214
+ firstname: data.administrator.credential.firstname,
215
+ lastname: data.administrator.credential.lastname,
216
+ contact: data.administrator.credential.contact,
217
+ email: data.administrator.credential.email,
218
+ status: (data.administrator.credential.status === true) ? 1 : 0,
219
+ address: data.administrator.credential.address
220
+ },
221
+ administrator: [],
222
+ props: {
223
+ location_id: data.administrator.locationIds
224
+ }
225
+ };
226
+ }
227
+ if (userType === "customer" && "customer" in data) {
228
+ return {
229
+ credential: {
230
+ ...(data.customer.credential.password ? { password: data.customer.credential.password } : {}),
231
+ firstname: data.customer.credential.firstname,
232
+ lastname: data.customer.credential.lastname,
233
+ contact: data.customer.credential.contact,
234
+ email: data.customer.credential.email,
235
+ status: (data.customer.credential.status === true) ? 1 : 0,
236
+ address: data.customer.credential.address
237
+ },
238
+ customer: {
239
+ code: data.customer.code,
240
+ account_code: data.customer.accountCode,
241
+ company_name: data.customer.companyName,
242
+ reg_no: data.customer.regNo,
243
+ secondary_reg_no: data.customer.secondaryRegNo,
244
+ remark: data.customer.remark,
245
+ tax_identification_no: data.customer.taxIdentificationNo,
246
+ tax_registration_no: data.customer.taxRegistrationNo,
247
+ },
248
+ props: {
249
+ salesperson: data.customer.salesperson,
250
+ exclude_tax_rate: data.customer.excludeTaxRate
251
+ }
252
+ };
253
+ }
254
+ if (userType === "retailer" && "retailer" in data) {
255
+ return {
256
+ credential: {
257
+ ...(data.retailer.credential.password ? { password: data.retailer.credential.password } : {}),
258
+ firstname: data.retailer.credential.firstname,
259
+ lastname: data.retailer.credential.lastname,
260
+ contact: data.retailer.credential.contact,
261
+ email: data.retailer.credential.email,
262
+ status: (data.retailer.credential.status === true) ? 1 : 0,
263
+ address: data.retailer.credential.address
264
+ },
265
+ retailer: {
266
+ code: data.retailer.code,
267
+ account_code: data.retailer.accountCode,
268
+ company_name: data.retailer.companyName,
269
+ reg_no: data.retailer.regNo,
270
+ remark: data.retailer.remark
271
+ },
272
+ props: {
273
+ business_id: data.retailer.businessId
274
+ },
275
+ status: {
276
+ is_different_business: (data.retailer.isDifferentBusiness === true) ? 1 : 0
277
+ }
278
+ };
279
+ }
280
+ if (userType === "worker" && "worker" in data) {
281
+ return {
282
+ credential: {
283
+ ...(data.worker.credential.password ? { password: data.worker.credential.password } : {}),
284
+ firstname: data.worker.credential.firstname,
285
+ lastname: data.worker.credential.lastname,
286
+ contact: data.worker.credential.contact,
287
+ email: data.worker.credential.email,
288
+ status: (data.worker.credential.status === true) ? 1 : 0,
289
+ address: data.worker.credential.address
290
+ },
291
+ worker: {
292
+ remark: data.worker.remark
293
+ },
294
+ props: {
295
+ location_id: data.worker.locationIds
296
+ }
297
+ };
298
+ }
299
+ if (userType === "driver" && "driver" in data) {
300
+ return {
301
+ credential: {
302
+ ...(data.driver.credential.password ? { password: data.driver.credential.password } : {}),
303
+ firstname: data.driver.credential.firstname,
304
+ lastname: data.driver.credential.lastname,
305
+ contact: data.driver.credential.contact,
306
+ email: data.driver.credential.email,
307
+ status: (data.driver.credential.status === true) ? 1 : 0,
308
+ address: data.driver.credential.address
309
+ },
310
+ driver: {
311
+ company_name: data.driver.companyName,
312
+ remark: data.driver.remark
313
+ },
314
+ props: {
315
+ location_id: data.driver.locationIds
316
+ }
317
+ };
318
+ }
319
+ if (userType === "supplier" && "supplier" in data) {
320
+ return {
321
+ credential: {
322
+ ...(data.supplier.credential.password ? { password: data.supplier.credential.password } : {}),
323
+ firstname: data.supplier.credential.firstname,
324
+ lastname: data.supplier.credential.lastname,
325
+ contact: data.supplier.credential.contact,
326
+ email: data.supplier.credential.email,
327
+ status: (data.supplier.credential.status === true) ? 1 : 0,
328
+ address: data.supplier.credential.address
329
+ },
330
+ supplier: {
331
+ type: data.supplier.type,
332
+ company_name: data.supplier.companyName,
333
+ contact: data.supplier.contact,
334
+ code: data.supplier.code,
335
+ reg_no: data.supplier.regNo,
336
+ remark: data.supplier.remark,
337
+ address_1: data.supplier.address1,
338
+ address_2: data.supplier.address2,
339
+ postcode: data.supplier.postcode,
340
+ country_id: data.supplier.countryId,
341
+ state_id: data.supplier.stateId,
342
+ area_id: data.supplier.areaId,
343
+ bank_name: data.supplier.bankName,
344
+ bank_acc: data.supplier.bankAcc
345
+ },
346
+ props: {
347
+ item_id: data.supplier.itemIds,
348
+ retailer_id: data.supplier.retailerId
349
+ }
350
+ };
351
+ }
352
+ if (userType === "member" && "member" in data) {
353
+ return {
354
+ credential: {
355
+ ...(data.member.credential.password ? { password: data.member.credential.password } : {}),
356
+ firstname: data.member.credential.firstname,
357
+ lastname: data.member.credential.lastname,
358
+ contact: data.member.credential.contact,
359
+ email: data.member.credential.email,
360
+ status: (data.member.credential.status === true) ? 1 : 0,
361
+ address: data.member.credential.address
362
+ },
363
+ member: {
364
+ owner_user_id: (data.member.ownerUserId === 0) ? "" : data.member.ownerUserId, /* retailer_user_id or empty if global */
365
+ company_name: data.member.companyName,
366
+ identity_no: data.member.identityNo,
367
+ gender: data.member.gender,
368
+ dob: data.member.dob,
369
+ address_1: data.member.address1,
370
+ address_2: data.member.address2,
371
+ country_id: data.member.countryId,
372
+ state_id: data.member.stateId,
373
+ area_id: data.member.areaId,
374
+ postcode: data.member.postcode,
375
+ remark: data.member.remark
376
+ }
377
+ };
378
+ }
379
+ };
380
+ const UserService = (props) => {
381
+ const { userType = "administrator", userTargetType, ...rest } = props ?? {};
382
+ const { makeCall } = (0, lib_1.ApiService)(rest?.customToken ? { customToken: rest.customToken } : {});
383
+ const endpoint1 = "user";
384
+ const endpoint2 = "users";
385
+ const list = async (props) => {
386
+ const { userType: overrideUserType } = props;
387
+ const url = (0, lib_2.buildApiListUrl)(`${endpoint2}/${overrideUserType || userType}`, props);
388
+ const response = await makeCall({
389
+ url,
390
+ method: "get",
391
+ payload: {},
392
+ // configuration
393
+ });
394
+ return response;
395
+ };
396
+ const get = async (props) => {
397
+ const { id, userType: overrideUserType } = props;
398
+ const url = (0, lib_2.buildApiGetUrl)(`${endpoint1}/${overrideUserType || userType}/${id}`, props);
399
+ const response = await makeCall({
400
+ url,
401
+ method: "get",
402
+ payload: {},
403
+ // configuration
404
+ });
405
+ return response;
406
+ };
407
+ const create = async ({ data, userType: overrideUserType, userTargetType: overrideUserTargetType }) => {
408
+ let _userType = overrideUserType || userType;
409
+ let payload = getCreatePayload(_userType, data);
410
+ let url = `${endpoint1}`;
411
+ let postData = {
412
+ scope: {
413
+ target: overrideUserTargetType || userTargetType,
414
+ action: "",
415
+ },
416
+ payload
417
+ };
418
+ const response = await makeCall({
419
+ url,
420
+ method: "post",
421
+ payload: postData
422
+ });
423
+ return response;
424
+ };
425
+ const update = async ({ id, data, userType: overrideUserType, userTargetType: overrideUserTargetType }) => {
426
+ let url = `${endpoint1}/${id}`;
427
+ let _userType = overrideUserType || userType;
428
+ let payload = getUpdatePayload(_userType, data);
429
+ const postData = {
430
+ scope: {
431
+ target: overrideUserTargetType || userTargetType,
432
+ action: "",
433
+ },
434
+ payload
435
+ };
436
+ const response = await makeCall({
437
+ url,
438
+ method: "put",
439
+ payload: postData
440
+ });
441
+ return response;
442
+ };
443
+ const remove = async ({ ids, userTargetType: overrideUserTargetType }) => {
444
+ let url = `${endpoint2}/delete`;
445
+ const postData = {
446
+ scope: {
447
+ target: overrideUserTargetType || userTargetType,
448
+ },
449
+ payload: {
450
+ ids
451
+ }
452
+ };
453
+ const response = await makeCall({
454
+ url,
455
+ method: "post",
456
+ payload: postData
457
+ });
458
+ return response;
459
+ };
460
+ const getDataTypes = async ({ userType: overrideUserType }) => {
461
+ let url = `${endpoint2}/data_types/${overrideUserType || userType}`;
462
+ const response = await makeCall({
463
+ url,
464
+ method: "get",
465
+ });
466
+ return response;
467
+ };
468
+ return {
469
+ list,
470
+ get,
471
+ create,
472
+ update,
473
+ remove,
474
+ getDataTypes
475
+ };
476
+ };
477
+ exports.UserService = UserService;
@@ -0,0 +1,104 @@
1
+ import { ApiServiceType } from '@/lib';
2
+ import { BuildApiListParamsProps, BuildApiGetParamsProps } from '@/lib';
3
+ export declare const walletTypes: {
4
+ readonly wallet: "wallet";
5
+ readonly walletUser: "wallet_user";
6
+ };
7
+ export declare const walletTargetTypes: {
8
+ readonly wallet: "wallet";
9
+ readonly walletUser: "wallet_user";
10
+ };
11
+ export type WalletType = typeof walletTypes[keyof typeof walletTypes];
12
+ export type WalletTargetType = typeof walletTargetTypes[keyof typeof walletTargetTypes];
13
+ export type WalletTargetKey = keyof typeof walletTargetTypes;
14
+ export declare const walletCurrencyTypes: {
15
+ readonly myr: "MYR";
16
+ readonly sgd: "SGD";
17
+ readonly usd: "USD";
18
+ readonly cny: "CNY";
19
+ };
20
+ type Currency = typeof walletCurrencyTypes[keyof typeof walletCurrencyTypes];
21
+ export type WalletServiceProps = ApiServiceType & {
22
+ walletTargetType?: WalletTargetType;
23
+ walletType?: WalletType;
24
+ };
25
+ export type ListWalletProps = BuildApiListParamsProps & {
26
+ walletType?: WalletType;
27
+ };
28
+ export type GetWalletProps = BuildApiGetParamsProps & {
29
+ id: number | string;
30
+ walletType?: WalletType;
31
+ };
32
+ type Wallet = {
33
+ name: string;
34
+ currency: string;
35
+ walletKey: Currency;
36
+ isPrimary: boolean;
37
+ conversionRate: number;
38
+ description: string;
39
+ status: boolean;
40
+ };
41
+ type WalletUser = {
42
+ walletId: number;
43
+ userId: number;
44
+ status: boolean;
45
+ };
46
+ export type CreateWalletProps = {
47
+ walletTargetType?: WalletTargetType;
48
+ walletType?: WalletType;
49
+ data: {
50
+ wallet: Wallet;
51
+ } | {
52
+ walletUser: WalletUser;
53
+ };
54
+ };
55
+ export type UpdateWalletProps = {
56
+ id: number;
57
+ walletTargetType?: WalletTargetType;
58
+ walletType?: WalletType;
59
+ data: {
60
+ wallet: Wallet;
61
+ } | {
62
+ walletUser: Pick<WalletUser, "status">;
63
+ };
64
+ };
65
+ export type RemoveWalletProps = {
66
+ walletTargetType?: WalletTargetType;
67
+ ids: number[];
68
+ };
69
+ export type GetDataTypeWalletProps = {
70
+ walletType?: WalletType;
71
+ };
72
+ export declare const WalletService: (props?: WalletServiceProps) => {
73
+ list: (props: ListWalletProps) => Promise<{
74
+ status: boolean;
75
+ message: string;
76
+ data?: any;
77
+ }>;
78
+ get: (props: GetWalletProps) => Promise<{
79
+ status: boolean;
80
+ message: string;
81
+ data?: any;
82
+ }>;
83
+ create: ({ data, walletType: overrideWalletType, walletTargetType: overrideWalletTargetType }: CreateWalletProps) => Promise<{
84
+ status: boolean;
85
+ message: string;
86
+ data?: any;
87
+ }>;
88
+ update: ({ id, data, walletType: overrideWalletType, walletTargetType: overrideWalletTargetType }: UpdateWalletProps) => Promise<{
89
+ status: boolean;
90
+ message: string;
91
+ data?: any;
92
+ }>;
93
+ remove: ({ ids, walletTargetType: overrideWalletTargetType }: RemoveWalletProps) => Promise<{
94
+ status: boolean;
95
+ message: string;
96
+ data?: any;
97
+ }>;
98
+ getDataTypes: ({ walletType: overrideWalletType }: GetDataTypeWalletProps) => Promise<{
99
+ status: boolean;
100
+ message: string;
101
+ data?: any;
102
+ }>;
103
+ };
104
+ export {};