@brite-future-schools-contracts/contracts 1.0.8 → 2.0.3
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/chunk-3OMU2YSE.js +478 -0
- package/dist/chunk-3OMU2YSE.js.map +1 -0
- package/dist/chunk-R4XE3SFR.js +1 -0
- package/dist/chunk-S3BK5YEH.js +131 -0
- package/dist/chunk-S3BK5YEH.js.map +1 -0
- package/dist/contracts/index.cjs +592 -0
- package/dist/contracts/index.cjs.map +1 -0
- package/dist/contracts/index.d.cts +1141 -0
- package/dist/contracts/index.d.ts +1069 -9648
- package/dist/contracts/index.js +48 -1412
- package/dist/contracts/index.js.map +1 -1
- package/dist/index.cjs +675 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +4 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +132 -1536
- package/dist/index.js.map +1 -1
- package/dist/schemas/index.cjs +554 -0
- package/dist/schemas/index.cjs.map +1 -0
- package/dist/schemas/index.d.cts +708 -0
- package/dist/schemas/index.d.ts +664 -995
- package/dist/schemas/index.js +86 -640
- package/dist/schemas/index.js.map +1 -1
- package/package.json +32 -59
- package/dist/chunk-M6LF6JUL.mjs +0 -557
- package/dist/chunk-M6LF6JUL.mjs.map +0 -1
- package/dist/chunk-VC6SCJVW.mjs +0 -935
- package/dist/chunk-VC6SCJVW.mjs.map +0 -1
- package/dist/contracts/index.d.mts +0 -9720
- package/dist/contracts/index.mjs +0 -36
- package/dist/index.d.mts +0 -4
- package/dist/index.mjs +0 -161
- package/dist/index.mjs.map +0 -1
- package/dist/schemas/index.d.mts +0 -1039
- package/dist/schemas/index.mjs +0 -129
- package/dist/schemas/index.mjs.map +0 -1
- package/src/contracts/index.ts +0 -1209
- package/src/index.ts +0 -2
- package/src/schemas/index.ts +0 -586
- /package/dist/{contracts/index.mjs.map → chunk-R4XE3SFR.js.map} +0 -0
|
@@ -0,0 +1,708 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Brite Future Schools — bfs-contracts
|
|
5
|
+
* Base Zod schemas: reusable primitives shared across all domain schemas.
|
|
6
|
+
*
|
|
7
|
+
* Phase History:
|
|
8
|
+
* Phase 0.1 (2026-06-05): Initial creation
|
|
9
|
+
*
|
|
10
|
+
* @module src/schemas/base
|
|
11
|
+
* @since Phase 0.1
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
declare const CuidSchema: z.ZodString;
|
|
15
|
+
declare const UuidSchema: z.ZodUUID;
|
|
16
|
+
declare const TimestampsSchema: z.ZodObject<{
|
|
17
|
+
createdAt: z.ZodISODateTime;
|
|
18
|
+
updatedAt: z.ZodISODateTime;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
declare const SoftDeleteSchema: z.ZodObject<{
|
|
21
|
+
deletedAt: z.ZodNullable<z.ZodISODateTime>;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
declare const PaginationInputSchema: z.ZodObject<{
|
|
24
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
25
|
+
limit: z.ZodDefault<z.ZodInt>;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
declare function paginatedOutputSchema<T extends z.ZodTypeAny>(itemSchema: T): z.ZodObject<{
|
|
28
|
+
items: z.ZodArray<T>;
|
|
29
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
30
|
+
total: z.ZodInt;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
declare const BranchRefSchema: z.ZodObject<{
|
|
33
|
+
branchId: z.ZodString;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
type Timestamps = z.infer<typeof TimestampsSchema>;
|
|
36
|
+
type SoftDelete = z.infer<typeof SoftDeleteSchema>;
|
|
37
|
+
type PaginationInput = z.infer<typeof PaginationInputSchema>;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Brite Future Schools — bfs-contracts
|
|
41
|
+
* Auth-related Zod schemas.
|
|
42
|
+
*
|
|
43
|
+
* Phase History:
|
|
44
|
+
* Phase 0.1 (2026-06-05): Initial creation
|
|
45
|
+
*
|
|
46
|
+
* @module src/schemas/auth
|
|
47
|
+
* @since Phase 0.1
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
declare const SessionUserRoleSchema: z.ZodObject<{
|
|
51
|
+
id: z.ZodString;
|
|
52
|
+
name: z.ZodString;
|
|
53
|
+
branchId: z.ZodString;
|
|
54
|
+
isPrimary: z.ZodBoolean;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
declare const SessionUserSubRoleSchema: z.ZodObject<{
|
|
57
|
+
id: z.ZodString;
|
|
58
|
+
name: z.ZodString;
|
|
59
|
+
branchId: z.ZodString;
|
|
60
|
+
}, z.core.$strip>;
|
|
61
|
+
declare const SessionUserOutputSchema: z.ZodObject<{
|
|
62
|
+
id: z.ZodString;
|
|
63
|
+
email: z.ZodEmail;
|
|
64
|
+
firstName: z.ZodString;
|
|
65
|
+
lastName: z.ZodString;
|
|
66
|
+
activeBranchId: z.ZodString;
|
|
67
|
+
roles: z.ZodArray<z.ZodObject<{
|
|
68
|
+
id: z.ZodString;
|
|
69
|
+
name: z.ZodString;
|
|
70
|
+
branchId: z.ZodString;
|
|
71
|
+
isPrimary: z.ZodBoolean;
|
|
72
|
+
}, z.core.$strip>>;
|
|
73
|
+
subRoles: z.ZodArray<z.ZodObject<{
|
|
74
|
+
id: z.ZodString;
|
|
75
|
+
name: z.ZodString;
|
|
76
|
+
branchId: z.ZodString;
|
|
77
|
+
}, z.core.$strip>>;
|
|
78
|
+
isActive: z.ZodBoolean;
|
|
79
|
+
mustChangePassword: z.ZodBoolean;
|
|
80
|
+
}, z.core.$strip>;
|
|
81
|
+
declare const LoginInputSchema: z.ZodObject<{
|
|
82
|
+
email: z.ZodEmail;
|
|
83
|
+
password: z.ZodString;
|
|
84
|
+
branchId: z.ZodOptional<z.ZodString>;
|
|
85
|
+
}, z.core.$strip>;
|
|
86
|
+
declare const LoginOutputSchema: z.ZodObject<{
|
|
87
|
+
accessToken: z.ZodString;
|
|
88
|
+
refreshToken: z.ZodString;
|
|
89
|
+
expiresIn: z.ZodInt;
|
|
90
|
+
user: z.ZodObject<{
|
|
91
|
+
id: z.ZodString;
|
|
92
|
+
email: z.ZodEmail;
|
|
93
|
+
firstName: z.ZodString;
|
|
94
|
+
lastName: z.ZodString;
|
|
95
|
+
activeBranchId: z.ZodString;
|
|
96
|
+
roles: z.ZodArray<z.ZodObject<{
|
|
97
|
+
id: z.ZodString;
|
|
98
|
+
name: z.ZodString;
|
|
99
|
+
branchId: z.ZodString;
|
|
100
|
+
isPrimary: z.ZodBoolean;
|
|
101
|
+
}, z.core.$strip>>;
|
|
102
|
+
subRoles: z.ZodArray<z.ZodObject<{
|
|
103
|
+
id: z.ZodString;
|
|
104
|
+
name: z.ZodString;
|
|
105
|
+
branchId: z.ZodString;
|
|
106
|
+
}, z.core.$strip>>;
|
|
107
|
+
isActive: z.ZodBoolean;
|
|
108
|
+
mustChangePassword: z.ZodBoolean;
|
|
109
|
+
}, z.core.$strip>;
|
|
110
|
+
}, z.core.$strip>;
|
|
111
|
+
declare const RefreshTokenInputSchema: z.ZodObject<{
|
|
112
|
+
refreshToken: z.ZodString;
|
|
113
|
+
}, z.core.$strip>;
|
|
114
|
+
declare const RefreshTokenOutputSchema: z.ZodObject<{
|
|
115
|
+
accessToken: z.ZodString;
|
|
116
|
+
expiresIn: z.ZodInt;
|
|
117
|
+
}, z.core.$strip>;
|
|
118
|
+
declare const LogoutInputSchema: z.ZodObject<{
|
|
119
|
+
refreshToken: z.ZodString;
|
|
120
|
+
}, z.core.$strip>;
|
|
121
|
+
declare const ChangePasswordInputSchema: z.ZodObject<{
|
|
122
|
+
currentPassword: z.ZodString;
|
|
123
|
+
newPassword: z.ZodString;
|
|
124
|
+
confirmPassword: z.ZodString;
|
|
125
|
+
}, z.core.$strip>;
|
|
126
|
+
declare const RequestPasswordResetInputSchema: z.ZodObject<{
|
|
127
|
+
email: z.ZodEmail;
|
|
128
|
+
}, z.core.$strip>;
|
|
129
|
+
declare const ResetPasswordInputSchema: z.ZodObject<{
|
|
130
|
+
token: z.ZodString;
|
|
131
|
+
newPassword: z.ZodString;
|
|
132
|
+
confirmPassword: z.ZodString;
|
|
133
|
+
}, z.core.$strip>;
|
|
134
|
+
declare const SwitchBranchInputSchema: z.ZodObject<{
|
|
135
|
+
branchId: z.ZodString;
|
|
136
|
+
}, z.core.$strip>;
|
|
137
|
+
type LoginInput = z.infer<typeof LoginInputSchema>;
|
|
138
|
+
type LoginOutput = z.infer<typeof LoginOutputSchema>;
|
|
139
|
+
type SessionUserOutput = z.infer<typeof SessionUserOutputSchema>;
|
|
140
|
+
type RefreshTokenInput = z.infer<typeof RefreshTokenInputSchema>;
|
|
141
|
+
type RefreshTokenOutput = z.infer<typeof RefreshTokenOutputSchema>;
|
|
142
|
+
type ChangePasswordInput = z.infer<typeof ChangePasswordInputSchema>;
|
|
143
|
+
type SwitchBranchInput = z.infer<typeof SwitchBranchInputSchema>;
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Brite Future Schools — bfs-contracts
|
|
147
|
+
* HR domain Zod schemas — staff creation, listing, and profiles.
|
|
148
|
+
*
|
|
149
|
+
* Phase History:
|
|
150
|
+
* Phase 1 (2026-06-07): Initial creation — staff.create, staff.list,
|
|
151
|
+
* staff.getById wire types
|
|
152
|
+
*
|
|
153
|
+
* @module src/schemas/hr
|
|
154
|
+
* @since Phase 1
|
|
155
|
+
*/
|
|
156
|
+
|
|
157
|
+
declare const EmploymentTypeSchema: z.ZodEnum<{
|
|
158
|
+
permanent: "permanent";
|
|
159
|
+
contract: "contract";
|
|
160
|
+
temporary: "temporary";
|
|
161
|
+
intern: "intern";
|
|
162
|
+
}>;
|
|
163
|
+
declare const RoleNameSchema: z.ZodEnum<{
|
|
164
|
+
PROPRIETOR: "PROPRIETOR";
|
|
165
|
+
DIRECTOR: "DIRECTOR";
|
|
166
|
+
SYSTEM_ADMIN: "SYSTEM_ADMIN";
|
|
167
|
+
PRINCIPAL: "PRINCIPAL";
|
|
168
|
+
DEPUTY_PRINCIPAL: "DEPUTY_PRINCIPAL";
|
|
169
|
+
HOD: "HOD";
|
|
170
|
+
CLASS_TEACHER: "CLASS_TEACHER";
|
|
171
|
+
SUBJECT_TEACHER: "SUBJECT_TEACHER";
|
|
172
|
+
BURSAR: "BURSAR";
|
|
173
|
+
HR_ADMIN: "HR_ADMIN";
|
|
174
|
+
SCHOOL_NURSE: "SCHOOL_NURSE";
|
|
175
|
+
LIBRARIAN: "LIBRARIAN";
|
|
176
|
+
LAB_TECHNICIAN: "LAB_TECHNICIAN";
|
|
177
|
+
SPORTS_COACH: "SPORTS_COACH";
|
|
178
|
+
COUNSELLOR: "COUNSELLOR";
|
|
179
|
+
CARETAKER: "CARETAKER";
|
|
180
|
+
SECURITY: "SECURITY";
|
|
181
|
+
KITCHEN_STAFF: "KITCHEN_STAFF";
|
|
182
|
+
KITCHEN_MANAGER: "KITCHEN_MANAGER";
|
|
183
|
+
DRIVER: "DRIVER";
|
|
184
|
+
IT_ADMIN: "IT_ADMIN";
|
|
185
|
+
BOARDING_MASTER: "BOARDING_MASTER";
|
|
186
|
+
PREFECT: "PREFECT";
|
|
187
|
+
STUDENT: "STUDENT";
|
|
188
|
+
PARENT: "PARENT";
|
|
189
|
+
ORG_SPONSOR: "ORG_SPONSOR";
|
|
190
|
+
INDIVIDUAL_SPONSOR: "INDIVIDUAL_SPONSOR";
|
|
191
|
+
}>;
|
|
192
|
+
declare const CreateStaffInputSchema: z.ZodObject<{
|
|
193
|
+
firstName: z.ZodString;
|
|
194
|
+
middleName: z.ZodOptional<z.ZodString>;
|
|
195
|
+
lastName: z.ZodString;
|
|
196
|
+
email: z.ZodEmail;
|
|
197
|
+
phone: z.ZodString;
|
|
198
|
+
nationalId: z.ZodString;
|
|
199
|
+
roleName: z.ZodEnum<{
|
|
200
|
+
PROPRIETOR: "PROPRIETOR";
|
|
201
|
+
DIRECTOR: "DIRECTOR";
|
|
202
|
+
SYSTEM_ADMIN: "SYSTEM_ADMIN";
|
|
203
|
+
PRINCIPAL: "PRINCIPAL";
|
|
204
|
+
DEPUTY_PRINCIPAL: "DEPUTY_PRINCIPAL";
|
|
205
|
+
HOD: "HOD";
|
|
206
|
+
CLASS_TEACHER: "CLASS_TEACHER";
|
|
207
|
+
SUBJECT_TEACHER: "SUBJECT_TEACHER";
|
|
208
|
+
BURSAR: "BURSAR";
|
|
209
|
+
HR_ADMIN: "HR_ADMIN";
|
|
210
|
+
SCHOOL_NURSE: "SCHOOL_NURSE";
|
|
211
|
+
LIBRARIAN: "LIBRARIAN";
|
|
212
|
+
LAB_TECHNICIAN: "LAB_TECHNICIAN";
|
|
213
|
+
SPORTS_COACH: "SPORTS_COACH";
|
|
214
|
+
COUNSELLOR: "COUNSELLOR";
|
|
215
|
+
CARETAKER: "CARETAKER";
|
|
216
|
+
SECURITY: "SECURITY";
|
|
217
|
+
KITCHEN_STAFF: "KITCHEN_STAFF";
|
|
218
|
+
KITCHEN_MANAGER: "KITCHEN_MANAGER";
|
|
219
|
+
DRIVER: "DRIVER";
|
|
220
|
+
IT_ADMIN: "IT_ADMIN";
|
|
221
|
+
BOARDING_MASTER: "BOARDING_MASTER";
|
|
222
|
+
PREFECT: "PREFECT";
|
|
223
|
+
STUDENT: "STUDENT";
|
|
224
|
+
PARENT: "PARENT";
|
|
225
|
+
ORG_SPONSOR: "ORG_SPONSOR";
|
|
226
|
+
INDIVIDUAL_SPONSOR: "INDIVIDUAL_SPONSOR";
|
|
227
|
+
}>;
|
|
228
|
+
isPrimaryRole: z.ZodDefault<z.ZodBoolean>;
|
|
229
|
+
departmentId: z.ZodOptional<z.ZodUUID>;
|
|
230
|
+
designation: z.ZodString;
|
|
231
|
+
employmentType: z.ZodEnum<{
|
|
232
|
+
permanent: "permanent";
|
|
233
|
+
contract: "contract";
|
|
234
|
+
temporary: "temporary";
|
|
235
|
+
intern: "intern";
|
|
236
|
+
}>;
|
|
237
|
+
contractStart: z.ZodISODate;
|
|
238
|
+
contractEnd: z.ZodOptional<z.ZodISODate>;
|
|
239
|
+
basicSalary: z.ZodNumber;
|
|
240
|
+
houseAllowance: z.ZodDefault<z.ZodNumber>;
|
|
241
|
+
transportAllowance: z.ZodDefault<z.ZodNumber>;
|
|
242
|
+
helbDeduction: z.ZodDefault<z.ZodNumber>;
|
|
243
|
+
saccoDeduction: z.ZodDefault<z.ZodNumber>;
|
|
244
|
+
bankName: z.ZodOptional<z.ZodString>;
|
|
245
|
+
bankAccount: z.ZodOptional<z.ZodString>;
|
|
246
|
+
bankBranch: z.ZodOptional<z.ZodString>;
|
|
247
|
+
tscNumber: z.ZodOptional<z.ZodString>;
|
|
248
|
+
kraPin: z.ZodOptional<z.ZodString>;
|
|
249
|
+
nhifNo: z.ZodOptional<z.ZodString>;
|
|
250
|
+
nssfNo: z.ZodOptional<z.ZodString>;
|
|
251
|
+
}, z.core.$strip>;
|
|
252
|
+
type CreateStaffInput = z.infer<typeof CreateStaffInputSchema>;
|
|
253
|
+
declare const StaffProfileSchema: z.ZodObject<{
|
|
254
|
+
id: z.ZodUUID;
|
|
255
|
+
userId: z.ZodUUID;
|
|
256
|
+
branchId: z.ZodUUID;
|
|
257
|
+
firstName: z.ZodString;
|
|
258
|
+
middleName: z.ZodNullable<z.ZodString>;
|
|
259
|
+
lastName: z.ZodString;
|
|
260
|
+
phone: z.ZodString;
|
|
261
|
+
nationalId: z.ZodString;
|
|
262
|
+
tscNumber: z.ZodNullable<z.ZodString>;
|
|
263
|
+
kraPin: z.ZodNullable<z.ZodString>;
|
|
264
|
+
nhifNo: z.ZodNullable<z.ZodString>;
|
|
265
|
+
nssfNo: z.ZodNullable<z.ZodString>;
|
|
266
|
+
designation: z.ZodString;
|
|
267
|
+
employmentType: z.ZodEnum<{
|
|
268
|
+
permanent: "permanent";
|
|
269
|
+
contract: "contract";
|
|
270
|
+
temporary: "temporary";
|
|
271
|
+
intern: "intern";
|
|
272
|
+
}>;
|
|
273
|
+
contractStart: z.ZodString;
|
|
274
|
+
contractEnd: z.ZodNullable<z.ZodString>;
|
|
275
|
+
basicSalary: z.ZodString;
|
|
276
|
+
houseAllowance: z.ZodString;
|
|
277
|
+
transportAllowance: z.ZodString;
|
|
278
|
+
helbDeduction: z.ZodNullable<z.ZodString>;
|
|
279
|
+
saccoDeduction: z.ZodNullable<z.ZodString>;
|
|
280
|
+
bankName: z.ZodNullable<z.ZodString>;
|
|
281
|
+
bankAccount: z.ZodNullable<z.ZodString>;
|
|
282
|
+
bankBranch: z.ZodNullable<z.ZodString>;
|
|
283
|
+
status: z.ZodString;
|
|
284
|
+
createdAt: z.ZodString;
|
|
285
|
+
email: z.ZodString;
|
|
286
|
+
mustChangePassword: z.ZodBoolean;
|
|
287
|
+
departmentId: z.ZodNullable<z.ZodUUID>;
|
|
288
|
+
departmentName: z.ZodNullable<z.ZodString>;
|
|
289
|
+
roleName: z.ZodNullable<z.ZodEnum<{
|
|
290
|
+
PROPRIETOR: "PROPRIETOR";
|
|
291
|
+
DIRECTOR: "DIRECTOR";
|
|
292
|
+
SYSTEM_ADMIN: "SYSTEM_ADMIN";
|
|
293
|
+
PRINCIPAL: "PRINCIPAL";
|
|
294
|
+
DEPUTY_PRINCIPAL: "DEPUTY_PRINCIPAL";
|
|
295
|
+
HOD: "HOD";
|
|
296
|
+
CLASS_TEACHER: "CLASS_TEACHER";
|
|
297
|
+
SUBJECT_TEACHER: "SUBJECT_TEACHER";
|
|
298
|
+
BURSAR: "BURSAR";
|
|
299
|
+
HR_ADMIN: "HR_ADMIN";
|
|
300
|
+
SCHOOL_NURSE: "SCHOOL_NURSE";
|
|
301
|
+
LIBRARIAN: "LIBRARIAN";
|
|
302
|
+
LAB_TECHNICIAN: "LAB_TECHNICIAN";
|
|
303
|
+
SPORTS_COACH: "SPORTS_COACH";
|
|
304
|
+
COUNSELLOR: "COUNSELLOR";
|
|
305
|
+
CARETAKER: "CARETAKER";
|
|
306
|
+
SECURITY: "SECURITY";
|
|
307
|
+
KITCHEN_STAFF: "KITCHEN_STAFF";
|
|
308
|
+
KITCHEN_MANAGER: "KITCHEN_MANAGER";
|
|
309
|
+
DRIVER: "DRIVER";
|
|
310
|
+
IT_ADMIN: "IT_ADMIN";
|
|
311
|
+
BOARDING_MASTER: "BOARDING_MASTER";
|
|
312
|
+
PREFECT: "PREFECT";
|
|
313
|
+
STUDENT: "STUDENT";
|
|
314
|
+
PARENT: "PARENT";
|
|
315
|
+
ORG_SPONSOR: "ORG_SPONSOR";
|
|
316
|
+
INDIVIDUAL_SPONSOR: "INDIVIDUAL_SPONSOR";
|
|
317
|
+
}>>;
|
|
318
|
+
roleId: z.ZodNullable<z.ZodUUID>;
|
|
319
|
+
}, z.core.$strip>;
|
|
320
|
+
type StaffProfile = z.infer<typeof StaffProfileSchema>;
|
|
321
|
+
declare const StaffListItemSchema: z.ZodObject<{
|
|
322
|
+
id: z.ZodUUID;
|
|
323
|
+
userId: z.ZodUUID;
|
|
324
|
+
firstName: z.ZodString;
|
|
325
|
+
middleName: z.ZodNullable<z.ZodString>;
|
|
326
|
+
lastName: z.ZodString;
|
|
327
|
+
email: z.ZodString;
|
|
328
|
+
phone: z.ZodString;
|
|
329
|
+
designation: z.ZodString;
|
|
330
|
+
employmentType: z.ZodEnum<{
|
|
331
|
+
permanent: "permanent";
|
|
332
|
+
contract: "contract";
|
|
333
|
+
temporary: "temporary";
|
|
334
|
+
intern: "intern";
|
|
335
|
+
}>;
|
|
336
|
+
status: z.ZodString;
|
|
337
|
+
departmentName: z.ZodNullable<z.ZodString>;
|
|
338
|
+
roleName: z.ZodNullable<z.ZodEnum<{
|
|
339
|
+
PROPRIETOR: "PROPRIETOR";
|
|
340
|
+
DIRECTOR: "DIRECTOR";
|
|
341
|
+
SYSTEM_ADMIN: "SYSTEM_ADMIN";
|
|
342
|
+
PRINCIPAL: "PRINCIPAL";
|
|
343
|
+
DEPUTY_PRINCIPAL: "DEPUTY_PRINCIPAL";
|
|
344
|
+
HOD: "HOD";
|
|
345
|
+
CLASS_TEACHER: "CLASS_TEACHER";
|
|
346
|
+
SUBJECT_TEACHER: "SUBJECT_TEACHER";
|
|
347
|
+
BURSAR: "BURSAR";
|
|
348
|
+
HR_ADMIN: "HR_ADMIN";
|
|
349
|
+
SCHOOL_NURSE: "SCHOOL_NURSE";
|
|
350
|
+
LIBRARIAN: "LIBRARIAN";
|
|
351
|
+
LAB_TECHNICIAN: "LAB_TECHNICIAN";
|
|
352
|
+
SPORTS_COACH: "SPORTS_COACH";
|
|
353
|
+
COUNSELLOR: "COUNSELLOR";
|
|
354
|
+
CARETAKER: "CARETAKER";
|
|
355
|
+
SECURITY: "SECURITY";
|
|
356
|
+
KITCHEN_STAFF: "KITCHEN_STAFF";
|
|
357
|
+
KITCHEN_MANAGER: "KITCHEN_MANAGER";
|
|
358
|
+
DRIVER: "DRIVER";
|
|
359
|
+
IT_ADMIN: "IT_ADMIN";
|
|
360
|
+
BOARDING_MASTER: "BOARDING_MASTER";
|
|
361
|
+
PREFECT: "PREFECT";
|
|
362
|
+
STUDENT: "STUDENT";
|
|
363
|
+
PARENT: "PARENT";
|
|
364
|
+
ORG_SPONSOR: "ORG_SPONSOR";
|
|
365
|
+
INDIVIDUAL_SPONSOR: "INDIVIDUAL_SPONSOR";
|
|
366
|
+
}>>;
|
|
367
|
+
createdAt: z.ZodString;
|
|
368
|
+
}, z.core.$strip>;
|
|
369
|
+
type StaffListItem = z.infer<typeof StaffListItemSchema>;
|
|
370
|
+
declare const ListStaffInputSchema: z.ZodObject<{
|
|
371
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
372
|
+
limit: z.ZodDefault<z.ZodInt>;
|
|
373
|
+
search: z.ZodOptional<z.ZodString>;
|
|
374
|
+
departmentId: z.ZodOptional<z.ZodUUID>;
|
|
375
|
+
roleName: z.ZodOptional<z.ZodEnum<{
|
|
376
|
+
PROPRIETOR: "PROPRIETOR";
|
|
377
|
+
DIRECTOR: "DIRECTOR";
|
|
378
|
+
SYSTEM_ADMIN: "SYSTEM_ADMIN";
|
|
379
|
+
PRINCIPAL: "PRINCIPAL";
|
|
380
|
+
DEPUTY_PRINCIPAL: "DEPUTY_PRINCIPAL";
|
|
381
|
+
HOD: "HOD";
|
|
382
|
+
CLASS_TEACHER: "CLASS_TEACHER";
|
|
383
|
+
SUBJECT_TEACHER: "SUBJECT_TEACHER";
|
|
384
|
+
BURSAR: "BURSAR";
|
|
385
|
+
HR_ADMIN: "HR_ADMIN";
|
|
386
|
+
SCHOOL_NURSE: "SCHOOL_NURSE";
|
|
387
|
+
LIBRARIAN: "LIBRARIAN";
|
|
388
|
+
LAB_TECHNICIAN: "LAB_TECHNICIAN";
|
|
389
|
+
SPORTS_COACH: "SPORTS_COACH";
|
|
390
|
+
COUNSELLOR: "COUNSELLOR";
|
|
391
|
+
CARETAKER: "CARETAKER";
|
|
392
|
+
SECURITY: "SECURITY";
|
|
393
|
+
KITCHEN_STAFF: "KITCHEN_STAFF";
|
|
394
|
+
KITCHEN_MANAGER: "KITCHEN_MANAGER";
|
|
395
|
+
DRIVER: "DRIVER";
|
|
396
|
+
IT_ADMIN: "IT_ADMIN";
|
|
397
|
+
BOARDING_MASTER: "BOARDING_MASTER";
|
|
398
|
+
PREFECT: "PREFECT";
|
|
399
|
+
STUDENT: "STUDENT";
|
|
400
|
+
PARENT: "PARENT";
|
|
401
|
+
ORG_SPONSOR: "ORG_SPONSOR";
|
|
402
|
+
INDIVIDUAL_SPONSOR: "INDIVIDUAL_SPONSOR";
|
|
403
|
+
}>>;
|
|
404
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
405
|
+
active: "active";
|
|
406
|
+
inactive: "inactive";
|
|
407
|
+
}>>;
|
|
408
|
+
}, z.core.$strip>;
|
|
409
|
+
type ListStaffInput = z.infer<typeof ListStaffInputSchema>;
|
|
410
|
+
declare const CreateStaffOutputSchema: z.ZodObject<{
|
|
411
|
+
staffId: z.ZodUUID;
|
|
412
|
+
userId: z.ZodUUID;
|
|
413
|
+
email: z.ZodString;
|
|
414
|
+
emailSent: z.ZodBoolean;
|
|
415
|
+
}, z.core.$strip>;
|
|
416
|
+
type CreateStaffOutput = z.infer<typeof CreateStaffOutputSchema>;
|
|
417
|
+
declare const DepartmentSchema: z.ZodObject<{
|
|
418
|
+
id: z.ZodUUID;
|
|
419
|
+
branchId: z.ZodUUID;
|
|
420
|
+
name: z.ZodString;
|
|
421
|
+
hodId: z.ZodNullable<z.ZodUUID>;
|
|
422
|
+
}, z.core.$strip>;
|
|
423
|
+
type Department = z.infer<typeof DepartmentSchema>;
|
|
424
|
+
declare const CreateDepartmentInputSchema: z.ZodObject<{
|
|
425
|
+
name: z.ZodString;
|
|
426
|
+
hodId: z.ZodOptional<z.ZodUUID>;
|
|
427
|
+
}, z.core.$strip>;
|
|
428
|
+
type CreateDepartmentInput = z.infer<typeof CreateDepartmentInputSchema>;
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* Brite Future Schools — bfs-contracts
|
|
432
|
+
* Students domain Zod schemas.
|
|
433
|
+
*
|
|
434
|
+
* Phase History:
|
|
435
|
+
* Phase 1 (2026-06-07): Initial creation — student create, list,
|
|
436
|
+
* bulk upload, guardian linkage
|
|
437
|
+
*
|
|
438
|
+
* @module src/schemas/students
|
|
439
|
+
* @since Phase 1
|
|
440
|
+
*/
|
|
441
|
+
|
|
442
|
+
declare const GenderSchema: z.ZodEnum<{
|
|
443
|
+
male: "male";
|
|
444
|
+
female: "female";
|
|
445
|
+
}>;
|
|
446
|
+
declare const StudentStatusSchema: z.ZodEnum<{
|
|
447
|
+
active: "active";
|
|
448
|
+
transferred: "transferred";
|
|
449
|
+
graduated: "graduated";
|
|
450
|
+
suspended: "suspended";
|
|
451
|
+
withdrawn: "withdrawn";
|
|
452
|
+
}>;
|
|
453
|
+
declare const GradeLevelSchema: z.ZodEnum<{
|
|
454
|
+
PP1: "PP1";
|
|
455
|
+
PP2: "PP2";
|
|
456
|
+
G1: "G1";
|
|
457
|
+
G2: "G2";
|
|
458
|
+
G3: "G3";
|
|
459
|
+
G4: "G4";
|
|
460
|
+
G5: "G5";
|
|
461
|
+
G6: "G6";
|
|
462
|
+
G7: "G7";
|
|
463
|
+
G8: "G8";
|
|
464
|
+
G9: "G9";
|
|
465
|
+
}>;
|
|
466
|
+
declare const CreateStudentInputSchema: z.ZodObject<{
|
|
467
|
+
firstName: z.ZodString;
|
|
468
|
+
middleName: z.ZodOptional<z.ZodString>;
|
|
469
|
+
lastName: z.ZodString;
|
|
470
|
+
dateOfBirth: z.ZodISODate;
|
|
471
|
+
gender: z.ZodEnum<{
|
|
472
|
+
male: "male";
|
|
473
|
+
female: "female";
|
|
474
|
+
}>;
|
|
475
|
+
admissionNo: z.ZodString;
|
|
476
|
+
nemisNo: z.ZodOptional<z.ZodString>;
|
|
477
|
+
admissionDate: z.ZodISODate;
|
|
478
|
+
bloodGroup: z.ZodOptional<z.ZodString>;
|
|
479
|
+
medicalNotes: z.ZodOptional<z.ZodString>;
|
|
480
|
+
classId: z.ZodOptional<z.ZodUUID>;
|
|
481
|
+
termId: z.ZodOptional<z.ZodUUID>;
|
|
482
|
+
guardian: z.ZodOptional<z.ZodObject<{
|
|
483
|
+
firstName: z.ZodString;
|
|
484
|
+
middleName: z.ZodOptional<z.ZodString>;
|
|
485
|
+
lastName: z.ZodString;
|
|
486
|
+
relationship: z.ZodString;
|
|
487
|
+
phone: z.ZodString;
|
|
488
|
+
email: z.ZodOptional<z.ZodEmail>;
|
|
489
|
+
nationalId: z.ZodOptional<z.ZodString>;
|
|
490
|
+
occupation: z.ZodOptional<z.ZodString>;
|
|
491
|
+
}, z.core.$strip>>;
|
|
492
|
+
}, z.core.$strip>;
|
|
493
|
+
type CreateStudentInput = z.infer<typeof CreateStudentInputSchema>;
|
|
494
|
+
declare const StudentProfileSchema: z.ZodObject<{
|
|
495
|
+
id: z.ZodUUID;
|
|
496
|
+
branchId: z.ZodUUID;
|
|
497
|
+
admissionNo: z.ZodString;
|
|
498
|
+
nemisNo: z.ZodNullable<z.ZodString>;
|
|
499
|
+
firstName: z.ZodString;
|
|
500
|
+
middleName: z.ZodNullable<z.ZodString>;
|
|
501
|
+
lastName: z.ZodString;
|
|
502
|
+
dateOfBirth: z.ZodString;
|
|
503
|
+
gender: z.ZodEnum<{
|
|
504
|
+
male: "male";
|
|
505
|
+
female: "female";
|
|
506
|
+
}>;
|
|
507
|
+
photoUrl: z.ZodNullable<z.ZodString>;
|
|
508
|
+
bloodGroup: z.ZodNullable<z.ZodString>;
|
|
509
|
+
medicalNotes: z.ZodNullable<z.ZodString>;
|
|
510
|
+
admissionDate: z.ZodString;
|
|
511
|
+
status: z.ZodEnum<{
|
|
512
|
+
active: "active";
|
|
513
|
+
transferred: "transferred";
|
|
514
|
+
graduated: "graduated";
|
|
515
|
+
suspended: "suspended";
|
|
516
|
+
withdrawn: "withdrawn";
|
|
517
|
+
}>;
|
|
518
|
+
createdAt: z.ZodString;
|
|
519
|
+
currentClass: z.ZodNullable<z.ZodObject<{
|
|
520
|
+
classId: z.ZodUUID;
|
|
521
|
+
className: z.ZodString;
|
|
522
|
+
gradeLevel: z.ZodEnum<{
|
|
523
|
+
PP1: "PP1";
|
|
524
|
+
PP2: "PP2";
|
|
525
|
+
G1: "G1";
|
|
526
|
+
G2: "G2";
|
|
527
|
+
G3: "G3";
|
|
528
|
+
G4: "G4";
|
|
529
|
+
G5: "G5";
|
|
530
|
+
G6: "G6";
|
|
531
|
+
G7: "G7";
|
|
532
|
+
G8: "G8";
|
|
533
|
+
G9: "G9";
|
|
534
|
+
}>;
|
|
535
|
+
termId: z.ZodUUID;
|
|
536
|
+
termName: z.ZodString;
|
|
537
|
+
}, z.core.$strip>>;
|
|
538
|
+
guardians: z.ZodArray<z.ZodObject<{
|
|
539
|
+
id: z.ZodUUID;
|
|
540
|
+
firstName: z.ZodString;
|
|
541
|
+
middleName: z.ZodNullable<z.ZodString>;
|
|
542
|
+
lastName: z.ZodString;
|
|
543
|
+
relationship: z.ZodString;
|
|
544
|
+
phone: z.ZodString;
|
|
545
|
+
email: z.ZodNullable<z.ZodString>;
|
|
546
|
+
isPrimary: z.ZodBoolean;
|
|
547
|
+
}, z.core.$strip>>;
|
|
548
|
+
}, z.core.$strip>;
|
|
549
|
+
type StudentProfile = z.infer<typeof StudentProfileSchema>;
|
|
550
|
+
declare const StudentListItemSchema: z.ZodObject<{
|
|
551
|
+
id: z.ZodUUID;
|
|
552
|
+
admissionNo: z.ZodString;
|
|
553
|
+
firstName: z.ZodString;
|
|
554
|
+
middleName: z.ZodNullable<z.ZodString>;
|
|
555
|
+
lastName: z.ZodString;
|
|
556
|
+
gender: z.ZodEnum<{
|
|
557
|
+
male: "male";
|
|
558
|
+
female: "female";
|
|
559
|
+
}>;
|
|
560
|
+
status: z.ZodEnum<{
|
|
561
|
+
active: "active";
|
|
562
|
+
transferred: "transferred";
|
|
563
|
+
graduated: "graduated";
|
|
564
|
+
suspended: "suspended";
|
|
565
|
+
withdrawn: "withdrawn";
|
|
566
|
+
}>;
|
|
567
|
+
className: z.ZodNullable<z.ZodString>;
|
|
568
|
+
gradeLevel: z.ZodNullable<z.ZodEnum<{
|
|
569
|
+
PP1: "PP1";
|
|
570
|
+
PP2: "PP2";
|
|
571
|
+
G1: "G1";
|
|
572
|
+
G2: "G2";
|
|
573
|
+
G3: "G3";
|
|
574
|
+
G4: "G4";
|
|
575
|
+
G5: "G5";
|
|
576
|
+
G6: "G6";
|
|
577
|
+
G7: "G7";
|
|
578
|
+
G8: "G8";
|
|
579
|
+
G9: "G9";
|
|
580
|
+
}>>;
|
|
581
|
+
primaryGuardianName: z.ZodNullable<z.ZodString>;
|
|
582
|
+
primaryGuardianPhone: z.ZodNullable<z.ZodString>;
|
|
583
|
+
createdAt: z.ZodString;
|
|
584
|
+
}, z.core.$strip>;
|
|
585
|
+
type StudentListItem = z.infer<typeof StudentListItemSchema>;
|
|
586
|
+
declare const ListStudentsInputSchema: z.ZodObject<{
|
|
587
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
588
|
+
limit: z.ZodDefault<z.ZodInt>;
|
|
589
|
+
search: z.ZodOptional<z.ZodString>;
|
|
590
|
+
classId: z.ZodOptional<z.ZodUUID>;
|
|
591
|
+
gradeLevel: z.ZodOptional<z.ZodEnum<{
|
|
592
|
+
PP1: "PP1";
|
|
593
|
+
PP2: "PP2";
|
|
594
|
+
G1: "G1";
|
|
595
|
+
G2: "G2";
|
|
596
|
+
G3: "G3";
|
|
597
|
+
G4: "G4";
|
|
598
|
+
G5: "G5";
|
|
599
|
+
G6: "G6";
|
|
600
|
+
G7: "G7";
|
|
601
|
+
G8: "G8";
|
|
602
|
+
G9: "G9";
|
|
603
|
+
}>>;
|
|
604
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
605
|
+
active: "active";
|
|
606
|
+
transferred: "transferred";
|
|
607
|
+
graduated: "graduated";
|
|
608
|
+
suspended: "suspended";
|
|
609
|
+
withdrawn: "withdrawn";
|
|
610
|
+
}>>;
|
|
611
|
+
termId: z.ZodOptional<z.ZodUUID>;
|
|
612
|
+
}, z.core.$strip>;
|
|
613
|
+
type ListStudentsInput = z.infer<typeof ListStudentsInputSchema>;
|
|
614
|
+
/**
|
|
615
|
+
* One row from a CSV bulk upload.
|
|
616
|
+
* Column mapping is flexible — the upload endpoint accepts this shape
|
|
617
|
+
* after the CSV parser maps headers to these field names.
|
|
618
|
+
*/
|
|
619
|
+
declare const BulkUploadStudentRowSchema: z.ZodObject<{
|
|
620
|
+
firstName: z.ZodString;
|
|
621
|
+
middleName: z.ZodOptional<z.ZodString>;
|
|
622
|
+
lastName: z.ZodString;
|
|
623
|
+
dateOfBirth: z.ZodString;
|
|
624
|
+
gender: z.ZodString;
|
|
625
|
+
admissionNo: z.ZodString;
|
|
626
|
+
nemisNo: z.ZodOptional<z.ZodString>;
|
|
627
|
+
admissionDate: z.ZodOptional<z.ZodString>;
|
|
628
|
+
bloodGroup: z.ZodOptional<z.ZodString>;
|
|
629
|
+
guardianFirstName: z.ZodOptional<z.ZodString>;
|
|
630
|
+
guardianLastName: z.ZodOptional<z.ZodString>;
|
|
631
|
+
guardianRelationship: z.ZodOptional<z.ZodString>;
|
|
632
|
+
guardianPhone: z.ZodOptional<z.ZodString>;
|
|
633
|
+
guardianEmail: z.ZodOptional<z.ZodString>;
|
|
634
|
+
}, z.core.$strip>;
|
|
635
|
+
type BulkUploadStudentRow = z.infer<typeof BulkUploadStudentRowSchema>;
|
|
636
|
+
declare const BulkUploadStudentsInputSchema: z.ZodObject<{
|
|
637
|
+
classId: z.ZodUUID;
|
|
638
|
+
termId: z.ZodUUID;
|
|
639
|
+
rows: z.ZodArray<z.ZodObject<{
|
|
640
|
+
firstName: z.ZodString;
|
|
641
|
+
middleName: z.ZodOptional<z.ZodString>;
|
|
642
|
+
lastName: z.ZodString;
|
|
643
|
+
dateOfBirth: z.ZodString;
|
|
644
|
+
gender: z.ZodString;
|
|
645
|
+
admissionNo: z.ZodString;
|
|
646
|
+
nemisNo: z.ZodOptional<z.ZodString>;
|
|
647
|
+
admissionDate: z.ZodOptional<z.ZodString>;
|
|
648
|
+
bloodGroup: z.ZodOptional<z.ZodString>;
|
|
649
|
+
guardianFirstName: z.ZodOptional<z.ZodString>;
|
|
650
|
+
guardianLastName: z.ZodOptional<z.ZodString>;
|
|
651
|
+
guardianRelationship: z.ZodOptional<z.ZodString>;
|
|
652
|
+
guardianPhone: z.ZodOptional<z.ZodString>;
|
|
653
|
+
guardianEmail: z.ZodOptional<z.ZodString>;
|
|
654
|
+
}, z.core.$strip>>;
|
|
655
|
+
}, z.core.$strip>;
|
|
656
|
+
type BulkUploadStudentsInput = z.infer<typeof BulkUploadStudentsInputSchema>;
|
|
657
|
+
declare const BulkUploadStudentsOutputSchema: z.ZodObject<{
|
|
658
|
+
created: z.ZodInt;
|
|
659
|
+
skipped: z.ZodInt;
|
|
660
|
+
errors: z.ZodArray<z.ZodObject<{
|
|
661
|
+
row: z.ZodInt;
|
|
662
|
+
admissionNo: z.ZodOptional<z.ZodString>;
|
|
663
|
+
reason: z.ZodString;
|
|
664
|
+
}, z.core.$strip>>;
|
|
665
|
+
}, z.core.$strip>;
|
|
666
|
+
type BulkUploadStudentsOutput = z.infer<typeof BulkUploadStudentsOutputSchema>;
|
|
667
|
+
declare const CreateStudentOutputSchema: z.ZodObject<{
|
|
668
|
+
studentId: z.ZodUUID;
|
|
669
|
+
admissionNo: z.ZodString;
|
|
670
|
+
}, z.core.$strip>;
|
|
671
|
+
type CreateStudentOutput = z.infer<typeof CreateStudentOutputSchema>;
|
|
672
|
+
declare const LinkGuardianInputSchema: z.ZodObject<{
|
|
673
|
+
studentId: z.ZodUUID;
|
|
674
|
+
firstName: z.ZodString;
|
|
675
|
+
middleName: z.ZodOptional<z.ZodString>;
|
|
676
|
+
lastName: z.ZodString;
|
|
677
|
+
relationship: z.ZodString;
|
|
678
|
+
phone: z.ZodString;
|
|
679
|
+
email: z.ZodOptional<z.ZodEmail>;
|
|
680
|
+
nationalId: z.ZodOptional<z.ZodString>;
|
|
681
|
+
occupation: z.ZodOptional<z.ZodString>;
|
|
682
|
+
isPrimary: z.ZodDefault<z.ZodBoolean>;
|
|
683
|
+
}, z.core.$strip>;
|
|
684
|
+
type LinkGuardianInput = z.infer<typeof LinkGuardianInputSchema>;
|
|
685
|
+
declare const ClassSummarySchema: z.ZodObject<{
|
|
686
|
+
id: z.ZodUUID;
|
|
687
|
+
name: z.ZodString;
|
|
688
|
+
gradeLevel: z.ZodEnum<{
|
|
689
|
+
PP1: "PP1";
|
|
690
|
+
PP2: "PP2";
|
|
691
|
+
G1: "G1";
|
|
692
|
+
G2: "G2";
|
|
693
|
+
G3: "G3";
|
|
694
|
+
G4: "G4";
|
|
695
|
+
G5: "G5";
|
|
696
|
+
G6: "G6";
|
|
697
|
+
G7: "G7";
|
|
698
|
+
G8: "G8";
|
|
699
|
+
G9: "G9";
|
|
700
|
+
}>;
|
|
701
|
+
gradeName: z.ZodString;
|
|
702
|
+
capacity: z.ZodNullable<z.ZodNumber>;
|
|
703
|
+
enrolledCount: z.ZodNumber;
|
|
704
|
+
classTeacherId: z.ZodNullable<z.ZodUUID>;
|
|
705
|
+
}, z.core.$strip>;
|
|
706
|
+
type ClassSummary = z.infer<typeof ClassSummarySchema>;
|
|
707
|
+
|
|
708
|
+
export { BranchRefSchema, type BulkUploadStudentRow, BulkUploadStudentRowSchema, type BulkUploadStudentsInput, BulkUploadStudentsInputSchema, type BulkUploadStudentsOutput, BulkUploadStudentsOutputSchema, type ChangePasswordInput, ChangePasswordInputSchema, type ClassSummary, ClassSummarySchema, type CreateDepartmentInput, CreateDepartmentInputSchema, type CreateStaffInput, CreateStaffInputSchema, type CreateStaffOutput, CreateStaffOutputSchema, type CreateStudentInput, CreateStudentInputSchema, type CreateStudentOutput, CreateStudentOutputSchema, CuidSchema, type Department, DepartmentSchema, EmploymentTypeSchema, GenderSchema, GradeLevelSchema, type LinkGuardianInput, LinkGuardianInputSchema, type ListStaffInput, ListStaffInputSchema, type ListStudentsInput, ListStudentsInputSchema, type LoginInput, LoginInputSchema, type LoginOutput, LoginOutputSchema, LogoutInputSchema, type PaginationInput, PaginationInputSchema, type RefreshTokenInput, RefreshTokenInputSchema, type RefreshTokenOutput, RefreshTokenOutputSchema, RequestPasswordResetInputSchema, ResetPasswordInputSchema, RoleNameSchema, type SessionUserOutput, SessionUserOutputSchema, SessionUserRoleSchema, SessionUserSubRoleSchema, type SoftDelete, SoftDeleteSchema, type StaffListItem, StaffListItemSchema, type StaffProfile, StaffProfileSchema, type StudentListItem, StudentListItemSchema, type StudentProfile, StudentProfileSchema, StudentStatusSchema, type SwitchBranchInput, SwitchBranchInputSchema, type Timestamps, TimestampsSchema, UuidSchema, paginatedOutputSchema };
|