@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.
Files changed (40) hide show
  1. package/dist/chunk-3OMU2YSE.js +478 -0
  2. package/dist/chunk-3OMU2YSE.js.map +1 -0
  3. package/dist/chunk-R4XE3SFR.js +1 -0
  4. package/dist/chunk-S3BK5YEH.js +131 -0
  5. package/dist/chunk-S3BK5YEH.js.map +1 -0
  6. package/dist/contracts/index.cjs +592 -0
  7. package/dist/contracts/index.cjs.map +1 -0
  8. package/dist/contracts/index.d.cts +1141 -0
  9. package/dist/contracts/index.d.ts +1069 -9648
  10. package/dist/contracts/index.js +48 -1412
  11. package/dist/contracts/index.js.map +1 -1
  12. package/dist/index.cjs +675 -0
  13. package/dist/index.cjs.map +1 -0
  14. package/dist/index.d.cts +4 -0
  15. package/dist/index.d.ts +2 -2
  16. package/dist/index.js +132 -1536
  17. package/dist/index.js.map +1 -1
  18. package/dist/schemas/index.cjs +554 -0
  19. package/dist/schemas/index.cjs.map +1 -0
  20. package/dist/schemas/index.d.cts +708 -0
  21. package/dist/schemas/index.d.ts +664 -995
  22. package/dist/schemas/index.js +86 -640
  23. package/dist/schemas/index.js.map +1 -1
  24. package/package.json +32 -59
  25. package/dist/chunk-M6LF6JUL.mjs +0 -557
  26. package/dist/chunk-M6LF6JUL.mjs.map +0 -1
  27. package/dist/chunk-VC6SCJVW.mjs +0 -935
  28. package/dist/chunk-VC6SCJVW.mjs.map +0 -1
  29. package/dist/contracts/index.d.mts +0 -9720
  30. package/dist/contracts/index.mjs +0 -36
  31. package/dist/index.d.mts +0 -4
  32. package/dist/index.mjs +0 -161
  33. package/dist/index.mjs.map +0 -1
  34. package/dist/schemas/index.d.mts +0 -1039
  35. package/dist/schemas/index.mjs +0 -129
  36. package/dist/schemas/index.mjs.map +0 -1
  37. package/src/contracts/index.ts +0 -1209
  38. package/src/index.ts +0 -2
  39. package/src/schemas/index.ts +0 -586
  40. /package/dist/{contracts/index.mjs.map → chunk-R4XE3SFR.js.map} +0 -0
@@ -1,1039 +1,708 @@
1
- import { z } from 'zod';
1
+ import * as z from 'zod';
2
2
 
