@brite-future-schools-contracts/contracts 1.0.4 → 1.0.8

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.
@@ -359,6 +359,105 @@ var busRegisterEntrySchema = import_zod.z.object({
359
359
  studentId: uuidSchema,
360
360
  status: busRegisterStatusEnum
361
361
  });
362
+ var vehicleStatusEnum = import_zod.z.enum(["active", "in_maintenance", "decommissioned"]);
363
+ var tripCategoryEnum = import_zod.z.enum(["regular", "special"]);
364
+ var tripStatusEnum = import_zod.z.enum(["scheduled", "in_progress", "completed", "cancelled"]);
365
+ var transportAppStatusEnum = import_zod.z.enum(["pending", "approved", "rejected", "cancelled"]);
366
+ var maintenanceRequestStatusEnum = import_zod.z.enum(["pending", "approved", "rejected", "resolved"]);
367
+ var vehicleSchema = import_zod.z.object({
368
+ id: uuidSchema,
369
+ branchId: uuidSchema,
370
+ plateNo: import_zod.z.string(),
371
+ make: import_zod.z.string().nullable(),
372
+ model: import_zod.z.string().nullable(),
373
+ capacity: import_zod.z.number().nullable(),
374
+ type: import_zod.z.string(),
375
+ ownershipType: vehicleOwnershipEnum,
376
+ insuranceExpiry: import_zod.z.string().nullable(),
377
+ inspectionDate: import_zod.z.string().nullable(),
378
+ status: vehicleStatusEnum,
379
+ driverUserId: uuidSchema.nullable(),
380
+ notes: import_zod.z.string().nullable(),
381
+ createdAt: import_zod.z.string().datetime()
382
+ });
383
+ var routeSchema = import_zod.z.object({
384
+ id: uuidSchema,
385
+ branchId: uuidSchema,
386
+ name: import_zod.z.string(),
387
+ description: import_zod.z.string().nullable(),
388
+ isActive: import_zod.z.boolean(),
389
+ vehicleId: uuidSchema.nullable(),
390
+ routeCategory: import_zod.z.string(),
391
+ departureTime: import_zod.z.string().nullable(),
392
+ returnTime: import_zod.z.string().nullable(),
393
+ fare: import_zod.z.number().nullable(),
394
+ vehicle: import_zod.z.object({ plateNo: import_zod.z.string(), type: import_zod.z.string() }).nullable().optional(),
395
+ stops: import_zod.z.array(import_zod.z.object({
396
+ id: uuidSchema,
397
+ stopName: import_zod.z.string(),
398
+ stopOrder: import_zod.z.number(),
399
+ estimatedTime: import_zod.z.string().nullable()
400
+ })).optional(),
401
+ roster: import_zod.z.array(import_zod.z.object({
402
+ studentId: uuidSchema,
403
+ studentName: import_zod.z.string(),
404
+ admissionNo: import_zod.z.string(),
405
+ pickupStop: import_zod.z.string().nullable(),
406
+ dropoffStop: import_zod.z.string().nullable()
407
+ })).optional()
408
+ });
409
+ var tripLogSchema = import_zod.z.object({
410
+ id: uuidSchema,
411
+ branchId: uuidSchema,
412
+ vehicleId: uuidSchema,
413
+ routeId: uuidSchema.nullable(),
414
+ driverUserId: uuidSchema,
415
+ departureTime: import_zod.z.string().datetime(),
416
+ arrivalTime: import_zod.z.string().datetime().nullable(),
417
+ returnTime: import_zod.z.string().datetime().nullable(),
418
+ tripType: import_zod.z.string(),
419
+ tripCategory: tripCategoryEnum,
420
+ status: tripStatusEnum,
421
+ title: import_zod.z.string().nullable(),
422
+ description: import_zod.z.string().nullable(),
423
+ destination: import_zod.z.string().nullable(),
424
+ expectedStudents: import_zod.z.number().nullable(),
425
+ notes: import_zod.z.string().nullable(),
426
+ createdAt: import_zod.z.string().datetime(),
427
+ vehicle: import_zod.z.object({ plateNo: import_zod.z.string(), type: import_zod.z.string() }).optional(),
428
+ route: import_zod.z.object({ name: import_zod.z.string() }).nullable().optional()
429
+ });
430
+ var maintenanceRequestSchema = import_zod.z.object({
431
+ id: uuidSchema,
432
+ vehicleId: uuidSchema,
433
+ requestedBy: uuidSchema,
434
+ issue: import_zod.z.string(),
435
+ severity: import_zod.z.string(),
436
+ status: maintenanceRequestStatusEnum,
437
+ reviewedBy: uuidSchema.nullable(),
438
+ reviewNotes: import_zod.z.string().nullable(),
439
+ reviewedAt: import_zod.z.string().datetime().nullable(),
440
+ createdAt: import_zod.z.string().datetime(),
441
+ vehiclePlate: import_zod.z.string().optional()
442
+ });
443
+ var transportApplicationSchema = import_zod.z.object({
444
+ id: uuidSchema,
445
+ branchId: uuidSchema,
446
+ studentId: uuidSchema,
447
+ applicationType: import_zod.z.enum(["route", "trip"]),
448
+ routeId: uuidSchema.nullable(),
449
+ tripLogId: uuidSchema.nullable(),
450
+ status: transportAppStatusEnum,
451
+ appliedBy: uuidSchema,
452
+ reviewedBy: uuidSchema.nullable(),
453
+ reviewNotes: import_zod.z.string().nullable(),
454
+ feeItemId: uuidSchema.nullable(),
455
+ invoiceUpdated: import_zod.z.boolean(),
456
+ createdAt: import_zod.z.string().datetime(),
457
+ studentName: import_zod.z.string().optional(),
458
+ routeName: import_zod.z.string().nullable().optional(),
459
+ tripTitle: import_zod.z.string().nullable().optional()
460
+ });
362
461
  var assetCategoryEnum = import_zod.z.enum([
363
462
  "furniture",
364
463
  "lab_equipment",
@@ -888,47 +987,173 @@ var payrollContract = {
888
987
  };
889
988
  var transportContract = {
890
989
  vehicles: {
891
- list: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema })).output(
892
- import_zod2.z.array(
893
- import_zod2.z.object({
894
- id: uuidSchema,
895
- plateNo: import_zod2.z.string(),
896
- type: import_zod2.z.string(),
897
- status: import_zod2.z.string(),
898
- currentTrip: import_zod2.z.any().nullable()
899
- })
900
- )
901
- )
990
+ list: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema })).output(import_zod2.z.array(vehicleSchema)),
991
+ create: import_contract.oc.input(import_zod2.z.object({
992
+ branchId: uuidSchema,
993
+ plateNo: import_zod2.z.string().min(1),
994
+ type: import_zod2.z.string().min(1),
995
+ ownershipType: vehicleOwnershipEnum,
996
+ make: import_zod2.z.string().optional(),
997
+ model: import_zod2.z.string().optional(),
998
+ capacity: import_zod2.z.number().int().positive().optional(),
999
+ insuranceExpiry: import_zod2.z.string().optional(),
1000
+ inspectionDate: import_zod2.z.string().optional(),
1001
+ driverUserId: uuidSchema.optional(),
1002
+ notes: import_zod2.z.string().optional()
1003
+ })).output(vehicleSchema),
1004
+ update: import_contract.oc.input(import_zod2.z.object({
1005
+ id: uuidSchema,
1006
+ plateNo: import_zod2.z.string().optional(),
1007
+ type: import_zod2.z.string().optional(),
1008
+ ownershipType: vehicleOwnershipEnum.optional(),
1009
+ make: import_zod2.z.string().optional(),
1010
+ model: import_zod2.z.string().optional(),
1011
+ capacity: import_zod2.z.number().int().positive().optional(),
1012
+ insuranceExpiry: import_zod2.z.string().optional(),
1013
+ inspectionDate: import_zod2.z.string().optional(),
1014
+ driverUserId: uuidSchema.optional(),
1015
+ notes: import_zod2.z.string().optional()
1016
+ })).output(vehicleSchema),
1017
+ updateStatus: import_contract.oc.input(import_zod2.z.object({ id: uuidSchema, status: vehicleStatusEnum })).output(vehicleSchema)
1018
+ },
1019
+ routes: {
1020
+ list: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema })).output(import_zod2.z.array(routeSchema)),
1021
+ get: import_contract.oc.input(import_zod2.z.object({ routeId: uuidSchema })).output(routeSchema),
1022
+ create: import_contract.oc.input(import_zod2.z.object({
1023
+ branchId: uuidSchema,
1024
+ name: import_zod2.z.string().min(1),
1025
+ description: import_zod2.z.string().optional(),
1026
+ vehicleId: uuidSchema.optional(),
1027
+ routeCategory: import_zod2.z.string().optional(),
1028
+ departureTime: import_zod2.z.string().optional(),
1029
+ returnTime: import_zod2.z.string().optional(),
1030
+ fare: import_zod2.z.number().optional(),
1031
+ stops: import_zod2.z.array(import_zod2.z.object({
1032
+ stopName: import_zod2.z.string().min(1),
1033
+ stopOrder: import_zod2.z.number().int(),
1034
+ estimatedTime: import_zod2.z.string().optional()
1035
+ })).optional()
1036
+ })).output(routeSchema),
1037
+ update: import_contract.oc.input(import_zod2.z.object({
1038
+ id: uuidSchema,
1039
+ name: import_zod2.z.string().optional(),
1040
+ description: import_zod2.z.string().optional(),
1041
+ vehicleId: uuidSchema.optional(),
1042
+ routeCategory: import_zod2.z.string().optional(),
1043
+ departureTime: import_zod2.z.string().optional(),
1044
+ returnTime: import_zod2.z.string().optional(),
1045
+ fare: import_zod2.z.number().optional()
1046
+ })).output(routeSchema),
1047
+ toggle: import_contract.oc.input(import_zod2.z.object({ id: uuidSchema, isActive: import_zod2.z.boolean() })).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1048
+ roster: import_contract.oc.input(import_zod2.z.object({ routeId: uuidSchema, termId: uuidSchema })).output(import_zod2.z.array(import_zod2.z.object({
1049
+ studentId: uuidSchema,
1050
+ studentName: import_zod2.z.string(),
1051
+ admissionNo: import_zod2.z.string(),
1052
+ pickupStop: import_zod2.z.string().nullable(),
1053
+ dropoffStop: import_zod2.z.string().nullable()
1054
+ }))),
1055
+ enroll: import_contract.oc.input(import_zod2.z.object({
1056
+ studentId: uuidSchema,
1057
+ routeId: uuidSchema,
1058
+ termId: uuidSchema,
1059
+ pickupStopId: uuidSchema.optional(),
1060
+ dropoffStopId: uuidSchema.optional()
1061
+ })).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1062
+ unenroll: import_contract.oc.input(import_zod2.z.object({ studentId: uuidSchema, routeId: uuidSchema, termId: uuidSchema })).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
902
1063
  },
