@brite-future-schools-contracts/contracts 2.0.2 → 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.
@@ -142,4 +142,567 @@ type RefreshTokenOutput = z.infer<typeof RefreshTokenOutputSchema>;
142
142
  type ChangePasswordInput = z.infer<typeof ChangePasswordInputSchema>;
143
143
  type SwitchBranchInput = z.infer<typeof SwitchBranchInputSchema>;
144
144
 
145
- export { BranchRefSchema, type ChangePasswordInput, ChangePasswordInputSchema, CuidSchema, type LoginInput, LoginInputSchema, type LoginOutput, LoginOutputSchema, LogoutInputSchema, type PaginationInput, PaginationInputSchema, type RefreshTokenInput, RefreshTokenInputSchema, type RefreshTokenOutput, RefreshTokenOutputSchema, RequestPasswordResetInputSchema, ResetPasswordInputSchema, type SessionUserOutput, SessionUserOutputSchema, SessionUserRoleSchema, SessionUserSubRoleSchema, type SoftDelete, SoftDeleteSchema, type SwitchBranchInput, SwitchBranchInputSchema, type Timestamps, TimestampsSchema, UuidSchema, paginatedOutputSchema };
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 };