3
- declare const uuidSchema: z.ZodString;
4
- declare const paginationSchema: z.ZodObject<{
5
- page: z.ZodDefault<z.ZodNumber>;
6
- limit: z.ZodDefault<z.ZodNumber>;
7
- }, "strip", z.ZodTypeAny, {
8
- page: number;
9
- limit: number;
10
- }, {
11
- page?: number | undefined;
12
- limit?: number | undefined;
13
- }>;
14
- declare const dateRangeSchema: z.ZodObject<{
15
- from: z.ZodOptional<z.ZodString>;
16
- to: z.ZodOptional<z.ZodString>;
17
- }, "strip", z.ZodTypeAny, {
18
- from?: string | undefined;
19
- to?: string | undefined;
20
- }, {
21
- from?: string | undefined;
22
- to?: string | undefined;
23
- }>;
24
- declare const genderEnum: z.ZodEnum<["male", "female"]>;
25
- declare const userStatusEnum: z.ZodEnum<["active", "inactive", "suspended"]>;
26
- declare const systemRoleEnum: z.ZodEnum<["DIRECTOR", "PRINCIPAL", "DEPUTY_PRINCIPAL", "HOD", "CLASS_TEACHER", "SUBJECT_TEACHER", "BURSAR", "HR_ADMIN", "SCHOOL_NURSE", "LIBRARIAN", "LAB_TECHNICIAN", "SPORTS_COACH", "COUNSELLOR", "CARETAKER", "SECURITY", "KITCHEN_STAFF", "DRIVER", "IT_ADMIN", "STUDENT", "PARENT", "ORG_SPONSOR", "INDIVIDUAL_SPONSOR"]>;
27
- type SystemRole = z.infer<typeof systemRoleEnum>;
28
- declare const loginInputSchema: z.ZodObject<{
29
- email: z.ZodString;
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;
30
83
  password: z.ZodString;
31
- deviceFingerprint: z.ZodOptional<z.ZodString>;
32
- }, "strip", z.ZodTypeAny, {
33
- email: string;
34
- password: string;
35
- deviceFingerprint?: string | undefined;
36
- }, {
37
- email: string;
38
- password: string;
39
- deviceFingerprint?: string | undefined;
40
- }>;
41
- declare const loginOutputSchema: z.ZodObject<{
84
+ branchId: z.ZodOptional<z.ZodString>;
85
+ }, z.core.$strip>;
86
+ declare const LoginOutputSchema: z.ZodObject<{
42
87
  accessToken: z.ZodString;
43
- refreshToken: z.ZodOptional<z.ZodString>;
88
+ refreshToken: z.ZodString;
89
+ expiresIn: z.ZodInt;
44
90
  user: z.ZodObject<{
45
91
  id: z.ZodString;
92
+ email: z.ZodEmail;
46
93
  firstName: z.ZodString;
47
- middleName: z.ZodNullable<z.ZodString>;
48
94
  lastName: z.ZodString;
49
- email: z.ZodString;
50
- avatarUrl: z.ZodNullable<z.ZodString>;
95
+ activeBranchId: z.ZodString;
51
96
  roles: z.ZodArray<z.ZodObject<{
52
97
  id: z.ZodString;
53
98
  name: z.ZodString;
54
- branchId: z.ZodNullable<z.ZodString>;
55
- }, "strip", z.ZodTypeAny, {
56
- id: string;
57
- name: string;
58
- branchId: string | null;
59
- }, {
60
- id: string;
61
- name: string;
62
- branchId: string | null;
63
- }>, "many">;
64
- activeBranchId: z.ZodNullable<z.ZodString>;
65
- isMfaEnabled: z.ZodBoolean;
66
- }, "strip", z.ZodTypeAny, {
67
- email: string;
68
- id: string;
69
- firstName: string;
70
- middleName: string | null;
71
- lastName: string;
72
- avatarUrl: string | null;
73
- roles: {
74
- id: string;
75
- name: string;
76
- branchId: string | null;
77
- }[];
78
- activeBranchId: string | null;
79
- isMfaEnabled: boolean;
80
- }, {
81
- email: string;
82
- id: string;
83
- firstName: string;
84
- middleName: string | null;
85
- lastName: string;
86
- avatarUrl: string | null;
87
- roles: {
88
- id: string;
89
- name: string;
90
- branchId: string | null;
91
- }[];
92
- activeBranchId: string | null;
93
- isMfaEnabled: boolean;
94
- }>;
95
- }, "strip", z.ZodTypeAny, {
96
- accessToken: string;
97
- user: {
98
- email: string;
99
- id: string;
100
- firstName: string;
101
- middleName: string | null;
102
- lastName: string;
103
- avatarUrl: string | null;
104
- roles: {
105
- id: string;
106
- name: string;
107
- branchId: string | null;
108
- }[];
109
- activeBranchId: string | null;
110
- isMfaEnabled: boolean;
111
- };
112
- refreshToken?: string | undefined;
113
- }, {
114
- accessToken: string;
115
- user: {
116
- email: string;
117
- id: string;
118
- firstName: string;
119
- middleName: string | null;
120
- lastName: string;
121
- avatarUrl: string | null;
122
- roles: {
123
- id: string;
124
- name: string;
125
- branchId: string | null;
126
- }[];
127
- activeBranchId: string | null;
128
- isMfaEnabled: boolean;
129
- };
130
- refreshToken?: string | undefined;
131
- }>;
132
- declare const refreshTokenOutputSchema: z.ZodObject<{
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<{
133
115
  accessToken: z.ZodString;
134
- }, "strip", z.ZodTypeAny, {
135
- accessToken: string;
136
- }, {
137
- accessToken: string;
138
- }>;
139
- declare const refreshInputSchema: z.ZodObject<{
140
- refreshToken: z.ZodOptional<z.ZodString>;
141
- }, "strip", z.ZodTypeAny, {
142
- refreshToken?: string | undefined;
143
- }, {
144
- refreshToken?: string | undefined;
145
- }>;
146
- declare const mfaVerifyInputSchema: z.ZodObject<{
147
- totp: z.ZodString;
148
- }, "strip", z.ZodTypeAny, {
149
- totp: string;
150
- }, {
151
- totp: string;
152
- }>;
153
- declare const changePasswordInputSchema: z.ZodObject<{
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<{
154
122
  currentPassword: z.ZodString;
155
123
  newPassword: z.ZodString;
156
- }, "strip", z.ZodTypeAny, {
157
- currentPassword: string;
158
- newPassword: string;
159
- }, {
160
- currentPassword: string;
161
- newPassword: string;
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
162
  }>;
163
- declare const userSchema: z.ZodObject<{
164
- id: z.ZodString;
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;
165
257
  firstName: z.ZodString;
166
258
  middleName: z.ZodNullable<z.ZodString>;
167
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;
168
285
  email: z.ZodString;
169
- phone: z.ZodNullable<z.ZodString>;
170
- avatarUrl: z.ZodNullable<z.ZodString>;
171
- isActive: z.ZodBoolean;
172
- isMfaEnabled: z.ZodBoolean;
173
- lastLoginAt: z.ZodNullable<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
+ }>>;
174
367
  createdAt: z.ZodString;
175
- }, "strip", z.ZodTypeAny, {
176
- email: string;
177
- id: string;
178
- firstName: string;
179
- middleName: string | null;
180
- lastName: string;
181
- avatarUrl: string | null;
182
- isMfaEnabled: boolean;
183
- phone: string | null;
184
- isActive: boolean;
185
- lastLoginAt: string | null;
186
- createdAt: string;
187
- }, {
188
- email: string;
189
- id: string;
190
- firstName: string;
191
- middleName: string | null;
192
- lastName: string;
193
- avatarUrl: string | null;
194
- isMfaEnabled: boolean;
195
- phone: string | null;
196
- isActive: boolean;
197
- lastLoginAt: string | null;
198
- createdAt: string;
199
- }>;
200
- declare const branchSchema: z.ZodObject<{
201
- id: 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;
202
420
  name: z.ZodString;
203
- code: z.ZodString;
204
- address: z.ZodString;
205
- county: z.ZodString;
206
- phone: z.ZodNullable<z.ZodString>;
207
- email: z.ZodNullable<z.ZodString>;
208
- logoUrl: z.ZodNullable<z.ZodString>;
209
- motto: z.ZodNullable<z.ZodString>;
210
- principalId: z.ZodNullable<z.ZodString>;
211
- mpesaPaybill: z.ZodNullable<z.ZodString>;
212
- featureFlags: z.ZodRecord<z.ZodString, z.ZodBoolean>;
213
- createdAt: z.ZodString;
214
- }, "strip", z.ZodTypeAny, {
215
- code: string;
216
- email: string | null;
217
- id: string;
218
- name: string;
219
- phone: string | null;
220
- createdAt: string;
221
- address: string;
222
- county: string;
223
- logoUrl: string | null;
224
- motto: string | null;
225
- principalId: string | null;
226
- mpesaPaybill: string | null;
227
- featureFlags: Record<string, boolean>;
228
- }, {
229
- code: string;
230
- email: string | null;
231
- id: string;
232
- name: string;
233
- phone: string | null;
234
- createdAt: string;
235
- address: string;
236
- county: string;
237
- logoUrl: string | null;
238
- motto: string | null;
239
- principalId: string | null;
240
- mpesaPaybill: string | null;
241
- featureFlags: Record<string, boolean>;
242
- }>;
243
- declare const createBranchInputSchema: z.ZodObject<{
421
+ hodId: z.ZodNullable<z.ZodUUID>;
422
+ }, z.core.$strip>;
423
+ type Department = z.infer<typeof DepartmentSchema>;
424
+ declare const CreateDepartmentInputSchema: z.ZodObject<{
244
425
  name: z.ZodString;
245
- code: z.ZodString;
246
- address: z.ZodString;
247
- county: z.ZodString;
248
- phone: z.ZodOptional<z.ZodString>;
249
- email: z.ZodOptional<z.ZodString>;
250
- motto: z.ZodOptional<z.ZodString>;
251
- }, "strip", z.ZodTypeAny, {
252
- code: string;
253
- name: string;
254
- address: string;
255
- county: string;
256
- email?: string | undefined;
257
- phone?: string | undefined;
258
- motto?: string | undefined;
259
- }, {
260
- code: string;
261
- name: string;
262
- address: string;
263
- county: string;
264
- email?: string | undefined;
265
- phone?: string | undefined;
266
- motto?: string | undefined;
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";
267
445
  }>;
268
- declare const studentStatusEnum: z.ZodEnum<["active", "transferred", "graduated", "suspended", "withdrawn"]>;
269
- declare const studentSchema: z.ZodObject<{
270
- id: z.ZodString;
271
- branchId: z.ZodString;
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;
272
497
  admissionNo: z.ZodString;
273
498
  nemisNo: z.ZodNullable<z.ZodString>;
274
499
  firstName: z.ZodString;
275
500
  middleName: z.ZodNullable<z.ZodString>;
276
501
  lastName: z.ZodString;
277
502
  dateOfBirth: z.ZodString;
278
- gender: z.ZodEnum<["male", "female"]>;
503
+ gender: z.ZodEnum<{
504
+ male: "male";
505
+ female: "female";
506
+ }>;
279
507
  photoUrl: z.ZodNullable<z.ZodString>;
280
508
  bloodGroup: z.ZodNullable<z.ZodString>;
509
+ medicalNotes: z.ZodNullable<z.ZodString>;
281
510
  admissionDate: z.ZodString;
282
- status: z.ZodEnum<["active", "transferred", "graduated", "suspended", "withdrawn"]>;
283
- currentClassId: z.ZodNullable<z.ZodString>;
511
+ status: z.ZodEnum<{
512
+ active: "active";
513
+ transferred: "transferred";
514
+ graduated: "graduated";
515
+ suspended: "suspended";
516
+ withdrawn: "withdrawn";
517
+ }>;
284
518
  createdAt: z.ZodString;
285
- }, "strip", z.ZodTypeAny, {
286
- status: "active" | "suspended" | "transferred" | "graduated" | "withdrawn";
287
- id: string;
288
- firstName: string;
289
- middleName: string | null;
290
- lastName: string;
291
- branchId: string;
292
- createdAt: string;
293
- admissionNo: string;
294
- nemisNo: string | null;
295
- dateOfBirth: string;
296
- gender: "male" | "female";
297
- photoUrl: string | null;
298
- bloodGroup: string | null;
299
- admissionDate: string;
300
- currentClassId: string | null;
301
- }, {
302
- status: "active" | "suspended" | "transferred" | "graduated" | "withdrawn";
303
- id: string;
304
- firstName: string;
305
- middleName: string | null;
306
- lastName: string;
307
- branchId: string;
308
- createdAt: string;
309
- admissionNo: string;
310
- nemisNo: string | null;
311
- dateOfBirth: string;
312
- gender: "male" | "female";
313
- photoUrl: string | null;
314
- bloodGroup: string | null;
315
- admissionDate: string;
316
- currentClassId: string | null;
317
- }>;
318
- declare const createStudentInputSchema: z.ZodObject<{
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;
319
552
  admissionNo: z.ZodString;
320
- nemisNo: z.ZodOptional<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<{
321
620
  firstName: z.ZodString;
322
621
  middleName: z.ZodOptional<z.ZodString>;
323
622
  lastName: z.ZodString;
324
623
  dateOfBirth: z.ZodString;
325
- gender: z.ZodEnum<["male", "female"]>;
326
- admissionDate: z.ZodString;
327
- guardianId: z.ZodOptional<z.ZodString>;
328
- }, "strip", z.ZodTypeAny, {
329
- firstName: string;
330
- lastName: string;
331
- admissionNo: string;
332
- dateOfBirth: string;
333
- gender: "male" | "female";
334
- admissionDate: string;
335
- middleName?: string | undefined;
336
- nemisNo?: string | undefined;
337
- guardianId?: string | undefined;
338
- }, {
339
- firstName: string;
340
- lastName: string;
341
- admissionNo: string;
342
- dateOfBirth: string;
343
- gender: "male" | "female";
344
- admissionDate: string;
345
- middleName?: string | undefined;
346
- nemisNo?: string | undefined;
347
- guardianId?: string | undefined;
348
- }>;
349
- declare const listStudentsInputSchema: z.ZodObject<{
350
- page: z.ZodDefault<z.ZodNumber>;
351
- limit: z.ZodDefault<z.ZodNumber>;
352
- } & {
353
- branchId: z.ZodOptional<z.ZodString>;
354
- classId: z.ZodOptional<z.ZodString>;
355
- gradeId: z.ZodOptional<z.ZodString>;
356
- search: z.ZodOptional<z.ZodString>;
357
- status: z.ZodOptional<z.ZodEnum<["active", "transferred", "graduated", "suspended", "withdrawn"]>>;
358
- termId: z.ZodOptional<z.ZodString>;
359
- }, "strip", z.ZodTypeAny, {
360
- page: number;
361
- limit: number;
362
- status?: "active" | "suspended" | "transferred" | "graduated" | "withdrawn" | undefined;
363
- branchId?: string | undefined;
364
- classId?: string | undefined;
365
- gradeId?: string | undefined;
366
- search?: string | undefined;
367
- termId?: string | undefined;
368
- }, {
369
- page?: number | undefined;
370
- limit?: number | undefined;
371
- status?: "active" | "suspended" | "transferred" | "graduated" | "withdrawn" | undefined;
372
- branchId?: string | undefined;
373
- classId?: string | undefined;
374
- gradeId?: string | undefined;
375
- search?: string | undefined;
376
- termId?: string | undefined;
377
- }>;
378
- declare const guardianSchema: z.ZodObject<{
379
- id: z.ZodString;
380
- userId: 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;
381
674
  firstName: z.ZodString;
382
- middleName: z.ZodNullable<z.ZodString>;
675
+ middleName: z.ZodOptional<z.ZodString>;
383
676
  lastName: z.ZodString;
384
677
  relationship: z.ZodString;
385
678
  phone: z.ZodString;
386
- email: z.ZodNullable<z.ZodString>;
387
- nationalId: z.ZodNullable<z.ZodString>;
388
- occupation: z.ZodNullable<z.ZodString>;
389
- address: z.ZodNullable<z.ZodString>;
390
- }, "strip", z.ZodTypeAny, {
391
- email: string | null;
392
- id: string;
393
- firstName: string;
394
- middleName: string | null;
395
- lastName: string;
396
- phone: string;
397
- address: string | null;
398
- userId: string;
399
- relationship: string;
400
- nationalId: string | null;
401
- occupation: string | null;
402
- }, {
403
- email: string | null;
404
- id: string;
405
- firstName: string;
406
- middleName: string | null;
407
- lastName: string;
408
- phone: string;
409
- address: string | null;
410
- userId: string;
411
- relationship: string;
412
- nationalId: string | null;
413
- occupation: string | null;
414
- }>;
415
- declare const sponsorTypeEnum: z.ZodEnum<["organisation", "individual"]>;
416
- declare const sponsorSchema: z.ZodObject<{
417
- id: z.ZodString;
418
- branchId: z.ZodString;
419
- type: z.ZodEnum<["organisation", "individual"]>;
420
- organisationName: z.ZodNullable<z.ZodString>;
421
- firstName: z.ZodNullable<z.ZodString>;
422
- middleName: z.ZodNullable<z.ZodString>;
423
- lastName: z.ZodNullable<z.ZodString>;
424
- contactUserId: z.ZodNullable<z.ZodString>;
425
- phone: z.ZodString;
426
- email: z.ZodNullable<z.ZodString>;
427
- address: z.ZodNullable<z.ZodString>;
428
- }, "strip", z.ZodTypeAny, {
429
- type: "organisation" | "individual";
430
- email: string | null;
431
- id: string;
432
- firstName: string | null;
433
- middleName: string | null;
434
- lastName: string | null;
435
- branchId: string;
436
- phone: string;
437
- address: string | null;
438
- organisationName: string | null;
439
- contactUserId: string | null;
440
- }, {
441
- type: "organisation" | "individual";
442
- email: string | null;
443
- id: string;
444
- firstName: string | null;
445
- middleName: string | null;
446
- lastName: string | null;
447
- branchId: string;
448
- phone: string;
449
- address: string | null;
450
- organisationName: string | null;
451
- contactUserId: string | null;
452
- }>;
453
- declare const gradeLevelEnum: z.ZodEnum<["PP1", "PP2", "G1", "G2", "G3", "G4", "G5", "G6", "G7", "G8", "G9"]>;
454
- declare const assessmentTypeEnum: z.ZodEnum<["formative", "summative", "knec_national", "informal"]>;
455
- declare const rubricBandEnum: z.ZodEnum<["EE", "ME", "AE", "BE"]>;
456
- declare const subjectSchema: z.ZodObject<{
457
- id: z.ZodString;
458
- branchId: z.ZodString;
459
- name: z.ZodString;
460
- code: z.ZodString;
461
- gradeLevel: z.ZodEnum<["PP1", "PP2", "G1", "G2", "G3", "G4", "G5", "G6", "G7", "G8", "G9"]>;
462
- departmentId: z.ZodNullable<z.ZodString>;
463
- }, "strip", z.ZodTypeAny, {
464
- code: string;
465
- id: string;
466
- name: string;
467
- branchId: string;
468
- gradeLevel: "PP1" | "PP2" | "G1" | "G2" | "G3" | "G4" | "G5" | "G6" | "G7" | "G8" | "G9";
469
- departmentId: string | null;
470
- }, {
471
- code: string;
472
- id: string;
473
- name: string;
474
- branchId: string;
475
- gradeLevel: "PP1" | "PP2" | "G1" | "G2" | "G3" | "G4" | "G5" | "G6" | "G7" | "G8" | "G9";
476
- departmentId: string | null;
477
- }>;
478
- declare const assessmentScoreInputSchema: z.ZodObject<{
479
- assessmentId: z.ZodString;
480
- studentId: z.ZodString;
481
- subStrandId: z.ZodString;
482
- numericScore: z.ZodNumber;
483
- comments: z.ZodOptional<z.ZodString>;
484
- }, "strip", z.ZodTypeAny, {
485
- assessmentId: string;
486
- studentId: string;
487
- subStrandId: string;
488
- numericScore: number;
489
- comments?: string | undefined;
490
- }, {
491
- assessmentId: string;
492
- studentId: string;
493
- subStrandId: string;
494
- numericScore: number;
495
- comments?: string | undefined;
496
- }>;
497
- declare const reportCardStatusEnum: z.ZodEnum<["draft", "hod_review", "principal_review", "released", "blocked"]>;
498
- declare const feeItemCategoryEnum: z.ZodEnum<["compulsory", "class_specific", "additive"]>;
499
- declare const paymentMethodEnum: z.ZodEnum<["mpesa", "bank", "card", "cash", "cheque"]>;
500
- declare const invoiceStatusEnum: z.ZodEnum<["draft", "sent", "partial", "paid", "overdue", "cancelled"]>;
501
- declare const feeItemSchema: z.ZodObject<{
502
- id: z.ZodString;
503
- branchId: 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;
504
687
  name: z.ZodString;
505
- category: z.ZodEnum<["compulsory", "class_specific", "additive"]>;
506
- defaultAmount: z.ZodNumber;
507
- applicableGrades: z.ZodArray<z.ZodEnum<["PP1", "PP2", "G1", "G2", "G3", "G4", "G5", "G6", "G7", "G8", "G9"]>, "many">;
508
- isActive: z.ZodBoolean;
509
- }, "strip", z.ZodTypeAny, {
510
- id: string;
511
- name: string;
512
- branchId: string;
513
- isActive: boolean;
514
- category: "compulsory" | "class_specific" | "additive";
515
- defaultAmount: number;
516
- applicableGrades: ("PP1" | "PP2" | "G1" | "G2" | "G3" | "G4" | "G5" | "G6" | "G7" | "G8" | "G9")[];
517
- }, {
518
- id: string;
519
- name: string;
520
- branchId: string;
521
- isActive: boolean;
522
- category: "compulsory" | "class_specific" | "additive";
523
- defaultAmount: number;
524
- applicableGrades: ("PP1" | "PP2" | "G1" | "G2" | "G3" | "G4" | "G5" | "G6" | "G7" | "G8" | "G9")[];
525
- }>;
526
- declare const recordPaymentInputSchema: z.ZodObject<{
527
- studentId: z.ZodString;
528
- invoiceId: z.ZodString;
529
- amount: z.ZodNumber;
530
- method: z.ZodEnum<["mpesa", "bank", "card", "cash", "cheque"]>;
531
- reference: z.ZodOptional<z.ZodString>;
532
- mpesaReceipt: z.ZodOptional<z.ZodString>;
533
- paymentDate: z.ZodString;
534
- }, "strip", z.ZodTypeAny, {
535
- studentId: string;
536
- invoiceId: string;
537
- amount: number;
538
- method: "mpesa" | "bank" | "card" | "cash" | "cheque";
539
- paymentDate: string;
540
- reference?: string | undefined;
541
- mpesaReceipt?: string | undefined;
542
- }, {
543
- studentId: string;
544
- invoiceId: string;
545
- amount: number;
546
- method: "mpesa" | "bank" | "card" | "cash" | "cheque";
547
- paymentDate: string;
548
- reference?: string | undefined;
549
- mpesaReceipt?: string | undefined;
550
- }>;
551
- declare const employmentTypeEnum: z.ZodEnum<["permanent", "contract", "temporary", "intern"]>;
552
- declare const staffSchema: z.ZodObject<{
553
- id: z.ZodString;
554
- branchId: z.ZodString;
555
- userId: z.ZodString;
556
- firstName: z.ZodString;
557
- middleName: z.ZodNullable<z.ZodString>;
558
- lastName: z.ZodString;
559
- tscNumber: z.ZodNullable<z.ZodString>;
560
- nationalId: z.ZodString;
561
- kraPin: z.ZodNullable<z.ZodString>;
562
- nhifNo: z.ZodNullable<z.ZodString>;
563
- nssfNo: z.ZodNullable<z.ZodString>;
564
- phone: z.ZodString;
565
- departmentId: z.ZodNullable<z.ZodString>;
566
- designation: z.ZodString;
567
- employmentType: z.ZodEnum<["permanent", "contract", "temporary", "intern"]>;
568
- contractStart: z.ZodString;
569
- contractEnd: z.ZodNullable<z.ZodString>;
570
- basicSalary: z.ZodNumber;
571
- houseAllowance: z.ZodDefault<z.ZodNumber>;
572
- transportAllowance: z.ZodDefault<z.ZodNumber>;
573
- bankName: z.ZodNullable<z.ZodString>;
574
- bankAccount: z.ZodNullable<z.ZodString>;
575
- status: z.ZodEnum<["active", "inactive", "suspended"]>;
576
- }, "strip", z.ZodTypeAny, {
577
- status: "active" | "inactive" | "suspended";
578
- id: string;
579
- firstName: string;
580
- middleName: string | null;
581
- lastName: string;
582
- branchId: string;
583
- phone: string;
584
- userId: string;
585
- nationalId: string;
586
- departmentId: string | null;
587
- tscNumber: string | null;
588
- kraPin: string | null;
589
- nhifNo: string | null;
590
- nssfNo: string | null;
591
- designation: string;
592
- employmentType: "permanent" | "contract" | "temporary" | "intern";
593
- contractStart: string;
594
- contractEnd: string | null;
595
- basicSalary: number;
596
- houseAllowance: number;
597
- transportAllowance: number;
598
- bankName: string | null;
599
- bankAccount: string | null;
600
- }, {
601
- status: "active" | "inactive" | "suspended";
602
- id: string;
603
- firstName: string;
604
- middleName: string | null;
605
- lastName: string;
606
- branchId: string;
607
- phone: string;
608
- userId: string;
609
- nationalId: string;
610
- departmentId: string | null;
611
- tscNumber: string | null;
612
- kraPin: string | null;
613
- nhifNo: string | null;
614
- nssfNo: string | null;
615
- designation: string;
616
- employmentType: "permanent" | "contract" | "temporary" | "intern";
617
- contractStart: string;
618
- contractEnd: string | null;
619
- basicSalary: number;
620
- bankName: string | null;
621
- bankAccount: string | null;
622
- houseAllowance?: number | undefined;
623
- transportAllowance?: number | undefined;
624
- }>;
625
- declare const leaveStatusEnum: z.ZodEnum<["pending", "approved", "rejected", "cancelled"]>;
626
- declare const leaveRequestInputSchema: z.ZodObject<{
627
- leaveTypeId: z.ZodString;
628
- startDate: z.ZodString;
629
- endDate: z.ZodString;
630
- reason: z.ZodString;
631
- }, "strip", z.ZodTypeAny, {
632
- leaveTypeId: string;
633
- startDate: string;
634
- endDate: string;
635
- reason: string;
636
- }, {
637
- leaveTypeId: string;
638
- startDate: string;
639
- endDate: string;
640
- reason: string;
641
- }>;
642
- declare const vehicleOwnershipEnum: z.ZodEnum<["owned", "contracted"]>;
643
- declare const vehicleTypeEnum: z.ZodEnum<["bus", "van", "pickup", "other"]>;
644
- declare const busRegisterStatusEnum: z.ZodEnum<["boarded", "alighted", "absent"]>;
645
- declare const tripLogInputSchema: z.ZodObject<{
646
- vehicleId: z.ZodString;
647
- routeId: z.ZodString;
648
- departureTime: z.ZodString;
649
- tripType: z.ZodEnum<["morning", "evening", "errand"]>;
650
- }, "strip", z.ZodTypeAny, {
651
- vehicleId: string;
652
- routeId: string;
653
- departureTime: string;
654
- tripType: "morning" | "evening" | "errand";
655
- }, {
656
- vehicleId: string;
657
- routeId: string;
658
- departureTime: string;
659
- tripType: "morning" | "evening" | "errand";
660
- }>;
661
- declare const busRegisterEntrySchema: z.ZodObject<{
662
- studentId: z.ZodString;
663
- status: z.ZodEnum<["boarded", "alighted", "absent"]>;
664
- }, "strip", z.ZodTypeAny, {
665
- status: "boarded" | "alighted" | "absent";
666
- studentId: string;
667
- }, {
668
- status: "boarded" | "alighted" | "absent";
669
- studentId: string;
670
- }>;
671
- declare const vehicleStatusEnum: z.ZodEnum<["active", "in_maintenance", "decommissioned"]>;
672
- declare const tripCategoryEnum: z.ZodEnum<["regular", "special"]>;
673
- declare const tripStatusEnum: z.ZodEnum<["scheduled", "in_progress", "completed", "cancelled"]>;
674
- declare const transportAppStatusEnum: z.ZodEnum<["pending", "approved", "rejected", "cancelled"]>;
675
- declare const maintenanceRequestStatusEnum: z.ZodEnum<["pending", "approved", "rejected", "resolved"]>;
676
- declare const vehicleSchema: z.ZodObject<{
677
- id: z.ZodString;
678
- branchId: z.ZodString;
679
- plateNo: z.ZodString;
680
- make: z.ZodNullable<z.ZodString>;
681
- model: z.ZodNullable<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;
682
702
  capacity: z.ZodNullable<z.ZodNumber>;
683
- type: z.ZodString;
684
- ownershipType: z.ZodEnum<["owned", "contracted"]>;
685
- insuranceExpiry: z.ZodNullable<z.ZodString>;
686
- inspectionDate: z.ZodNullable<z.ZodString>;
687
- status: z.ZodEnum<["active", "in_maintenance", "decommissioned"]>;
688
- driverUserId: z.ZodNullable<z.ZodString>;
689
- notes: z.ZodNullable<z.ZodString>;
690
- createdAt: z.ZodString;
691
- }, "strip", z.ZodTypeAny, {
692
- type: string;
693
- status: "active" | "in_maintenance" | "decommissioned";
694
- id: string;
695
- branchId: string;
696
- createdAt: string;
697
- plateNo: string;
698
- make: string | null;
699
- model: string | null;
700
- capacity: number | null;
701
- ownershipType: "owned" | "contracted";
702
- insuranceExpiry: string | null;
703
- inspectionDate: string | null;
704
- driverUserId: string | null;
705
- notes: string | null;
706
- }, {
707
- type: string;
708
- status: "active" | "in_maintenance" | "decommissioned";
709
- id: string;
710
- branchId: string;
711
- createdAt: string;
712
- plateNo: string;
713
- make: string | null;
714
- model: string | null;
715
- capacity: number | null;
716
- ownershipType: "owned" | "contracted";
717
- insuranceExpiry: string | null;
718
- inspectionDate: string | null;
719
- driverUserId: string | null;
720
- notes: string | null;
721
- }>;
722
- declare const routeSchema: z.ZodObject<{
723
- id: z.ZodString;
724
- branchId: z.ZodString;
725
- name: z.ZodString;
726
- description: z.ZodNullable<z.ZodString>;
727
- isActive: z.ZodBoolean;
728
- vehicleId: z.ZodNullable<z.ZodString>;
729
- routeCategory: z.ZodString;
730
- departureTime: z.ZodNullable<z.ZodString>;
731
- returnTime: z.ZodNullable<z.ZodString>;
732
- fare: z.ZodNullable<z.ZodNumber>;
733
- vehicle: z.ZodOptional<z.ZodNullable<z.ZodObject<{
734
- plateNo: z.ZodString;
735
- type: z.ZodString;
736
- }, "strip", z.ZodTypeAny, {
737
- type: string;
738
- plateNo: string;
739
- }, {
740
- type: string;
741
- plateNo: string;
742
- }>>>;
743
- stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
744
- id: z.ZodString;
745
- stopName: z.ZodString;
746
- stopOrder: z.ZodNumber;
747
- estimatedTime: z.ZodNullable<z.ZodString>;
748
- }, "strip", z.ZodTypeAny, {
749
- id: string;
750
- stopName: string;
751
- stopOrder: number;
752
- estimatedTime: string | null;
753
- }, {
754
- id: string;
755
- stopName: string;
756
- stopOrder: number;
757
- estimatedTime: string | null;
758
- }>, "many">>;
759
- roster: z.ZodOptional<z.ZodArray<z.ZodObject<{
760
- studentId: z.ZodString;
761
- studentName: z.ZodString;
762
- admissionNo: z.ZodString;
763
- pickupStop: z.ZodNullable<z.ZodString>;
764
- dropoffStop: z.ZodNullable<z.ZodString>;
765
- }, "strip", z.ZodTypeAny, {
766
- admissionNo: string;
767
- studentId: string;
768
- studentName: string;
769
- pickupStop: string | null;
770
- dropoffStop: string | null;
771
- }, {
772
- admissionNo: string;
773
- studentId: string;
774
- studentName: string;
775
- pickupStop: string | null;
776
- dropoffStop: string | null;
777
- }>, "many">>;
778
- }, "strip", z.ZodTypeAny, {
779
- id: string;
780
- name: string;
781
- branchId: string;
782
- isActive: boolean;
783
- vehicleId: string | null;
784
- departureTime: string | null;
785
- description: string | null;
786
- routeCategory: string;
787
- returnTime: string | null;
788
- fare: number | null;
789
- vehicle?: {
790
- type: string;
791
- plateNo: string;
792
- } | null | undefined;
793
- stops?: {
794
- id: string;
795
- stopName: string;
796
- stopOrder: number;
797
- estimatedTime: string | null;
798
- }[] | undefined;
799
- roster?: {
800
- admissionNo: string;
801
- studentId: string;
802
- studentName: string;
803
- pickupStop: string | null;
804
- dropoffStop: string | null;
805
- }[] | undefined;
806
- }, {
807
- id: string;
808
- name: string;
809
- branchId: string;
810
- isActive: boolean;
811
- vehicleId: string | null;
812
- departureTime: string | null;
813
- description: string | null;
814
- routeCategory: string;
815
- returnTime: string | null;
816
- fare: number | null;
817
- vehicle?: {
818
- type: string;
819
- plateNo: string;
820
- } | null | undefined;
821
- stops?: {
822
- id: string;
823
- stopName: string;
824
- stopOrder: number;
825
- estimatedTime: string | null;
826
- }[] | undefined;
827
- roster?: {
828
- admissionNo: string;
829
- studentId: string;
830
- studentName: string;
831
- pickupStop: string | null;
832
- dropoffStop: string | null;
833
- }[] | undefined;
834
- }>;
835
- declare const tripLogSchema: z.ZodObject<{
836
- id: z.ZodString;
837
- branchId: z.ZodString;
838
- vehicleId: z.ZodString;
839
- routeId: z.ZodNullable<z.ZodString>;
840
- driverUserId: z.ZodString;
841
- departureTime: z.ZodString;
842
- arrivalTime: z.ZodNullable<z.ZodString>;
843
- returnTime: z.ZodNullable<z.ZodString>;
844
- tripType: z.ZodString;
845
- tripCategory: z.ZodEnum<["regular", "special"]>;
846
- status: z.ZodEnum<["scheduled", "in_progress", "completed", "cancelled"]>;
847
- title: z.ZodNullable<z.ZodString>;
848
- description: z.ZodNullable<z.ZodString>;
849
- destination: z.ZodNullable<z.ZodString>;
850
- expectedStudents: z.ZodNullable<z.ZodNumber>;
851
- notes: z.ZodNullable<z.ZodString>;
852
- createdAt: z.ZodString;
853
- vehicle: z.ZodOptional<z.ZodObject<{
854
- plateNo: z.ZodString;
855
- type: z.ZodString;
856
- }, "strip", z.ZodTypeAny, {
857
- type: string;
858
- plateNo: string;
859
- }, {
860
- type: string;
861
- plateNo: string;
862
- }>>;
863
- route: z.ZodOptional<z.ZodNullable<z.ZodObject<{
864
- name: z.ZodString;
865
- }, "strip", z.ZodTypeAny, {
866
- name: string;
867
- }, {
868
- name: string;
869
- }>>>;
870
- }, "strip", z.ZodTypeAny, {
871
- status: "cancelled" | "scheduled" | "in_progress" | "completed";
872
- id: string;
873
- branchId: string;
874
- createdAt: string;
875
- vehicleId: string;
876
- routeId: string | null;
877
- departureTime: string;
878
- tripType: string;
879
- driverUserId: string;
880
- notes: string | null;
881
- description: string | null;
882
- returnTime: string | null;
883
- arrivalTime: string | null;
884
- tripCategory: "regular" | "special";
885
- title: string | null;
886
- destination: string | null;
887
- expectedStudents: number | null;
888
- vehicle?: {
889
- type: string;
890
- plateNo: string;
891
- } | undefined;
892
- route?: {
893
- name: string;
894
- } | null | undefined;
895
- }, {
896
- status: "cancelled" | "scheduled" | "in_progress" | "completed";
897
- id: string;
898
- branchId: string;
899
- createdAt: string;
900
- vehicleId: string;
901
- routeId: string | null;
902
- departureTime: string;
903
- tripType: string;
904
- driverUserId: string;
905
- notes: string | null;
906
- description: string | null;
907
- returnTime: string | null;
908
- arrivalTime: string | null;
909
- tripCategory: "regular" | "special";
910
- title: string | null;
911
- destination: string | null;
912
- expectedStudents: number | null;
913
- vehicle?: {
914
- type: string;
915
- plateNo: string;
916
- } | undefined;
917
- route?: {
918
- name: string;
919
- } | null | undefined;
920
- }>;
921
- declare const maintenanceRequestSchema: z.ZodObject<{
922
- id: z.ZodString;
923
- vehicleId: z.ZodString;
924
- requestedBy: z.ZodString;
925
- issue: z.ZodString;
926
- severity: z.ZodString;
927
- status: z.ZodEnum<["pending", "approved", "rejected", "resolved"]>;
928
- reviewedBy: z.ZodNullable<z.ZodString>;
929
- reviewNotes: z.ZodNullable<z.ZodString>;
930
- reviewedAt: z.ZodNullable<z.ZodString>;
931
- createdAt: z.ZodString;
932
- vehiclePlate: z.ZodOptional<z.ZodString>;
933
- }, "strip", z.ZodTypeAny, {
934
- status: "pending" | "approved" | "rejected" | "resolved";
935
- id: string;
936
- createdAt: string;
937
- vehicleId: string;
938
- requestedBy: string;
939
- issue: string;
940
- severity: string;
941
- reviewedBy: string | null;
942
- reviewNotes: string | null;
943
- reviewedAt: string | null;
944
- vehiclePlate?: string | undefined;
945
- }, {
946
- status: "pending" | "approved" | "rejected" | "resolved";
947
- id: string;
948
- createdAt: string;
949
- vehicleId: string;
950
- requestedBy: string;
951
- issue: string;
952
- severity: string;
953
- reviewedBy: string | null;
954
- reviewNotes: string | null;
955
- reviewedAt: string | null;
956
- vehiclePlate?: string | undefined;
957
- }>;
958
- declare const transportApplicationSchema: z.ZodObject<{
959
- id: z.ZodString;
960
- branchId: z.ZodString;
961
- studentId: z.ZodString;
962
- applicationType: z.ZodEnum<["route", "trip"]>;
963
- routeId: z.ZodNullable<z.ZodString>;
964
- tripLogId: z.ZodNullable<z.ZodString>;
965
- status: z.ZodEnum<["pending", "approved", "rejected", "cancelled"]>;
966
- appliedBy: z.ZodString;
967
- reviewedBy: z.ZodNullable<z.ZodString>;
968
- reviewNotes: z.ZodNullable<z.ZodString>;
969
- feeItemId: z.ZodNullable<z.ZodString>;
970
- invoiceUpdated: z.ZodBoolean;
971
- createdAt: z.ZodString;
972
- studentName: z.ZodOptional<z.ZodString>;
973
- routeName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
974
- tripTitle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
975
- }, "strip", z.ZodTypeAny, {
976
- status: "cancelled" | "pending" | "approved" | "rejected";
977
- id: string;
978
- branchId: string;
979
- createdAt: string;
980
- studentId: string;
981
- routeId: string | null;
982
- reviewedBy: string | null;
983
- reviewNotes: string | null;
984
- applicationType: "route" | "trip";
985
- tripLogId: string | null;
986
- appliedBy: string;
987
- feeItemId: string | null;
988
- invoiceUpdated: boolean;
989
- studentName?: string | undefined;
990
- routeName?: string | null | undefined;
991
- tripTitle?: string | null | undefined;
992
- }, {
993
- status: "cancelled" | "pending" | "approved" | "rejected";
994
- id: string;
995
- branchId: string;
996
- createdAt: string;
997
- studentId: string;
998
- routeId: string | null;
999
- reviewedBy: string | null;
1000
- reviewNotes: string | null;
1001
- applicationType: "route" | "trip";
1002
- tripLogId: string | null;
1003
- appliedBy: string;
1004
- feeItemId: string | null;
1005
- invoiceUpdated: boolean;
1006
- studentName?: string | undefined;
1007
- routeName?: string | null | undefined;
1008
- tripTitle?: string | null | undefined;
1009
- }>;
1010
- declare const assetCategoryEnum: z.ZodEnum<["furniture", "lab_equipment", "ict_device", "vehicle", "sports_equipment", "kitchen_equipment", "musical_instrument", "classroom_supply", "library_book", "other"]>;
1011
- declare const assetConditionEnum: z.ZodEnum<["excellent", "good", "fair", "poor", "condemned"]>;
1012
- declare const maintenanceTicketStatusEnum: z.ZodEnum<["open", "in_progress", "resolved", "closed"]>;
1013
- declare const borrowingStatusEnum: z.ZodEnum<["active", "returned", "overdue", "lost"]>;
1014
- declare const incidentSeverityEnum: z.ZodEnum<["minor", "moderate", "serious", "critical"]>;
1015
- declare const incidentStatusEnum: z.ZodEnum<["open", "counsellor_review", "hod_review", "principal_ruling", "resolved"]>;
1016
- declare const disciplineRulingEnum: z.ZodEnum<["verbal_warning", "written_warning", "suspension", "expulsion", "dismissed"]>;
1017
- declare const payrollRunStatusEnum: z.ZodEnum<["draft", "approved", "paid"]>;
1018
- declare const notificationTypeEnum: z.ZodEnum<["report_card", "fee_invoice", "fee_reminder", "fee_block", "attendance_absent", "bus_departed", "bus_arrived", "discipline_incident", "assignment", "notice", "leave", "payslip"]>;
1019
- declare const sendBulkSmsInputSchema: z.ZodObject<{
1020
- branchId: z.ZodString;
1021
- message: z.ZodString;
1022
- recipientType: z.ZodEnum<["class", "grade", "whole_school", "custom"]>;
1023
- recipientIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1024
- scheduleAt: z.ZodOptional<z.ZodString>;
1025
- }, "strip", z.ZodTypeAny, {
1026
- message: string;
1027
- branchId: string;
1028
- recipientType: "custom" | "class" | "grade" | "whole_school";
1029
- recipientIds?: string[] | undefined;
1030
- scheduleAt?: string | undefined;
1031
- }, {
1032
- message: string;
1033
- branchId: string;
1034
- recipientType: "custom" | "class" | "grade" | "whole_school";
1035
- recipientIds?: string[] | undefined;
1036
- scheduleAt?: string | undefined;
1037
- }>;
703
+ enrolledCount: z.ZodNumber;
704
+ classTeacherId: z.ZodNullable<z.ZodUUID>;
705
+ }, z.core.$strip>;
706
+ type ClassSummary = z.infer<typeof ClassSummarySchema>;
1038
707
 
