@temboplus/afloat 0.1.77-beta.7 → 0.1.77-beta.9
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/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/modules/auth/auth.contract.d.ts +2 -2
- package/dist/modules/auth/company-membership.model.d.ts +122 -9
- package/dist/modules/auth/user.model.d.ts +238 -15
- package/dist/modules/contact/contact-info.model.d.ts +180 -533
- package/dist/modules/contact/contact.model.d.ts +309 -32
- package/dist/modules/login/login.model.d.ts +53 -23
- package/dist/modules/payout/payout.model.d.ts +242 -2
- package/dist/modules/profile/profile.model.d.ts +65 -30
- package/dist/modules/team-member/role.model.d.ts +49 -1
- package/dist/modules/team-member/team-member.model.d.ts +106 -6
- package/dist/modules/wallet/narration.model.d.ts +34 -38
- package/dist/modules/wallet/statement-entry.model.d.ts +172 -73
- package/dist/modules/wallet/wallet.model.d.ts +56 -19
- package/package.json +2 -2
|
@@ -1,6 +1,119 @@
|
|
|
1
1
|
import { PayoutDTO, PayoutStatus, PayoutApprovalStatus, PayoutAuthorizer } from "@/modules/payout/payout.dtos.js";
|
|
2
2
|
import { Amount } from "@temboplus/frontend-core";
|
|
3
3
|
import { ContactInfo } from "../contact/contact-info.model.js";
|
|
4
|
+
import z from "zod";
|
|
5
|
+
/**
|
|
6
|
+
* Zod schema for Payout JSON serialization
|
|
7
|
+
* This mirrors the PayoutDTO structure but is specifically for JSON serialization
|
|
8
|
+
*/
|
|
9
|
+
export declare const PayoutJSONSchema: z.ZodObject<{
|
|
10
|
+
id: z.ZodString;
|
|
11
|
+
profileId: z.ZodString;
|
|
12
|
+
payeeName: z.ZodString;
|
|
13
|
+
channel: z.ZodString;
|
|
14
|
+
msisdn: z.ZodString;
|
|
15
|
+
amount: z.ZodNumber;
|
|
16
|
+
currencyCode: z.ZodString;
|
|
17
|
+
countryCode: z.ZodString;
|
|
18
|
+
description: z.ZodString;
|
|
19
|
+
notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
20
|
+
status: z.ZodNativeEnum<typeof PayoutStatus>;
|
|
21
|
+
statusMessage: z.ZodString;
|
|
22
|
+
partnerReference: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
23
|
+
createdAt: z.ZodString;
|
|
24
|
+
updatedAt: z.ZodString;
|
|
25
|
+
actionedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26
|
+
approvalStatus: z.ZodOptional<z.ZodNullable<z.ZodNativeEnum<typeof PayoutApprovalStatus>>>;
|
|
27
|
+
createdBy: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
28
|
+
id: z.ZodString;
|
|
29
|
+
name: z.ZodString;
|
|
30
|
+
identity: z.ZodString;
|
|
31
|
+
}, "strip", z.ZodTypeAny, {
|
|
32
|
+
name: string;
|
|
33
|
+
id: string;
|
|
34
|
+
identity: string;
|
|
35
|
+
}, {
|
|
36
|
+
name: string;
|
|
37
|
+
id: string;
|
|
38
|
+
identity: string;
|
|
39
|
+
}>>>;
|
|
40
|
+
actionedBy: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
41
|
+
id: z.ZodString;
|
|
42
|
+
name: z.ZodString;
|
|
43
|
+
identity: z.ZodString;
|
|
44
|
+
}, "strip", z.ZodTypeAny, {
|
|
45
|
+
name: string;
|
|
46
|
+
id: string;
|
|
47
|
+
identity: string;
|
|
48
|
+
}, {
|
|
49
|
+
name: string;
|
|
50
|
+
id: string;
|
|
51
|
+
identity: string;
|
|
52
|
+
}>>>;
|
|
53
|
+
version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
54
|
+
}, "strip", z.ZodTypeAny, {
|
|
55
|
+
status: PayoutStatus;
|
|
56
|
+
id: string;
|
|
57
|
+
version: string;
|
|
58
|
+
profileId: string;
|
|
59
|
+
createdAt: string;
|
|
60
|
+
updatedAt: string;
|
|
61
|
+
description: string;
|
|
62
|
+
channel: string;
|
|
63
|
+
countryCode: string;
|
|
64
|
+
currencyCode: string;
|
|
65
|
+
msisdn: string;
|
|
66
|
+
amount: number;
|
|
67
|
+
payeeName: string;
|
|
68
|
+
statusMessage: string;
|
|
69
|
+
notes?: string | null | undefined;
|
|
70
|
+
partnerReference?: string | null | undefined;
|
|
71
|
+
actionedAt?: string | null | undefined;
|
|
72
|
+
approvalStatus?: PayoutApprovalStatus | null | undefined;
|
|
73
|
+
createdBy?: {
|
|
74
|
+
name: string;
|
|
75
|
+
id: string;
|
|
76
|
+
identity: string;
|
|
77
|
+
} | null | undefined;
|
|
78
|
+
actionedBy?: {
|
|
79
|
+
name: string;
|
|
80
|
+
id: string;
|
|
81
|
+
identity: string;
|
|
82
|
+
} | null | undefined;
|
|
83
|
+
}, {
|
|
84
|
+
status: PayoutStatus;
|
|
85
|
+
id: string;
|
|
86
|
+
profileId: string;
|
|
87
|
+
createdAt: string;
|
|
88
|
+
updatedAt: string;
|
|
89
|
+
description: string;
|
|
90
|
+
channel: string;
|
|
91
|
+
countryCode: string;
|
|
92
|
+
currencyCode: string;
|
|
93
|
+
msisdn: string;
|
|
94
|
+
amount: number;
|
|
95
|
+
payeeName: string;
|
|
96
|
+
statusMessage: string;
|
|
97
|
+
version?: string | undefined;
|
|
98
|
+
notes?: string | null | undefined;
|
|
99
|
+
partnerReference?: string | null | undefined;
|
|
100
|
+
actionedAt?: string | null | undefined;
|
|
101
|
+
approvalStatus?: PayoutApprovalStatus | null | undefined;
|
|
102
|
+
createdBy?: {
|
|
103
|
+
name: string;
|
|
104
|
+
id: string;
|
|
105
|
+
identity: string;
|
|
106
|
+
} | null | undefined;
|
|
107
|
+
actionedBy?: {
|
|
108
|
+
name: string;
|
|
109
|
+
id: string;
|
|
110
|
+
identity: string;
|
|
111
|
+
} | null | undefined;
|
|
112
|
+
}>;
|
|
113
|
+
/**
|
|
114
|
+
* Infer the PayoutJSON type from the schema
|
|
115
|
+
*/
|
|
116
|
+
export type PayoutJSON = z.infer<typeof PayoutJSONSchema>;
|
|
4
117
|
/**
|
|
5
118
|
* Payout class that wraps the Zod schema and provides additional functionality
|
|
6
119
|
*/
|
|
@@ -133,7 +246,134 @@ export declare class Payout {
|
|
|
133
246
|
*/
|
|
134
247
|
static is(obj: unknown): obj is Payout;
|
|
135
248
|
/**
|
|
136
|
-
|
|
249
|
+
* Serializes the Payout instance to a JSON-compatible object
|
|
250
|
+
*
|
|
251
|
+
* Converts all Date objects to ISO strings for proper JSON serialization.
|
|
252
|
+
* The resulting object can be safely stringified and stored or transmitted.
|
|
253
|
+
*
|
|
254
|
+
* @returns {PayoutJSON} A plain object containing all payout data
|
|
255
|
+
*
|
|
256
|
+
* @example
|
|
257
|
+
* ```typescript
|
|
258
|
+
* const payout = Payout.create(payoutData);
|
|
259
|
+
* const json = payout.toJSON();
|
|
260
|
+
* // {
|
|
261
|
+
* // id: "payout-123",
|
|
262
|
+
* // amount: 50000,
|
|
263
|
+
* // currencyCode: "TZS",
|
|
264
|
+
* // createdAt: "2024-01-15T10:30:00.000Z",
|
|
265
|
+
* // ...
|
|
266
|
+
* // }
|
|
267
|
+
* ```
|
|
268
|
+
*/
|
|
269
|
+
toJSON(): PayoutJSON;
|
|
270
|
+
/**
|
|
271
|
+
* Serializes the Payout instance to a JSON string
|
|
272
|
+
*
|
|
273
|
+
* @returns {string} JSON string representation of the payout
|
|
274
|
+
*
|
|
275
|
+
* @example
|
|
276
|
+
* ```typescript
|
|
277
|
+
* const payout = Payout.create(payoutData);
|
|
278
|
+
* const jsonString = payout.toJSONString();
|
|
279
|
+
*
|
|
280
|
+
* // Store in localStorage
|
|
281
|
+
* localStorage.setItem('pendingPayout', jsonString);
|
|
282
|
+
*
|
|
283
|
+
* // Or send to server
|
|
284
|
+
* await fetch('/api/cache-payout', {
|
|
285
|
+
* method: 'POST',
|
|
286
|
+
* body: jsonString
|
|
287
|
+
* });
|
|
288
|
+
* ```
|
|
289
|
+
*/
|
|
290
|
+
toJSONString(): string;
|
|
291
|
+
/**
|
|
292
|
+
* Creates a Payout instance from a JSON-compatible object or string
|
|
293
|
+
*
|
|
294
|
+
* This method reconstructs a Payout instance from data that was previously
|
|
295
|
+
* serialized using toJSON(). It validates the input data using Zod schema
|
|
296
|
+
* and converts ISO date strings back to Date objects.
|
|
297
|
+
*
|
|
298
|
+
* @param {PayoutJSON | string} json - Either a PayoutJSON object or a JSON string
|
|
299
|
+
* @returns {Payout | undefined} A Payout instance if valid, undefined otherwise
|
|
300
|
+
*
|
|
301
|
+
* @example
|
|
302
|
+
* ```typescript
|
|
303
|
+
* // From localStorage
|
|
304
|
+
* const stored = localStorage.getItem('pendingPayout');
|
|
305
|
+
* const payout = Payout.fromJSON(stored!);
|
|
306
|
+
*
|
|
307
|
+
* if (payout) {
|
|
308
|
+
* console.log(payout.amount.label); // "TSh 50,000.00"
|
|
309
|
+
* console.log(payout.status); // "PENDING"
|
|
310
|
+
* }
|
|
311
|
+
*
|
|
312
|
+
* // From object
|
|
313
|
+
* const payoutJson = {
|
|
314
|
+
* id: "payout-123",
|
|
315
|
+
* amount: 50000,
|
|
316
|
+
* currencyCode: "TZS",
|
|
317
|
+
* createdAt: "2024-01-15T10:30:00.000Z",
|
|
318
|
+
* ...
|
|
319
|
+
* };
|
|
320
|
+
* const payout = Payout.fromJSON(payoutJson);
|
|
321
|
+
* ```
|
|
322
|
+
*/
|
|
323
|
+
static fromJSON(json: PayoutJSON | string): Payout | undefined;
|
|
324
|
+
/**
|
|
325
|
+
* Type guard using Zod schema validation
|
|
326
|
+
*
|
|
327
|
+
* Checks if an unknown value conforms to the PayoutJSON structure
|
|
328
|
+
* without attempting to create a Payout instance.
|
|
329
|
+
*
|
|
330
|
+
* @param {unknown} obj - The object to validate
|
|
331
|
+
* @returns {boolean} True if the object is a valid PayoutJSON
|
|
332
|
+
*
|
|
333
|
+
* @example
|
|
334
|
+
* ```typescript
|
|
335
|
+
* const data = JSON.parse(localStorage.getItem('payout'));
|
|
336
|
+
*
|
|
337
|
+
* if (Payout.isPayoutJSON(data)) {
|
|
338
|
+
* const payout = Payout.fromJSON(data);
|
|
339
|
+
* // TypeScript knows data is PayoutJSON here
|
|
340
|
+
* }
|
|
341
|
+
* ```
|
|
342
|
+
*/
|
|
343
|
+
static isPayoutJSON(obj: unknown): obj is PayoutJSON;
|
|
344
|
+
/**
|
|
345
|
+
* Creates multiple Payout instances from a JSON array
|
|
346
|
+
*
|
|
347
|
+
* @param {PayoutJSON[] | string} jsonArray - Array of PayoutJSON objects or JSON string
|
|
348
|
+
* @returns {Payout[]} Array of Payout instances (invalid items are filtered out)
|
|
349
|
+
*
|
|
350
|
+
* @example
|
|
351
|
+
* ```typescript
|
|
352
|
+
* // From API response
|
|
353
|
+
* const response = await fetch('/api/payouts');
|
|
354
|
+
* const jsonArray = await response.json();
|
|
355
|
+
* const payouts = Payout.fromJSONArray(jsonArray);
|
|
356
|
+
*
|
|
357
|
+
* // From stored array
|
|
358
|
+
* const stored = localStorage.getItem('recentPayouts');
|
|
359
|
+
* const payouts = Payout.fromJSONArray(stored!);
|
|
360
|
+
* ```
|
|
361
|
+
*/
|
|
362
|
+
static fromJSONArray(jsonArray: PayoutJSON[] | string): Payout[];
|
|
363
|
+
/**
|
|
364
|
+
* Serializes an array of Payout instances to JSON
|
|
365
|
+
*
|
|
366
|
+
* @param {Payout[]} payouts - Array of Payout instances to serialize
|
|
367
|
+
* @returns {PayoutJSON[]} Array of PayoutJSON objects
|
|
368
|
+
*
|
|
369
|
+
* @example
|
|
370
|
+
* ```typescript
|
|
371
|
+
* const payouts = [payout1, payout2, payout3];
|
|
372
|
+
* const jsonArray = Payout.toJSONArray(payouts);
|
|
373
|
+
*
|
|
374
|
+
* // Store or transmit
|
|
375
|
+
* localStorage.setItem('recentPayouts', JSON.stringify(jsonArray));
|
|
376
|
+
* ```
|
|
137
377
|
*/
|
|
138
|
-
|
|
378
|
+
static toJSONArray(payouts: Payout[]): PayoutJSON[];
|
|
139
379
|
}
|
|
@@ -1,4 +1,42 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Zod schema for Profile JSON serialization
|
|
4
|
+
*/
|
|
5
|
+
export declare const ProfileJSONSchema: z.ZodObject<{
|
|
6
|
+
id: z.ZodString;
|
|
7
|
+
firstName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
8
|
+
lastName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
9
|
+
displayName: z.ZodString;
|
|
10
|
+
phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
11
|
+
accountNo: z.ZodString;
|
|
12
|
+
email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
13
|
+
autoApprove: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
14
|
+
version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
15
|
+
}, "strip", z.ZodTypeAny, {
|
|
16
|
+
id: string;
|
|
17
|
+
displayName: string;
|
|
18
|
+
accountNo: string;
|
|
19
|
+
version: string;
|
|
20
|
+
firstName?: string | null | undefined;
|
|
21
|
+
lastName?: string | null | undefined;
|
|
22
|
+
phone?: string | null | undefined;
|
|
23
|
+
email?: string | null | undefined;
|
|
24
|
+
autoApprove?: boolean | null | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
id: string;
|
|
27
|
+
displayName: string;
|
|
28
|
+
accountNo: string;
|
|
29
|
+
firstName?: string | null | undefined;
|
|
30
|
+
lastName?: string | null | undefined;
|
|
31
|
+
phone?: string | null | undefined;
|
|
32
|
+
email?: string | null | undefined;
|
|
33
|
+
autoApprove?: boolean | null | undefined;
|
|
34
|
+
version?: string | undefined;
|
|
35
|
+
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Infer the ProfileJSON type from the schema
|
|
38
|
+
*/
|
|
39
|
+
export type ProfileJSON = z.infer<typeof ProfileJSONSchema>;
|
|
2
40
|
/**
|
|
3
41
|
* Represents a user profile in the system.
|
|
4
42
|
*
|
|
@@ -25,16 +63,16 @@ export declare class Profile {
|
|
|
25
63
|
/**
|
|
26
64
|
* Gets the profile schema used for validation.
|
|
27
65
|
*/
|
|
28
|
-
static get schema():
|
|
29
|
-
id:
|
|
30
|
-
firstName:
|
|
31
|
-
lastName:
|
|
32
|
-
displayName:
|
|
33
|
-
phone:
|
|
34
|
-
accountNo:
|
|
35
|
-
email:
|
|
36
|
-
autoApprove:
|
|
37
|
-
}, "strip",
|
|
66
|
+
static get schema(): z.ZodObject<{
|
|
67
|
+
id: z.ZodString;
|
|
68
|
+
firstName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
69
|
+
lastName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
70
|
+
displayName: z.ZodString;
|
|
71
|
+
phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
72
|
+
accountNo: z.ZodString;
|
|
73
|
+
email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
74
|
+
autoApprove: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
75
|
+
}, "strip", z.ZodTypeAny, {
|
|
38
76
|
id: string;
|
|
39
77
|
displayName: string;
|
|
40
78
|
accountNo: string;
|
|
@@ -113,31 +151,12 @@ export declare class Profile {
|
|
|
113
151
|
* Returns the display name if it exists, otherwise returns the first and last name combined.
|
|
114
152
|
*/
|
|
115
153
|
getName(): string;
|
|
116
|
-
/**
|
|
117
|
-
* Creates a plain object representation of the profile for validation or serialization.
|
|
118
|
-
*
|
|
119
|
-
* @returns A plain object matching the ProfileType interface
|
|
120
|
-
*/
|
|
121
|
-
toObject(): ProfileDTO;
|
|
122
|
-
/**
|
|
123
|
-
* Converts the profile to a JSON string.
|
|
124
|
-
*
|
|
125
|
-
* @returns A JSON string representation of the profile
|
|
126
|
-
*/
|
|
127
|
-
toJSON(): string;
|
|
128
154
|
/**
|
|
129
155
|
* Validates the profile data against the Zod schema.
|
|
130
156
|
*
|
|
131
157
|
* @returns True if the profile is valid, false otherwise
|
|
132
158
|
*/
|
|
133
159
|
validate(): boolean;
|
|
134
|
-
/**
|
|
135
|
-
* Creates a Profile instance from a JSON string.
|
|
136
|
-
*
|
|
137
|
-
* @param jsonString - JSON string containing profile data
|
|
138
|
-
* @returns A new Profile instance, or undefined if parsing failed
|
|
139
|
-
*/
|
|
140
|
-
static fromJSON(jsonString: string): Profile | undefined;
|
|
141
160
|
/**
|
|
142
161
|
* Creates a Profile instance from a plain object.
|
|
143
162
|
*
|
|
@@ -152,4 +171,20 @@ export declare class Profile {
|
|
|
152
171
|
* @returns Type predicate indicating if the object is a valid Profile
|
|
153
172
|
*/
|
|
154
173
|
static is(obj: unknown): obj is Profile;
|
|
174
|
+
/**
|
|
175
|
+
* Serializes the Profile instance to a JSON-compatible object
|
|
176
|
+
*/
|
|
177
|
+
toJSON(): ProfileJSON;
|
|
178
|
+
/**
|
|
179
|
+
* Serializes the Profile instance to a JSON string
|
|
180
|
+
*/
|
|
181
|
+
toJSONString(): string;
|
|
182
|
+
/**
|
|
183
|
+
* Creates a Profile instance from a JSON-compatible object or string
|
|
184
|
+
*/
|
|
185
|
+
static fromJSON(json: ProfileJSON | string): Profile | undefined;
|
|
186
|
+
/**
|
|
187
|
+
* Type guard using Zod schema validation
|
|
188
|
+
*/
|
|
189
|
+
static isProfileJSON(obj: unknown): obj is ProfileJSON;
|
|
155
190
|
}
|
|
@@ -1,4 +1,37 @@
|
|
|
1
|
+
import z from "zod";
|
|
1
2
|
import { RoleDTO } from "./team-member.dtos.js";
|
|
3
|
+
/**
|
|
4
|
+
* Zod schema for Role JSON serialization
|
|
5
|
+
*/
|
|
6
|
+
export declare const RoleJSONSchema: z.ZodObject<{
|
|
7
|
+
id: z.ZodString;
|
|
8
|
+
name: z.ZodString;
|
|
9
|
+
description: z.ZodOptional<z.ZodString>;
|
|
10
|
+
access: z.ZodArray<z.ZodString, "many">;
|
|
11
|
+
createdAt: z.ZodString;
|
|
12
|
+
updatedAt: z.ZodString;
|
|
13
|
+
version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
name: string;
|
|
16
|
+
id: string;
|
|
17
|
+
version: string;
|
|
18
|
+
createdAt: string;
|
|
19
|
+
updatedAt: string;
|
|
20
|
+
access: string[];
|
|
21
|
+
description?: string | undefined;
|
|
22
|
+
}, {
|
|
23
|
+
name: string;
|
|
24
|
+
id: string;
|
|
25
|
+
createdAt: string;
|
|
26
|
+
updatedAt: string;
|
|
27
|
+
access: string[];
|
|
28
|
+
version?: string | undefined;
|
|
29
|
+
description?: string | undefined;
|
|
30
|
+
}>;
|
|
31
|
+
/**
|
|
32
|
+
* Infer the RoleJSON type from the schema
|
|
33
|
+
*/
|
|
34
|
+
export type RoleJSON = z.infer<typeof RoleJSONSchema>;
|
|
2
35
|
export declare class Role {
|
|
3
36
|
readonly id: string;
|
|
4
37
|
readonly name: string;
|
|
@@ -9,5 +42,20 @@ export declare class Role {
|
|
|
9
42
|
constructor(data: RoleDTO);
|
|
10
43
|
hasPermission(permission: string): boolean;
|
|
11
44
|
static from(data: RoleDTO): Role | undefined;
|
|
12
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Serializes the Role instance to a JSON-compatible object
|
|
47
|
+
*/
|
|
48
|
+
toJSON(): RoleJSON;
|
|
49
|
+
/**
|
|
50
|
+
* Serializes the Role instance to a JSON string
|
|
51
|
+
*/
|
|
52
|
+
toJSONString(): string;
|
|
53
|
+
/**
|
|
54
|
+
* Creates a Role instance from a JSON-compatible object or string
|
|
55
|
+
*/
|
|
56
|
+
static fromJSON(json: RoleJSON | string): Role | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* Type guard using Zod schema validation
|
|
59
|
+
*/
|
|
60
|
+
static isRoleJSON(obj: unknown): obj is RoleJSON;
|
|
13
61
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import z from "zod";
|
|
1
2
|
import { Role } from "./role.model.js";
|
|
2
3
|
import { RoleDTO } from "./team-member.dtos.js";
|
|
3
4
|
export interface TeamMemberData {
|
|
@@ -14,6 +15,93 @@ export interface TeamMemberData {
|
|
|
14
15
|
createdAt: string;
|
|
15
16
|
updatedAt: string;
|
|
16
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Zod schema for TeamMember JSON serialization
|
|
20
|
+
*/
|
|
21
|
+
export declare const TeamMemberJSONSchema: z.ZodObject<{
|
|
22
|
+
id: z.ZodString;
|
|
23
|
+
name: z.ZodString;
|
|
24
|
+
identity: z.ZodString;
|
|
25
|
+
type: z.ZodString;
|
|
26
|
+
profileId: z.ZodString;
|
|
27
|
+
roleId: z.ZodString;
|
|
28
|
+
resetPassword: z.ZodBoolean;
|
|
29
|
+
isActive: z.ZodBoolean;
|
|
30
|
+
isArchived: z.ZodBoolean;
|
|
31
|
+
role: z.ZodOptional<z.ZodObject<{
|
|
32
|
+
id: z.ZodString;
|
|
33
|
+
name: z.ZodString;
|
|
34
|
+
description: z.ZodOptional<z.ZodString>;
|
|
35
|
+
access: z.ZodArray<z.ZodString, "many">;
|
|
36
|
+
createdAt: z.ZodString;
|
|
37
|
+
updatedAt: z.ZodString;
|
|
38
|
+
version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
39
|
+
}, "strip", z.ZodTypeAny, {
|
|
40
|
+
name: string;
|
|
41
|
+
id: string;
|
|
42
|
+
version: string;
|
|
43
|
+
createdAt: string;
|
|
44
|
+
updatedAt: string;
|
|
45
|
+
access: string[];
|
|
46
|
+
description?: string | undefined;
|
|
47
|
+
}, {
|
|
48
|
+
name: string;
|
|
49
|
+
id: string;
|
|
50
|
+
createdAt: string;
|
|
51
|
+
updatedAt: string;
|
|
52
|
+
access: string[];
|
|
53
|
+
version?: string | undefined;
|
|
54
|
+
description?: string | undefined;
|
|
55
|
+
}>>;
|
|
56
|
+
createdAt: z.ZodString;
|
|
57
|
+
updatedAt: z.ZodString;
|
|
58
|
+
version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
59
|
+
}, "strip", z.ZodTypeAny, {
|
|
60
|
+
type: string;
|
|
61
|
+
name: string;
|
|
62
|
+
id: string;
|
|
63
|
+
version: string;
|
|
64
|
+
profileId: string;
|
|
65
|
+
identity: string;
|
|
66
|
+
roleId: string;
|
|
67
|
+
isActive: boolean;
|
|
68
|
+
isArchived: boolean;
|
|
69
|
+
resetPassword: boolean;
|
|
70
|
+
createdAt: string;
|
|
71
|
+
updatedAt: string;
|
|
72
|
+
role?: {
|
|
73
|
+
name: string;
|
|
74
|
+
id: string;
|
|
75
|
+
version: string;
|
|
76
|
+
createdAt: string;
|
|
77
|
+
updatedAt: string;
|
|
78
|
+
access: string[];
|
|
79
|
+
description?: string | undefined;
|
|
80
|
+
} | undefined;
|
|
81
|
+
}, {
|
|
82
|
+
type: string;
|
|
83
|
+
name: string;
|
|
84
|
+
id: string;
|
|
85
|
+
profileId: string;
|
|
86
|
+
identity: string;
|
|
87
|
+
roleId: string;
|
|
88
|
+
isActive: boolean;
|
|
89
|
+
isArchived: boolean;
|
|
90
|
+
resetPassword: boolean;
|
|
91
|
+
createdAt: string;
|
|
92
|
+
updatedAt: string;
|
|
93
|
+
version?: string | undefined;
|
|
94
|
+
role?: {
|
|
95
|
+
name: string;
|
|
96
|
+
id: string;
|
|
97
|
+
createdAt: string;
|
|
98
|
+
updatedAt: string;
|
|
99
|
+
access: string[];
|
|
100
|
+
version?: string | undefined;
|
|
101
|
+
description?: string | undefined;
|
|
102
|
+
} | undefined;
|
|
103
|
+
}>;
|
|
104
|
+
export type TeamMemberJSON = z.infer<typeof TeamMemberJSONSchema>;
|
|
17
105
|
/**
|
|
18
106
|
* Represents a team member from the admin management perspective.
|
|
19
107
|
*
|
|
@@ -123,15 +211,27 @@ export declare class TeamMember {
|
|
|
123
211
|
*/
|
|
124
212
|
getLastUpdateInfo(): string;
|
|
125
213
|
/**
|
|
126
|
-
|
|
214
|
+
* Serializes the TeamMember instance to a JSON-compatible object
|
|
215
|
+
*/
|
|
216
|
+
toJSON(): TeamMemberJSON;
|
|
217
|
+
/**
|
|
218
|
+
* Serializes the TeamMember instance to a JSON string
|
|
219
|
+
*/
|
|
220
|
+
toJSONString(): string;
|
|
221
|
+
/**
|
|
222
|
+
* Creates a TeamMember instance from a JSON-compatible object or string
|
|
223
|
+
*/
|
|
224
|
+
static fromJSON(json: TeamMemberJSON | string): TeamMember | undefined;
|
|
225
|
+
/**
|
|
226
|
+
* Type guard using Zod schema validation
|
|
127
227
|
*/
|
|
128
|
-
|
|
228
|
+
static isTeamMemberJSON(obj: unknown): obj is TeamMemberJSON;
|
|
129
229
|
/**
|
|
130
|
-
*
|
|
230
|
+
* Creates multiple TeamMember instances from a JSON array
|
|
131
231
|
*/
|
|
132
|
-
|
|
232
|
+
static fromJSONArray(jsonArray: TeamMemberJSON[] | string): TeamMember[];
|
|
133
233
|
/**
|
|
134
|
-
*
|
|
234
|
+
* Serializes an array of TeamMember instances to JSON
|
|
135
235
|
*/
|
|
136
|
-
|
|
236
|
+
static toJSONArray(members: TeamMember[]): TeamMemberJSON[];
|
|
137
237
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ContactInfo, MobileContactInfo, BankContactInfo } from "../contact/contact-info.model.js";
|
|
2
|
+
import z from "zod";
|
|
2
3
|
/** Prefix for Ecobank mobile transfer narrations */
|
|
3
4
|
export declare const ECOBANK_PREFIX = "MOBILE TRANSFER ";
|
|
4
5
|
/** V2 format prefix for payout narrations using contact details */
|
|
@@ -12,12 +13,19 @@ export declare const MOBILE_NARR_PREFIX: string;
|
|
|
12
13
|
/** Legacy format prefix for mobile money payout narrations */
|
|
13
14
|
export declare const LEGACY_MOBILE_NARR_PREFIX: string;
|
|
14
15
|
/**
|
|
15
|
-
*
|
|
16
|
+
* Zod schema for Narration JSON serialization
|
|
16
17
|
*/
|
|
17
|
-
export
|
|
18
|
+
export declare const NarrationJSONSchema: z.ZodObject<{
|
|
19
|
+
text: z.ZodString;
|
|
20
|
+
version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
21
|
+
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
version: string;
|
|
18
23
|
text: string;
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
}, {
|
|
25
|
+
text: string;
|
|
26
|
+
version?: string | undefined;
|
|
27
|
+
}>;
|
|
28
|
+
export type NarrationJSON = z.infer<typeof NarrationJSONSchema>;
|
|
21
29
|
/**
|
|
22
30
|
* Handles payout narration generation and parsing for the Afloat platform.
|
|
23
31
|
*
|
|
@@ -184,46 +192,34 @@ export declare class Narration {
|
|
|
184
192
|
*/
|
|
185
193
|
getMobileContactDetails: () => MobileContactInfo | undefined;
|
|
186
194
|
/**
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
* @returns {NarrationJson} A plain object containing the narration data
|
|
195
|
+
* Type guard to check if an unknown object is a valid Narration instance.
|
|
190
196
|
*
|
|
191
|
-
* @
|
|
192
|
-
*
|
|
193
|
-
* const narration = new Narration("PAYOUT +255123456789 JOHN DOE");
|
|
194
|
-
* const json = narration.toJson();
|
|
195
|
-
* // Returns: { text: "PAYOUT +255123456789 JOHN DOE", version: "2.0" }
|
|
196
|
-
* ```
|
|
197
|
+
* @param obj - The object to check
|
|
198
|
+
* @returns Type predicate indicating if the object is a Narration instance
|
|
197
199
|
*/
|
|
198
|
-
|
|
200
|
+
static is(obj: unknown): obj is Narration;
|
|
199
201
|
/**
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
*
|
|
205
|
-
* @example
|
|
206
|
-
* ```typescript
|
|
207
|
-
* // From object
|
|
208
|
-
* const narration = Narration.fromJson({ text: "PAYOUT +255123456789 JOHN DOE" });
|
|
209
|
-
*
|
|
210
|
-
* // From JSON string
|
|
211
|
-
* const narration = Narration.fromJson('{"text":"PAYOUT +255123456789 JOHN DOE"}');
|
|
212
|
-
* ```
|
|
202
|
+
* Serializes the Narration instance to a JSON-compatible object
|
|
203
|
+
*/
|
|
204
|
+
toJSON(): NarrationJSON;
|
|
205
|
+
/**
|
|
206
|
+
* Serializes the Narration instance to a JSON string
|
|
213
207
|
*/
|
|
214
|
-
|
|
208
|
+
toJSONString(): string;
|
|
215
209
|
/**
|
|
216
|
-
*
|
|
217
|
-
*
|
|
218
|
-
* @param obj - The object to validate
|
|
219
|
-
* @returns True if the object conforms to NarrationJson structure
|
|
210
|
+
* Creates a Narration instance from a JSON-compatible object or string
|
|
220
211
|
*/
|
|
221
|
-
static
|
|
212
|
+
static fromJSON(json: NarrationJSON | string): Narration | undefined;
|
|
222
213
|
/**
|
|
223
|
-
* Type guard
|
|
224
|
-
*
|
|
225
|
-
* @param obj - The object to check
|
|
226
|
-
* @returns Type predicate indicating if the object is a Narration instance
|
|
214
|
+
* Type guard using Zod schema validation
|
|
227
215
|
*/
|
|
228
|
-
static
|
|
216
|
+
static isNarrationJSON(obj: unknown): obj is NarrationJSON;
|
|
217
|
+
/**
|
|
218
|
+
* @deprecated Use toJSON() instead
|
|
219
|
+
*/
|
|
220
|
+
toJson(): NarrationJSON;
|
|
221
|
+
/**
|
|
222
|
+
* @deprecated Use fromJSON() instead
|
|
223
|
+
*/
|
|
224
|
+
static fromJson(json: NarrationJSON | string): Narration | undefined;
|
|
229
225
|
}
|