903
1064
  trips: {
904
- start: import_contract.oc.input(tripLogInputSchema).output(import_zod2.z.object({ id: uuidSchema })),
905
- recordBoardings: import_contract.oc.input(
906
- import_zod2.z.object({
907
- tripId: uuidSchema,
908
- entries: import_zod2.z.array(busRegisterEntrySchema)
909
- })
910
- ).output(import_zod2.z.object({ saved: import_zod2.z.number() })),
911
- complete: import_contract.oc.input(
912
- import_zod2.z.object({ tripId: uuidSchema, arrivalTime: import_zod2.z.string().datetime() })
913
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
914
- reportIncident: import_contract.oc.input(
915
- import_zod2.z.object({
916
- tripId: uuidSchema,
917
- description: import_zod2.z.string(),
918
- severity: incidentSeverityEnum,
919
- location: import_zod2.z.string().optional()
920
- })
921
- ).output(import_zod2.z.object({ id: uuidSchema }))
1065
+ list: import_contract.oc.input(import_zod2.z.object({
1066
+ branchId: uuidSchema,
1067
+ date: import_zod2.z.string().optional(),
1068
+ vehicleId: uuidSchema.optional(),
1069
+ tripCategory: tripCategoryEnum.optional(),
1070
+ status: tripStatusEnum.optional()
1071
+ })).output(import_zod2.z.array(tripLogSchema)),
1072
+ get: import_contract.oc.input(import_zod2.z.object({ tripId: uuidSchema })).output(tripLogSchema.extend({
1073
+ boardings: import_zod2.z.array(import_zod2.z.object({
1074
+ studentId: uuidSchema,
1075
+ studentName: import_zod2.z.string(),
1076
+ status: busRegisterStatusEnum,
1077
+ recordedAt: import_zod2.z.string().datetime()
1078
+ }))
1079
+ })),
1080
+ create: import_contract.oc.input(import_zod2.z.object({
1081
+ branchId: uuidSchema,
1082
+ vehicleId: uuidSchema,
1083
+ routeId: uuidSchema.optional(),
1084
+ tripType: import_zod2.z.string(),
1085
+ tripCategory: tripCategoryEnum,
1086
+ departureTime: import_zod2.z.string().datetime(),
1087
+ returnTime: import_zod2.z.string().datetime().optional(),
1088
+ title: import_zod2.z.string().optional(),
1089
+ description: import_zod2.z.string().optional(),
1090
+ destination: import_zod2.z.string().optional(),
1091
+ expectedStudents: import_zod2.z.number().optional(),
1092
+ notes: import_zod2.z.string().optional()
1093
+ })).output(import_zod2.z.object({ id: uuidSchema })),
1094
+ updateStatus: import_contract.oc.input(import_zod2.z.object({ tripId: uuidSchema, status: tripStatusEnum })).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1095
+ complete: import_contract.oc.input(import_zod2.z.object({ tripId: uuidSchema, arrivalTime: import_zod2.z.string().datetime() })).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1096
+ recordBoardings: import_contract.oc.input(import_zod2.z.object({
1097
+ tripId: uuidSchema,
1098
+ entries: import_zod2.z.array(busRegisterEntrySchema)
1099
+ })).output(import_zod2.z.object({ saved: import_zod2.z.number() })),
1100
+ reportIncident: import_contract.oc.input(import_zod2.z.object({
1101
+ tripId: uuidSchema,
1102
+ description: import_zod2.z.string(),
1103
+ severity: incidentSeverityEnum,
1104
+ location: import_zod2.z.string().optional()
1105
+ })).output(import_zod2.z.object({ id: uuidSchema })),
1106
+ enrollStudent: import_contract.oc.input(import_zod2.z.object({ tripId: uuidSchema, studentId: uuidSchema })).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1107
+ unenrollStudent: import_contract.oc.input(import_zod2.z.object({ tripId: uuidSchema, studentId: uuidSchema })).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1108
+ listEnrolled: import_contract.oc.input(import_zod2.z.object({ tripId: uuidSchema })).output(import_zod2.z.array(import_zod2.z.object({
1109
+ studentId: uuidSchema,
1110
+ studentName: import_zod2.z.string(),
1111
+ admissionNo: import_zod2.z.string(),
1112
+ status: busRegisterStatusEnum.nullable()
1113
+ })))
922
1114
  },
923
1115
  maintenance: {
924
- log: import_contract.oc.input(
925
- import_zod2.z.object({
926
- vehicleId: uuidSchema,
927
- issue: import_zod2.z.string(),
928
- severity: import_zod2.z.enum(["routine", "urgent", "critical"])
929
- })
930
- ).output(import_zod2.z.object({ id: uuidSchema })),
931
- list: import_contract.oc.input(import_zod2.z.object({ vehicleId: uuidSchema })).output(import_zod2.z.array(import_zod2.z.any()))
1116
+ submit: import_contract.oc.input(import_zod2.z.object({
1117
+ vehicleId: uuidSchema,
1118
+ issue: import_zod2.z.string().min(5),
1119
+ severity: import_zod2.z.enum(["routine", "urgent", "critical"])
1120
+ })).output(import_zod2.z.object({ id: uuidSchema })),
1121
+ list: import_contract.oc.input(import_zod2.z.object({
1122
+ branchId: uuidSchema,
1123
+ vehicleId: uuidSchema.optional(),
1124
+ status: maintenanceRequestStatusEnum.optional()
1125
+ })).output(import_zod2.z.array(maintenanceRequestSchema)),
1126
+ review: import_contract.oc.input(import_zod2.z.object({
1127
+ id: uuidSchema,
1128
+ approved: import_zod2.z.boolean(),
1129
+ reviewNotes: import_zod2.z.string().optional()
1130
+ })).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1131
+ resolve: import_contract.oc.input(import_zod2.z.object({
1132
+ id: uuidSchema,
1133
+ notes: import_zod2.z.string().optional(),
1134
+ cost: import_zod2.z.number().optional()
1135
+ })).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
1136
+ },
1137
+ applications: {
1138
+ list: import_contract.oc.input(import_zod2.z.object({
1139
+ branchId: uuidSchema,
1140
+ status: transportAppStatusEnum.optional(),
1141
+ applicationType: import_zod2.z.enum(["route", "trip"]).optional()
1142
+ })).output(import_zod2.z.array(transportApplicationSchema)),
1143
+ apply: import_contract.oc.input(import_zod2.z.object({
1144
+ branchId: uuidSchema,
1145
+ studentId: uuidSchema,
1146
+ applicationType: import_zod2.z.enum(["route", "trip"]),
1147
+ routeId: uuidSchema.optional(),
1148
+ tripLogId: uuidSchema.optional(),
1149
+ feeItemId: uuidSchema.optional()
1150
+ })).output(import_zod2.z.object({ id: uuidSchema })),
1151
+ review: import_contract.oc.input(import_zod2.z.object({
1152
+ id: uuidSchema,
1153
+ approved: import_zod2.z.boolean(),
1154
+ reviewNotes: import_zod2.z.string().optional(),
1155
+ updateInvoice: import_zod2.z.boolean().optional()
1156
+ })).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
932
1157
  }
933
1158
  };
934
1159
  var assetsContract = {