1039
- export { type SystemRole, assessmentScoreInputSchema, assessmentTypeEnum, assetCategoryEnum, assetConditionEnum, borrowingStatusEnum, branchSchema, busRegisterEntrySchema, busRegisterStatusEnum, changePasswordInputSchema, createBranchInputSchema, createStudentInputSchema, dateRangeSchema, disciplineRulingEnum, employmentTypeEnum, feeItemCategoryEnum, feeItemSchema, genderEnum, gradeLevelEnum, guardianSchema, incidentSeverityEnum, incidentStatusEnum, invoiceStatusEnum, leaveRequestInputSchema, leaveStatusEnum, listStudentsInputSchema, loginInputSchema, loginOutputSchema, maintenanceRequestSchema, maintenanceRequestStatusEnum, maintenanceTicketStatusEnum, mfaVerifyInputSchema, notificationTypeEnum, paginationSchema, paymentMethodEnum, payrollRunStatusEnum, recordPaymentInputSchema, refreshInputSchema, refreshTokenOutputSchema, reportCardStatusEnum, routeSchema, rubricBandEnum, sendBulkSmsInputSchema, sponsorSchema, sponsorTypeEnum, staffSchema, studentSchema, studentStatusEnum, subjectSchema, systemRoleEnum, transportAppStatusEnum, transportApplicationSchema, tripCategoryEnum, tripLogInputSchema, tripLogSchema, tripStatusEnum, userSchema, userStatusEnum, uuidSchema, vehicleOwnershipEnum, vehicleSchema, vehicleStatusEnum, vehicleTypeEnum };
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 };