@brite-future-schools-contracts/contracts 1.0.7 → 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.
@@ -360,6 +360,10 @@ var busRegisterEntrySchema = import_zod.z.object({
360
360
  status: busRegisterStatusEnum
361
361
  });
362
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"]);
363
367
  var vehicleSchema = import_zod.z.object({
364
368
  id: uuidSchema,
365
369
  branchId: uuidSchema,
@@ -367,12 +371,13 @@ var vehicleSchema = import_zod.z.object({
367
371
  make: import_zod.z.string().nullable(),
368
372
  model: import_zod.z.string().nullable(),
369
373
  capacity: import_zod.z.number().nullable(),
370
- type: vehicleTypeEnum,
374
+ type: import_zod.z.string(),
371
375
  ownershipType: vehicleOwnershipEnum,
372
376
  insuranceExpiry: import_zod.z.string().nullable(),
373
377
  inspectionDate: import_zod.z.string().nullable(),
374
378
  status: vehicleStatusEnum,
375
379
  driverUserId: uuidSchema.nullable(),
380
+ notes: import_zod.z.string().nullable(),
376
381
  createdAt: import_zod.z.string().datetime()
377
382
  });
378
383
  var routeSchema = import_zod.z.object({
@@ -381,11 +386,24 @@ var routeSchema = import_zod.z.object({
381
386
  name: import_zod.z.string(),
382
387
  description: import_zod.z.string().nullable(),
383
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(),
384
395
  stops: import_zod.z.array(import_zod.z.object({
385
396
  id: uuidSchema,
386
397
  stopName: import_zod.z.string(),
387
398
  stopOrder: import_zod.z.number(),
388
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()
389
407
  })).optional()
390
408
  });
391
409
  var tripLogSchema = import_zod.z.object({
@@ -396,12 +414,50 @@ var tripLogSchema = import_zod.z.object({
396
414
  driverUserId: uuidSchema,
397
415
  departureTime: import_zod.z.string().datetime(),
398
416
  arrivalTime: import_zod.z.string().datetime().nullable(),
399
- tripType: import_zod.z.enum(["morning", "evening", "errand"]),
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(),
400
425
  notes: import_zod.z.string().nullable(),
401
426
  createdAt: import_zod.z.string().datetime(),
402
427
  vehicle: import_zod.z.object({ plateNo: import_zod.z.string(), type: import_zod.z.string() }).optional(),
403
428
  route: import_zod.z.object({ name: import_zod.z.string() }).nullable().optional()
404
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
+ });
405
461
  var assetCategoryEnum = import_zod.z.enum([
406
462
  "furniture",
407
463
  "lab_equipment",
@@ -932,95 +988,172 @@ var payrollContract = {
932
988
  var transportContract = {
933
989
  vehicles: {
934
990
  list: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema })).output(import_zod2.z.array(vehicleSchema)),
935
- create: import_contract.oc.input(
936
- import_zod2.z.object({
937
- branchId: uuidSchema,
938
- plateNo: import_zod2.z.string().min(1),
939
- type: vehicleTypeEnum,
940
- ownershipType: vehicleOwnershipEnum,
941
- make: import_zod2.z.string().optional(),
942
- model: import_zod2.z.string().optional(),
943
- capacity: import_zod2.z.number().int().positive().optional(),
944
- insuranceExpiry: import_zod2.z.string().optional(),
945
- inspectionDate: import_zod2.z.string().optional(),
946
- driverUserId: uuidSchema.optional()
947
- })
948
- ).output(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),
949
1017
  updateStatus: import_contract.oc.input(import_zod2.z.object({ id: uuidSchema, status: vehicleStatusEnum })).output(vehicleSchema)
950
1018
  },
951
1019
  routes: {
952
1020
  list: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema })).output(import_zod2.z.array(routeSchema)),
953
- create: import_contract.oc.input(
954
- import_zod2.z.object({
955
- branchId: uuidSchema,
956
- name: import_zod2.z.string().min(1),
957
- description: import_zod2.z.string().optional(),
958
- stops: import_zod2.z.array(
959
- import_zod2.z.object({
960
- stopName: import_zod2.z.string().min(1),
961
- stopOrder: import_zod2.z.number().int(),
962
- estimatedTime: import_zod2.z.string().optional()
963
- })
964
- ).optional()
965
- })
966
- ).output(routeSchema),
967
- 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() }))
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() }))
968
1063
  },
969
1064
  trips: {
970
- list: import_contract.oc.input(
971
- import_zod2.z.object({
972
- branchId: uuidSchema,
973
- date: import_zod2.z.string().optional(),
974
- vehicleId: uuidSchema.optional()
975
- })
976
- ).output(import_zod2.z.array(tripLogSchema)),
977
- get: import_contract.oc.input(import_zod2.z.object({ tripId: uuidSchema })).output(
978
- tripLogSchema.extend({
979
- boardings: import_zod2.z.array(
980
- import_zod2.z.object({
981
- studentId: uuidSchema,
982
- studentName: import_zod2.z.string(),
983
- status: busRegisterStatusEnum,
984
- recordedAt: import_zod2.z.string().datetime()
985
- })
986
- )
987
- })
988
- ),
989
- start: import_contract.oc.input(tripLogInputSchema).output(import_zod2.z.object({ id: uuidSchema })),
990
- recordBoardings: import_contract.oc.input(
991
- import_zod2.z.object({
992
- tripId: uuidSchema,
993
- entries: import_zod2.z.array(busRegisterEntrySchema)
994
- })
995
- ).output(import_zod2.z.object({ saved: import_zod2.z.number() })),
996
- complete: import_contract.oc.input(
997
- import_zod2.z.object({ tripId: uuidSchema, arrivalTime: import_zod2.z.string().datetime() })
998
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
999
- reportIncident: import_contract.oc.input(
1000
- import_zod2.z.object({
1001
- tripId: uuidSchema,
1002
- description: import_zod2.z.string(),
1003
- severity: incidentSeverityEnum,
1004
- location: import_zod2.z.string().optional()
1005
- })
1006
- ).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
+ })))
1007
1114
  },
1008
1115
  maintenance: {
1009
- log: import_contract.oc.input(
1010
- import_zod2.z.object({
1011
- vehicleId: uuidSchema,
1012
- issue: import_zod2.z.string(),
1013
- severity: import_zod2.z.enum(["routine", "urgent", "critical"])
1014
- })
1015
- ).output(import_zod2.z.object({ id: uuidSchema })),
1016
- list: import_contract.oc.input(import_zod2.z.object({ vehicleId: uuidSchema })).output(import_zod2.z.array(import_zod2.z.any())),
1017
- resolve: import_contract.oc.input(
1018
- import_zod2.z.object({
1019
- logId: uuidSchema,
1020
- notes: import_zod2.z.string().optional(),
1021
- cost: import_zod2.z.number().optional()
1022
- })
1023
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
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() }))
1024
1157
  }
1025
1158
  };
1026
1159
  var assetsContract = {