@temboplus/tembo-dashboard 0.2.9 → 0.3.0-rc.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 (43) hide show
  1. package/dist/index.cjs.js +1 -1
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.esm.js +1 -1
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/modules/auth/auth.api-contract.d.ts +2 -1
  8. package/dist/modules/auth/auth.api-contract.d.ts.map +1 -1
  9. package/dist/modules/auth/auth.dtos.d.ts +12 -1
  10. package/dist/modules/auth/auth.dtos.d.ts.map +1 -1
  11. package/dist/modules/auth/user.model.d.ts +10 -2
  12. package/dist/modules/auth/user.model.d.ts.map +1 -1
  13. package/dist/modules/collection/collection.api-contract.d.ts +8 -8
  14. package/dist/modules/collection/collection.types.d.ts +6 -6
  15. package/dist/modules/payout/payout.api-contract.d.ts +6 -6
  16. package/dist/modules/payout/payout.types.d.ts +6 -6
  17. package/dist/modules/settlement/index.d.ts +5 -0
  18. package/dist/modules/settlement/index.d.ts.map +1 -0
  19. package/dist/modules/settlement/settlement.api-contract.d.ts +255 -0
  20. package/dist/modules/settlement/settlement.api-contract.d.ts.map +1 -0
  21. package/dist/modules/settlement/settlement.model.d.ts +106 -0
  22. package/dist/modules/settlement/settlement.model.d.ts.map +1 -0
  23. package/dist/modules/settlement/settlement.repository.d.ts +75 -0
  24. package/dist/modules/settlement/settlement.repository.d.ts.map +1 -0
  25. package/dist/modules/settlement/settlement.types.d.ts +140 -0
  26. package/dist/modules/settlement/settlement.types.d.ts.map +1 -0
  27. package/dist/modules/vendor/index.d.ts +5 -0
  28. package/dist/modules/vendor/index.d.ts.map +1 -0
  29. package/dist/modules/vendor/vendor.api-contract.d.ts +45 -0
  30. package/dist/modules/vendor/vendor.api-contract.d.ts.map +1 -0
  31. package/dist/modules/vendor/vendor.model.d.ts +76 -0
  32. package/dist/modules/vendor/vendor.model.d.ts.map +1 -0
  33. package/dist/modules/vendor/vendor.repository.d.ts +17 -0
  34. package/dist/modules/vendor/vendor.repository.d.ts.map +1 -0
  35. package/dist/modules/vendor/vendor.types.d.ts +17 -0
  36. package/dist/modules/vendor/vendor.types.d.ts.map +1 -0
  37. package/dist/modules/wallet/wallet.api-contract.d.ts +14 -2
  38. package/dist/modules/wallet/wallet.api-contract.d.ts.map +1 -1
  39. package/dist/modules/wallet/wallet.model.d.ts +8 -7
  40. package/dist/modules/wallet/wallet.model.d.ts.map +1 -1
  41. package/dist/modules/wallet/wallet.types.d.ts +7 -4
  42. package/dist/modules/wallet/wallet.types.d.ts.map +1 -1
  43. package/package.json +1 -1
@@ -5,7 +5,7 @@ export declare const authContract: {
5
5
  description: "Authenticate user with email and password";
6
6
  method: "POST";
7
7
  body: z.ZodObject<{
8
- identity: z.ZodString;
8
+ identity: z.ZodEmail;
9
9
  password: z.ZodString;
10
10
  }, z.z.core.$strip>;
11
11
  path: "/login";
@@ -14,6 +14,7 @@ export declare const authContract: {
14
14
  token: z.ZodString;
15
15
  identity: z.ZodString;
16
16
  name: z.ZodString;
17
+ role: z.ZodEnum<typeof import("./auth.dtos.js").USER_ROLE>;
17
18
  }, z.z.core.$strip>;
18
19
  400: z.ZodObject<{
19
20
  reason: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.api-contract.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/auth.api-contract.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAMpB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BvB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC"}
1
+ {"version":3,"file":"auth.api-contract.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/auth.api-contract.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAMpB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BvB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC"}
@@ -1,12 +1,23 @@
1
1
  import { z } from "zod";
2
+ /**
3
+ * Roles a dashboard user can hold, as returned by the auth API.
4
+ */
5
+ export declare enum USER_ROLE {
6
+ READ_ONLY = "ReadOnly",
7
+ ADMIN = "Admin",
8
+ INITIATOR = "Initiator",
9
+ APPROVER = "Approver"
10
+ }
2
11
  export declare const AuthDTOSchemas: {
3
12
  user: z.ZodObject<{
4
13
  token: z.ZodString;
5
14
  identity: z.ZodString;
6
15
  name: z.ZodString;
16
+ role: z.ZodEnum<typeof USER_ROLE>;
7
17
  }, z.core.$strip>;
18
+ userRole: z.ZodEnum<typeof USER_ROLE>;
8
19
  loginRequest: z.ZodObject<{
9
- identity: z.ZodString;
20
+ identity: z.ZodEmail;
10
21
  password: z.ZodString;
11
22
  }, z.core.$strip>;
12
23
  updatePassword: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"auth.dtos.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/auth.dtos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;CAI1B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,YAAY,CAAC,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"auth.dtos.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/auth.dtos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,oBAAY,SAAS;IACnB,SAAS,aAAa;IACtB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,QAAQ,aAAa;CACtB;AAuBD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;CAK1B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,YAAY,CAAC,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,cAAc,CAAC,CAAC"}
@@ -1,9 +1,11 @@
1
+ import type { USER_ROLE } from "./auth.dtos.js";
1
2
  /**
2
3
  * Internal and external user data representation.
3
4
  */
4
5
  export interface UserData {
5
6
  readonly identity: string;
6
7
  readonly name: string;
8
+ readonly role: USER_ROLE;
7
9
  }
8
10
  /**
9
11
  * Represents an authenticated user (excluding sensitive data).
@@ -11,9 +13,10 @@ export interface UserData {
11
13
  export declare class User {
12
14
  readonly identity: string;
13
15
  readonly name: string;
16
+ readonly role: USER_ROLE;
14
17
  /**
15
18
  * Creates a User instance.
16
- * @param data - User identity and name.
19
+ * @param data - User identity, name and role.
17
20
  */
18
21
  constructor(data: UserData);
19
22
  /**
@@ -42,6 +45,11 @@ export declare class User {
42
45
  * Falls back to identity if name is missing.
43
46
  */
44
47
  getDisplayName(): string;
48
+ /**
49
+ * Checks whether the user holds the given role.
50
+ * @param role - Role to check against.
51
+ */
52
+ hasRole(role: USER_ROLE): boolean;
45
53
  /**
46
54
  * Checks if the user's identity is a valid email address.
47
55
  * @returns True if identity is an email.
@@ -55,7 +63,7 @@ export declare class User {
55
63
  /**
56
64
  * Compares this user with another for equality.
57
65
  * @param other - Another User instance.
58
- * @returns True if both identity and name match.
66
+ * @returns True if identity, name and role match.
59
67
  */
60
68
  equals(other: User): boolean;
61
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/user.model.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAID;;GAEG;AACH,qBAAa,IAAI;IACf,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;;OAGG;gBACS,IAAI,EAAE,QAAQ;IAK1B;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIjC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIrC;;;OAGG;IACH,MAAM,IAAI,QAAQ;IAOlB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;OAGG;IACH,cAAc,IAAI,MAAM;IAIxB;;;OAGG;IACH,eAAe,IAAI,OAAO;IAK1B;;;OAGG;IACH,WAAW,IAAI,MAAM;IASrB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;CAG7B"}
1
+ {"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/user.model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B;AAID;;GAEG;AACH,qBAAa,IAAI;IACf,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,IAAI,EAAE,SAAS,CAAC;IAEhC;;;OAGG;gBACS,IAAI,EAAE,QAAQ;IAM1B;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIjC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIrC;;;OAGG;IACH,MAAM,IAAI,QAAQ;IAQlB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;OAGG;IACH,cAAc,IAAI,MAAM;IAIxB;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAIjC;;;OAGG;IACH,eAAe,IAAI,OAAO;IAK1B;;;OAGG;IACH,WAAW,IAAI,MAAM;IASrB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;CAG7B"}
@@ -39,7 +39,7 @@ export declare const collectionContract: {
39
39
  statusMessage: z.ZodString;
40
40
  accountNo: z.ZodString;
41
41
  walletId: z.ZodString;
42
- transactionDate: z.ZodString;
42
+ transactionDate: z.ZodISODateTime;
43
43
  narration: z.ZodString;
44
44
  msisdn: z.ZodString;
45
45
  channel: z.ZodEnum<typeof import("./collection.types.js").COLLECTION_CHANNEL>;
@@ -55,9 +55,9 @@ export declare const collectionContract: {
55
55
  transactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
56
56
  serviceFeeTransactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
57
57
  requestId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
58
- completedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
59
- createdAt: z.ZodString;
60
- updatedAt: z.ZodString;
58
+ completedAt: z.ZodOptional<z.ZodNullable<z.ZodISODateTime>>;
59
+ createdAt: z.ZodISODateTime;
60
+ updatedAt: z.ZodISODateTime;
61
61
  notes: z.ZodOptional<z.ZodString>;
62
62
  currencyCode: z.ZodDefault<z.ZodString>;
63
63
  }, z.core.$strip>>;
@@ -101,7 +101,7 @@ export declare const collectionContract: {
101
101
  statusMessage: z.ZodString;
102
102
  accountNo: z.ZodString;
103
103
  walletId: z.ZodString;
104
- transactionDate: z.ZodString;
104
+ transactionDate: z.ZodISODateTime;
105
105
  narration: z.ZodString;
106
106
  msisdn: z.ZodString;
107
107
  channel: z.ZodEnum<typeof import("./collection.types.js").COLLECTION_CHANNEL>;
@@ -117,9 +117,9 @@ export declare const collectionContract: {
117
117
  transactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
118
118
  serviceFeeTransactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
119
119
  requestId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
120
- completedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
121
- createdAt: z.ZodString;
122
- updatedAt: z.ZodString;
120
+ completedAt: z.ZodOptional<z.ZodNullable<z.ZodISODateTime>>;
121
+ createdAt: z.ZodISODateTime;
122
+ updatedAt: z.ZodISODateTime;
123
123
  notes: z.ZodOptional<z.ZodString>;
124
124
  currencyCode: z.ZodDefault<z.ZodString>;
125
125
  }, z.core.$strip>;
@@ -27,7 +27,7 @@ export declare const CollectionDTOSchemas: {
27
27
  statusMessage: z.ZodString;
28
28
  accountNo: z.ZodString;
29
29
  walletId: z.ZodString;
30
- transactionDate: z.ZodString;
30
+ transactionDate: z.ZodISODateTime;
31
31
  narration: z.ZodString;
32
32
  msisdn: z.ZodString;
33
33
  channel: z.ZodEnum<typeof COLLECTION_CHANNEL>;
@@ -43,9 +43,9 @@ export declare const CollectionDTOSchemas: {
43
43
  transactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
44
44
  serviceFeeTransactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
45
45
  requestId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
46
- completedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
47
- createdAt: z.ZodString;
48
- updatedAt: z.ZodString;
46
+ completedAt: z.ZodOptional<z.ZodNullable<z.ZodISODateTime>>;
47
+ createdAt: z.ZodISODateTime;
48
+ updatedAt: z.ZodISODateTime;
49
49
  notes: z.ZodOptional<z.ZodString>;
50
50
  currencyCode: z.ZodDefault<z.ZodString>;
51
51
  }, z.core.$strip>;
@@ -57,8 +57,8 @@ export declare const CollectionDTOSchemas: {
57
57
  asc: "asc";
58
58
  desc: "desc";
59
59
  }>>;
60
- startDate: z.ZodOptional<z.ZodString>;
61
- endDate: z.ZodOptional<z.ZodString>;
60
+ startDate: z.ZodOptional<z.ZodISODateTime>;
61
+ endDate: z.ZodOptional<z.ZodISODateTime>;
62
62
  msisdn: z.ZodOptional<z.ZodString>;
63
63
  id: z.ZodOptional<z.ZodString>;
64
64
  idIn: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -50,19 +50,19 @@ export declare const payoutContract: {
50
50
  currencyCode: z.ZodString;
51
51
  recipientNames: z.ZodOptional<z.ZodString>;
52
52
  transactionRef: z.ZodString;
53
- transactionDate: z.ZodString;
53
+ transactionDate: z.ZodISODateTime;
54
54
  externalId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
55
55
  cbaReferenceNo: z.ZodOptional<z.ZodString>;
56
56
  beepTransactionId: z.ZodOptional<z.ZodString>;
57
57
  receiptNumber: z.ZodOptional<z.ZodString>;
58
- createdAt: z.ZodString;
58
+ createdAt: z.ZodISODateTime;
59
59
  reversedTransactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
60
60
  transactionId: z.ZodString;
61
61
  serviceFeeTransactionId: z.ZodOptional<z.ZodString>;
62
62
  isReconciled: z.ZodOptional<z.ZodNumber>;
63
63
  requestId: z.ZodOptional<z.ZodString>;
64
64
  notes: z.ZodOptional<z.ZodString>;
65
- updatedAt: z.ZodOptional<z.ZodString>;
65
+ updatedAt: z.ZodOptional<z.ZodISODateTime>;
66
66
  }, z.core.$strip>>;
67
67
  total: z.ZodNumber;
68
68
  }, z.core.$strip>;
@@ -114,19 +114,19 @@ export declare const payoutContract: {
114
114
  currencyCode: z.ZodString;
115
115
  recipientNames: z.ZodOptional<z.ZodString>;
116
116
  transactionRef: z.ZodString;
117
- transactionDate: z.ZodString;
117
+ transactionDate: z.ZodISODateTime;
118
118
  externalId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
119
119
  cbaReferenceNo: z.ZodOptional<z.ZodString>;
120
120
  beepTransactionId: z.ZodOptional<z.ZodString>;
121
121
  receiptNumber: z.ZodOptional<z.ZodString>;
122
- createdAt: z.ZodString;
122
+ createdAt: z.ZodISODateTime;
123
123
  reversedTransactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
124
124
  transactionId: z.ZodString;
125
125
  serviceFeeTransactionId: z.ZodOptional<z.ZodString>;
126
126
  isReconciled: z.ZodOptional<z.ZodNumber>;
127
127
  requestId: z.ZodOptional<z.ZodString>;
128
128
  notes: z.ZodOptional<z.ZodString>;
129
- updatedAt: z.ZodOptional<z.ZodString>;
129
+ updatedAt: z.ZodOptional<z.ZodISODateTime>;
130
130
  }, z.core.$strip>;
131
131
  401: z.ZodObject<{
132
132
  reason: z.ZodOptional<z.ZodString>;
@@ -48,19 +48,19 @@ export declare const PayoutDTOSchemas: {
48
48
  currencyCode: z.ZodString;
49
49
  recipientNames: z.ZodOptional<z.ZodString>;
50
50
  transactionRef: z.ZodString;
51
- transactionDate: z.ZodString;
51
+ transactionDate: z.ZodISODateTime;
52
52
  externalId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
53
53
  cbaReferenceNo: z.ZodOptional<z.ZodString>;
54
54
  beepTransactionId: z.ZodOptional<z.ZodString>;
55
55
  receiptNumber: z.ZodOptional<z.ZodString>;
56
- createdAt: z.ZodString;
56
+ createdAt: z.ZodISODateTime;
57
57
  reversedTransactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
58
58
  transactionId: z.ZodString;
59
59
  serviceFeeTransactionId: z.ZodOptional<z.ZodString>;
60
60
  isReconciled: z.ZodOptional<z.ZodNumber>;
61
61
  requestId: z.ZodOptional<z.ZodString>;
62
62
  notes: z.ZodOptional<z.ZodString>;
63
- updatedAt: z.ZodOptional<z.ZodString>;
63
+ updatedAt: z.ZodOptional<z.ZodISODateTime>;
64
64
  }, z.core.$strip>;
65
65
  payoutFilters: z.ZodObject<{
66
66
  page: z.ZodDefault<z.ZodNumber>;
@@ -70,8 +70,8 @@ export declare const PayoutDTOSchemas: {
70
70
  asc: "asc";
71
71
  desc: "desc";
72
72
  }>>;
73
- startDate: z.ZodOptional<z.ZodString>;
74
- endDate: z.ZodOptional<z.ZodString>;
73
+ startDate: z.ZodOptional<z.ZodISODateTime>;
74
+ endDate: z.ZodOptional<z.ZodISODateTime>;
75
75
  msisdn: z.ZodOptional<z.ZodString>;
76
76
  accountNo: z.ZodOptional<z.ZodString>;
77
77
  walletId: z.ZodOptional<z.ZodString>;
@@ -123,7 +123,7 @@ export declare const PayoutDTOSchemas: {
123
123
  walletSummary: z.ZodObject<{
124
124
  balance: z.ZodNumber;
125
125
  currency: z.ZodString;
126
- lastUpdated: z.ZodString;
126
+ lastUpdated: z.ZodISODateTime;
127
127
  }, z.core.$strip>;
128
128
  transactionSummary: z.ZodObject<{
129
129
  yesterday: z.ZodNumber;
@@ -0,0 +1,5 @@
1
+ export * from "./settlement.api-contract.js";
2
+ export * from "./settlement.model.js";
3
+ export * from "./settlement.repository.js";
4
+ export * from "./settlement.types.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/settlement/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,255 @@
1
+ import { z } from "zod";
2
+ export declare const settlementContract: {
3
+ getSettlements: {
4
+ query: z.ZodObject<{
5
+ status: z.ZodOptional<z.ZodEnum<typeof import("./settlement.types.js").SETTLEMENT_STATUS>>;
6
+ accountNo: z.ZodOptional<z.ZodString>;
7
+ walletId: z.ZodOptional<z.ZodString>;
8
+ }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
9
+ summary: "List settlements";
10
+ description: "Retrieve settlements belonging to your vendor, with optional filtering and sorting via query params";
11
+ method: "GET";
12
+ path: "";
13
+ responses: {
14
+ 200: z.ZodArray<z.ZodObject<{
15
+ id: z.ZodString;
16
+ date: z.ZodString;
17
+ initiatedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
18
+ initiatedById: z.ZodOptional<z.ZodNullable<z.ZodString>>;
19
+ actionedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
20
+ actionedById: z.ZodOptional<z.ZodNullable<z.ZodString>>;
21
+ vendorId: z.ZodString;
22
+ walletId: z.ZodString;
23
+ accountNo: z.ZodString;
24
+ status: z.ZodEnum<typeof import("./settlement.types.js").SETTLEMENT_STATUS>;
25
+ statusCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26
+ description: z.ZodString;
27
+ bankAccountNo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
28
+ bankAccountName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
29
+ bankCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
30
+ amount: z.ZodNumber;
31
+ payoutId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
32
+ transactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
33
+ createdAt: z.ZodString;
34
+ updatedAt: z.ZodString;
35
+ }, z.core.$strip>>;
36
+ 401: z.ZodObject<{
37
+ reason: z.ZodOptional<z.ZodString>;
38
+ error: z.ZodOptional<z.ZodString>;
39
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
40
+ message: z.ZodOptional<z.ZodString>;
41
+ statusCode: z.ZodLiteral<401>;
42
+ }, z.core.$strip>;
43
+ 403: z.ZodObject<{
44
+ reason: z.ZodOptional<z.ZodString>;
45
+ error: z.ZodOptional<z.ZodString>;
46
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
47
+ message: z.ZodOptional<z.ZodString>;
48
+ statusCode: z.ZodLiteral<403>;
49
+ }, z.core.$strip>;
50
+ 500: z.ZodObject<{
51
+ reason: z.ZodOptional<z.ZodString>;
52
+ error: z.ZodOptional<z.ZodString>;
53
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
54
+ message: z.ZodOptional<z.ZodString>;
55
+ statusCode: z.ZodLiteral<500>;
56
+ }, z.core.$strip>;
57
+ };
58
+ };
59
+ getSettlement: {
60
+ pathParams: z.ZodObject<{
61
+ id: z.ZodString;
62
+ }, z.core.$strip>;
63
+ summary: "Get settlement details";
64
+ description: "Retrieve detailed information about a specific settlement";
65
+ method: "GET";
66
+ path: "/:id";
67
+ responses: {
68
+ 200: z.ZodObject<{
69
+ id: z.ZodString;
70
+ date: z.ZodString;
71
+ initiatedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
72
+ initiatedById: z.ZodOptional<z.ZodNullable<z.ZodString>>;
73
+ actionedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
74
+ actionedById: z.ZodOptional<z.ZodNullable<z.ZodString>>;
75
+ vendorId: z.ZodString;
76
+ walletId: z.ZodString;
77
+ accountNo: z.ZodString;
78
+ status: z.ZodEnum<typeof import("./settlement.types.js").SETTLEMENT_STATUS>;
79
+ statusCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
80
+ description: z.ZodString;
81
+ bankAccountNo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
82
+ bankAccountName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
83
+ bankCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
84
+ amount: z.ZodNumber;
85
+ payoutId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
86
+ transactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
87
+ createdAt: z.ZodString;
88
+ updatedAt: z.ZodString;
89
+ }, z.core.$strip>;
90
+ 401: z.ZodObject<{
91
+ reason: z.ZodOptional<z.ZodString>;
92
+ error: z.ZodOptional<z.ZodString>;
93
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
94
+ message: z.ZodOptional<z.ZodString>;
95
+ statusCode: z.ZodLiteral<401>;
96
+ }, z.core.$strip>;
97
+ 403: z.ZodObject<{
98
+ reason: z.ZodOptional<z.ZodString>;
99
+ error: z.ZodOptional<z.ZodString>;
100
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
101
+ message: z.ZodOptional<z.ZodString>;
102
+ statusCode: z.ZodLiteral<403>;
103
+ }, z.core.$strip>;
104
+ 404: z.ZodObject<{
105
+ reason: z.ZodOptional<z.ZodString>;
106
+ error: z.ZodOptional<z.ZodString>;
107
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
108
+ message: z.ZodOptional<z.ZodString>;
109
+ statusCode: z.ZodLiteral<404>;
110
+ }, z.core.$strip>;
111
+ 500: z.ZodObject<{
112
+ reason: z.ZodOptional<z.ZodString>;
113
+ error: z.ZodOptional<z.ZodString>;
114
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
115
+ message: z.ZodOptional<z.ZodString>;
116
+ statusCode: z.ZodLiteral<500>;
117
+ }, z.core.$strip>;
118
+ };
119
+ };
120
+ createSettlement: {
121
+ summary: "Create settlement";
122
+ description: string;
123
+ method: "POST";
124
+ body: z.ZodObject<{
125
+ accountNo: z.ZodString;
126
+ description: z.ZodString;
127
+ amount: z.ZodNumber;
128
+ }, z.core.$strip>;
129
+ path: "";
130
+ responses: {
131
+ 201: z.ZodObject<{
132
+ status: z.ZodEnum<typeof import("./settlement.types.js").CREATE_SETTLEMENT_STATUS>;
133
+ data: z.ZodOptional<z.ZodObject<{
134
+ id: z.ZodString;
135
+ date: z.ZodString;
136
+ initiatedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
137
+ initiatedById: z.ZodOptional<z.ZodNullable<z.ZodString>>;
138
+ actionedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
139
+ actionedById: z.ZodOptional<z.ZodNullable<z.ZodString>>;
140
+ vendorId: z.ZodString;
141
+ walletId: z.ZodString;
142
+ accountNo: z.ZodString;
143
+ status: z.ZodEnum<typeof import("./settlement.types.js").SETTLEMENT_STATUS>;
144
+ statusCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
145
+ description: z.ZodString;
146
+ bankAccountNo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
147
+ bankAccountName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
148
+ bankCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
149
+ amount: z.ZodNumber;
150
+ payoutId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
151
+ transactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
152
+ createdAt: z.ZodString;
153
+ updatedAt: z.ZodString;
154
+ }, z.core.$strip>>;
155
+ }, z.core.$strip>;
156
+ 400: z.ZodObject<{
157
+ reason: z.ZodOptional<z.ZodString>;
158
+ error: z.ZodOptional<z.ZodString>;
159
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
160
+ message: z.ZodOptional<z.ZodString>;
161
+ statusCode: z.ZodLiteral<400>;
162
+ }, z.core.$strip>;
163
+ 401: z.ZodObject<{
164
+ reason: z.ZodOptional<z.ZodString>;
165
+ error: z.ZodOptional<z.ZodString>;
166
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
167
+ message: z.ZodOptional<z.ZodString>;
168
+ statusCode: z.ZodLiteral<401>;
169
+ }, z.core.$strip>;
170
+ 403: z.ZodObject<{
171
+ reason: z.ZodOptional<z.ZodString>;
172
+ error: z.ZodOptional<z.ZodString>;
173
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
174
+ message: z.ZodOptional<z.ZodString>;
175
+ statusCode: z.ZodLiteral<403>;
176
+ }, z.core.$strip>;
177
+ 500: z.ZodObject<{
178
+ reason: z.ZodOptional<z.ZodString>;
179
+ error: z.ZodOptional<z.ZodString>;
180
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
181
+ message: z.ZodOptional<z.ZodString>;
182
+ statusCode: z.ZodLiteral<500>;
183
+ }, z.core.$strip>;
184
+ };
185
+ };
186
+ actionSettlement: {
187
+ pathParams: z.ZodObject<{
188
+ id: z.ZodString;
189
+ }, z.core.$strip>;
190
+ summary: "Action settlement";
191
+ description: string;
192
+ method: "POST";
193
+ body: z.ZodObject<{
194
+ status: z.ZodEnum<typeof import("./settlement.types.js").SETTLEMENT_ACTION>;
195
+ }, z.core.$strip>;
196
+ path: "/:id/action";
197
+ responses: {
198
+ 201: z.ZodObject<{
199
+ status: z.ZodEnum<typeof import("./settlement.types.js").ACTION_SETTLEMENT_STATUS>;
200
+ data: z.ZodOptional<z.ZodObject<{
201
+ id: z.ZodString;
202
+ date: z.ZodString;
203
+ initiatedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
204
+ initiatedById: z.ZodOptional<z.ZodNullable<z.ZodString>>;
205
+ actionedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
206
+ actionedById: z.ZodOptional<z.ZodNullable<z.ZodString>>;
207
+ vendorId: z.ZodString;
208
+ walletId: z.ZodString;
209
+ accountNo: z.ZodString;
210
+ status: z.ZodEnum<typeof import("./settlement.types.js").SETTLEMENT_STATUS>;
211
+ statusCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
212
+ description: z.ZodString;
213
+ bankAccountNo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
214
+ bankAccountName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
215
+ bankCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
216
+ amount: z.ZodNumber;
217
+ payoutId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
218
+ transactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
219
+ createdAt: z.ZodString;
220
+ updatedAt: z.ZodString;
221
+ }, z.core.$strip>>;
222
+ }, z.core.$strip>;
223
+ 400: z.ZodObject<{
224
+ reason: z.ZodOptional<z.ZodString>;
225
+ error: z.ZodOptional<z.ZodString>;
226
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
227
+ message: z.ZodOptional<z.ZodString>;
228
+ statusCode: z.ZodLiteral<400>;
229
+ }, z.core.$strip>;
230
+ 401: z.ZodObject<{
231
+ reason: z.ZodOptional<z.ZodString>;
232
+ error: z.ZodOptional<z.ZodString>;
233
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
234
+ message: z.ZodOptional<z.ZodString>;
235
+ statusCode: z.ZodLiteral<401>;
236
+ }, z.core.$strip>;
237
+ 403: z.ZodObject<{
238
+ reason: z.ZodOptional<z.ZodString>;
239
+ error: z.ZodOptional<z.ZodString>;
240
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
241
+ message: z.ZodOptional<z.ZodString>;
242
+ statusCode: z.ZodLiteral<403>;
243
+ }, z.core.$strip>;
244
+ 500: z.ZodObject<{
245
+ reason: z.ZodOptional<z.ZodString>;
246
+ error: z.ZodOptional<z.ZodString>;
247
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
248
+ message: z.ZodOptional<z.ZodString>;
249
+ statusCode: z.ZodLiteral<500>;
250
+ }, z.core.$strip>;
251
+ };
252
+ };
253
+ };
254
+ export type SettlementContract = typeof settlementContract;
255
+ //# sourceMappingURL=settlement.api-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settlement.api-contract.d.ts","sourceRoot":"","sources":["../../../src/modules/settlement/settlement.api-contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwE7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC"}
@@ -0,0 +1,106 @@
1
+ import { Amount } from "@temboplus/frontend-core";
2
+ import { SETTLEMENT_STATUS } from "./settlement.types.js";
3
+ export interface SettlementStatusInfo {
4
+ label: string;
5
+ description: string;
6
+ category: "success" | "pending" | "failed";
7
+ color: "success" | "warning" | "error";
8
+ userFriendlyMessage: string;
9
+ }
10
+ export declare const SETTLEMENT_STATUS_INFO: Record<SETTLEMENT_STATUS, SettlementStatusInfo>;
11
+ /**
12
+ * Raw settlement data as returned by the API.
13
+ */
14
+ export interface SettlementData {
15
+ id: string;
16
+ date: string;
17
+ initiatedAt?: string | null;
18
+ initiatedById?: string | null;
19
+ actionedAt?: string | null;
20
+ actionedById?: string | null;
21
+ vendorId: string;
22
+ walletId: string;
23
+ accountNo: string;
24
+ status: SETTLEMENT_STATUS;
25
+ statusCode?: string | null;
26
+ description: string;
27
+ bankAccountNo?: string | null;
28
+ bankAccountName?: string | null;
29
+ bankCode?: string | null;
30
+ amount: number;
31
+ payoutId?: string | null;
32
+ transactionId?: string | null;
33
+ createdAt: string;
34
+ updatedAt: string;
35
+ }
36
+ /**
37
+ * Represents a settlement — a movement of funds from a vendor's
38
+ * wallet to their bank account.
39
+ */
40
+ export declare class Settlement {
41
+ readonly id: string;
42
+ readonly date: Date;
43
+ readonly initiatedAt?: Date;
44
+ readonly initiatedById?: string | null;
45
+ readonly actionedAt?: Date;
46
+ readonly actionedById?: string | null;
47
+ readonly vendorId: string;
48
+ readonly walletId: string;
49
+ readonly accountNo: string;
50
+ readonly status: SETTLEMENT_STATUS;
51
+ readonly statusCode?: string | null;
52
+ readonly description: string;
53
+ readonly bankAccountNo?: string | null;
54
+ readonly bankAccountName?: string | null;
55
+ readonly bankCode?: string | null;
56
+ readonly amount: Amount;
57
+ readonly payoutId?: string | null;
58
+ readonly transactionId?: string | null;
59
+ readonly createdAt: Date;
60
+ readonly updatedAt: Date;
61
+ private readonly _originalData;
62
+ constructor(data: SettlementData);
63
+ /**
64
+ * Get access to the original data used to create this settlement
65
+ */
66
+ getOriginalData(): Readonly<SettlementData>;
67
+ /**
68
+ * Check if the settlement is awaiting approval
69
+ */
70
+ isPending(): boolean;
71
+ /**
72
+ * Check if the settlement was approved
73
+ */
74
+ isApproved(): boolean;
75
+ /**
76
+ * Check if the settlement was rejected
77
+ */
78
+ isRejected(): boolean;
79
+ /**
80
+ * Check if the settlement can still be approved or rejected.
81
+ * Only PENDING settlements can be actioned, and never by the
82
+ * user who initiated them (enforced server-side).
83
+ */
84
+ canBeActioned(): boolean;
85
+ /**
86
+ * Get status color and label
87
+ */
88
+ getStatusInfo(): SettlementStatusInfo;
89
+ /**
90
+ * Create Settlement instance from raw API data
91
+ */
92
+ static from(data: unknown): Settlement | undefined;
93
+ /**
94
+ * Create multiple Settlement instances from raw API data
95
+ */
96
+ static createMany(dataArray: unknown[]): Settlement[];
97
+ /**
98
+ * Create Settlement instance from JSON (same shape as SettlementData)
99
+ */
100
+ static fromJSON(json: SettlementData): Settlement | undefined;
101
+ /**
102
+ * Convert to JSON representation (same shape as SettlementData)
103
+ */
104
+ toJSON(): SettlementData;
105
+ }
106
+ //# sourceMappingURL=settlement.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settlement.model.d.ts","sourceRoot":"","sources":["../../../src/modules/settlement/settlement.model.ts"],"names":[],"mappings":"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"}