@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.
package/dist/index.js CHANGED
@@ -58,6 +58,8 @@ __export(src_exports, {
58
58
  listStudentsInputSchema: () => listStudentsInputSchema,
59
59
  loginInputSchema: () => loginInputSchema,
60
60
  loginOutputSchema: () => loginOutputSchema,
61
+ maintenanceRequestSchema: () => maintenanceRequestSchema,
62
+ maintenanceRequestStatusEnum: () => maintenanceRequestStatusEnum,
61
63
  maintenanceTicketStatusEnum: () => maintenanceTicketStatusEnum,
62
64
  mfaVerifyInputSchema: () => mfaVerifyInputSchema,
63
65
  notificationTypeEnum: () => notificationTypeEnum,
@@ -81,9 +83,13 @@ __export(src_exports, {
81
83
  studentsContract: () => studentsContract,
82
84
  subjectSchema: () => subjectSchema,
83
85
  systemRoleEnum: () => systemRoleEnum,
86
+ transportAppStatusEnum: () => transportAppStatusEnum,
87
+ transportApplicationSchema: () => transportApplicationSchema,
84
88
  transportContract: () => transportContract,
89
+ tripCategoryEnum: () => tripCategoryEnum,
85
90
  tripLogInputSchema: () => tripLogInputSchema,
86
91
  tripLogSchema: () => tripLogSchema,
92
+ tripStatusEnum: () => tripStatusEnum,
87
93
  userSchema: () => userSchema,
88
94
  userStatusEnum: () => userStatusEnum,
89
95
  uuidSchema: () => uuidSchema,
@@ -414,6 +420,10 @@ var busRegisterEntrySchema = import_zod.z.object({
414
420
  status: busRegisterStatusEnum
415
421
  });
416
422
  var vehicleStatusEnum = import_zod.z.enum(["active", "in_maintenance", "decommissioned"]);
423
+ var tripCategoryEnum = import_zod.z.enum(["regular", "special"]);
424
+ var tripStatusEnum = import_zod.z.enum(["scheduled", "in_progress", "completed", "cancelled"]);
425
+ var transportAppStatusEnum = import_zod.z.enum(["pending", "approved", "rejected", "cancelled"]);
426
+ var maintenanceRequestStatusEnum = import_zod.z.enum(["pending", "approved", "rejected", "resolved"]);
417
427
  var vehicleSchema = import_zod.z.object({
418
428
  id: uuidSchema,
419
429
  branchId: uuidSchema,
@@ -421,12 +431,13 @@ var vehicleSchema = import_zod.z.object({
421
431
  make: import_zod.z.string().nullable(),
422
432
  model: import_zod.z.string().nullable(),
423
433
  capacity: import_zod.z.number().nullable(),
424
- type: vehicleTypeEnum,
434
+ type: import_zod.z.string(),
425
435
  ownershipType: vehicleOwnershipEnum,
426
436
  insuranceExpiry: import_zod.z.string().nullable(),
427
437
  inspectionDate: import_zod.z.string().nullable(),
428
438
  status: vehicleStatusEnum,
429
439
  driverUserId: uuidSchema.nullable(),
440
+ notes: import_zod.z.string().nullable(),
430
441
  createdAt: import_zod.z.string().datetime()
431
442
  });
432
443
  var routeSchema = import_zod.z.object({
@@ -435,11 +446,24 @@ var routeSchema = import_zod.z.object({
435
446
  name: import_zod.z.string(),
436
447
  description: import_zod.z.string().nullable(),
437
448
  isActive: import_zod.z.boolean(),
449
+ vehicleId: uuidSchema.nullable(),
450
+ routeCategory: import_zod.z.string(),
451
+ departureTime: import_zod.z.string().nullable(),
452
+ returnTime: import_zod.z.string().nullable(),
453
+ fare: import_zod.z.number().nullable(),
454
+ vehicle: import_zod.z.object({ plateNo: import_zod.z.string(), type: import_zod.z.string() }).nullable().optional(),
438
455
  stops: import_zod.z.array(import_zod.z.object({
439
456
  id: uuidSchema,
440
457
  stopName: import_zod.z.string(),
441
458
  stopOrder: import_zod.z.number(),
442
459
  estimatedTime: import_zod.z.string().nullable()
460
+ })).optional(),
461
+ roster: import_zod.z.array(import_zod.z.object({
462
+ studentId: uuidSchema,
463
+ studentName: import_zod.z.string(),
464
+ admissionNo: import_zod.z.string(),
465
+ pickupStop: import_zod.z.string().nullable(),
466
+ dropoffStop: import_zod.z.string().nullable()
443
467
  })).optional()
444
468
  });
445
469
  var tripLogSchema = import_zod.z.object({
@@ -450,12 +474,50 @@ var tripLogSchema = import_zod.z.object({
450
474
  driverUserId: uuidSchema,
451
475
  departureTime: import_zod.z.string().datetime(),
452
476
  arrivalTime: import_zod.z.string().datetime().nullable(),
453
- tripType: import_zod.z.enum(["morning", "evening", "errand"]),
477
+ returnTime: import_zod.z.string().datetime().nullable(),
478
+ tripType: import_zod.z.string(),
479
+ tripCategory: tripCategoryEnum,
480
+ status: tripStatusEnum,
481
+ title: import_zod.z.string().nullable(),
482
+ description: import_zod.z.string().nullable(),
483
+ destination: import_zod.z.string().nullable(),
484
+ expectedStudents: import_zod.z.number().nullable(),
454
485
  notes: import_zod.z.string().nullable(),
455
486
  createdAt: import_zod.z.string().datetime(),
456
487
  vehicle: import_zod.z.object({ plateNo: import_zod.z.string(), type: import_zod.z.string() }).optional(),
457
488
  route: import_zod.z.object({ name: import_zod.z.string() }).nullable().optional()
458
489
  });
490
+ var maintenanceRequestSchema = import_zod.z.object({
491
+ id: uuidSchema,
492
+ vehicleId: uuidSchema,
493
+ requestedBy: uuidSchema,
494
+ issue: import_zod.z.string(),
495
+ severity: import_zod.z.string(),
496
+ status: maintenanceRequestStatusEnum,
497
+ reviewedBy: uuidSchema.nullable(),
498
+ reviewNotes: import_zod.z.string().nullable(),
499
+ reviewedAt: import_zod.z.string().datetime().nullable(),
500
+ createdAt: import_zod.z.string().datetime(),
501
+ vehiclePlate: import_zod.z.string().optional()
502
+ });
503
+ var transportApplicationSchema = import_zod.z.object({
504
+ id: uuidSchema,
505
+ branchId: uuidSchema,
506
+ studentId: uuidSchema,
507
+ applicationType: import_zod.z.enum(["route", "trip"]),
508
+ routeId: uuidSchema.nullable(),
509
+ tripLogId: uuidSchema.nullable(),
510
+ status: transportAppStatusEnum,
511
+ appliedBy: uuidSchema,
512
+ reviewedBy: uuidSchema.nullable(),
513
+ reviewNotes: import_zod.z.string().nullable(),
514
+ feeItemId: uuidSchema.nullable(),
515
+ invoiceUpdated: import_zod.z.boolean(),
516
+ createdAt: import_zod.z.string().datetime(),
517
+ studentName: import_zod.z.string().optional(),
518
+ routeName: import_zod.z.string().nullable().optional(),
519
+ tripTitle: import_zod.z.string().nullable().optional()
520
+ });
459
521
  var assetCategoryEnum = import_zod.z.enum([
460
522
  "furniture",
461
523
  "lab_equipment",
@@ -988,95 +1050,172 @@ var payrollContract = {
988
1050
  var transportContract = {
989
1051
  vehicles: {
990
1052
  list: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema })).output(import_zod2.z.array(vehicleSchema)),
991
- create: import_contract.oc.input(
992
- import_zod2.z.object({
993
- branchId: uuidSchema,
994
- plateNo: import_zod2.z.string().min(1),
995
- type: vehicleTypeEnum,
996
- ownershipType: vehicleOwnershipEnum,
997
- make: import_zod2.z.string().optional(),
998
- model: import_zod2.z.string().optional(),
999
- capacity: import_zod2.z.number().int().positive().optional(),
1000
- insuranceExpiry: import_zod2.z.string().optional(),
1001
- inspectionDate: import_zod2.z.string().optional(),
1002
- driverUserId: uuidSchema.optional()
1003
- })
1004
- ).output(vehicleSchema),
1053
+ create: import_contract.oc.input(import_zod2.z.object({
1054
+ branchId: uuidSchema,
1055
+ plateNo: import_zod2.z.string().min(1),
1056
+ type: import_zod2.z.string().min(1),
1057
+ ownershipType: vehicleOwnershipEnum,
1058
+ make: import_zod2.z.string().optional(),
1059
+ model: import_zod2.z.string().optional(),
1060
+ capacity: import_zod2.z.number().int().positive().optional(),
1061
+ insuranceExpiry: import_zod2.z.string().optional(),
1062
+ inspectionDate: import_zod2.z.string().optional(),
1063
+ driverUserId: uuidSchema.optional(),
1064
+ notes: import_zod2.z.string().optional()
1065
+ })).output(vehicleSchema),
1066
+ update: import_contract.oc.input(import_zod2.z.object({
1067
+ id: uuidSchema,
1068
+ plateNo: import_zod2.z.string().optional(),
1069
+ type: import_zod2.z.string().optional(),
1070
+ ownershipType: vehicleOwnershipEnum.optional(),
1071
+ make: import_zod2.z.string().optional(),
1072
+ model: import_zod2.z.string().optional(),
1073
+ capacity: import_zod2.z.number().int().positive().optional(),
1074
+ insuranceExpiry: import_zod2.z.string().optional(),
1075
+ inspectionDate: import_zod2.z.string().optional(),
1076
+ driverUserId: uuidSchema.optional(),
1077
+ notes: import_zod2.z.string().optional()
1078
+ })).output(vehicleSchema),
1005
1079
  updateStatus: import_contract.oc.input(import_zod2.z.object({ id: uuidSchema, status: vehicleStatusEnum })).output(vehicleSchema)
1006
1080
  },
1007
1081
  routes: {
1008
1082
  list: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema })).output(import_zod2.z.array(routeSchema)),
1009
- create: import_contract.oc.input(
1010
- import_zod2.z.object({
1011
- branchId: uuidSchema,
1012
- name: import_zod2.z.string().min(1),
1013
- description: import_zod2.z.string().optional(),
1014
- stops: import_zod2.z.array(
1015
- import_zod2.z.object({
1016
- stopName: import_zod2.z.string().min(1),
1017
- stopOrder: import_zod2.z.number().int(),
1018
- estimatedTime: import_zod2.z.string().optional()
1019
- })
1020
- ).optional()
1021
- })
1022
- ).output(routeSchema),
1023
- 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() }))
1083
+ get: import_contract.oc.input(import_zod2.z.object({ routeId: uuidSchema })).output(routeSchema),
1084
+ create: import_contract.oc.input(import_zod2.z.object({
1085
+ branchId: uuidSchema,
1086
+ name: import_zod2.z.string().min(1),
1087
+ description: import_zod2.z.string().optional(),
1088
+ vehicleId: uuidSchema.optional(),
1089
+ routeCategory: import_zod2.z.string().optional(),
1090
+ departureTime: import_zod2.z.string().optional(),
1091
+ returnTime: import_zod2.z.string().optional(),
1092
+ fare: import_zod2.z.number().optional(),
1093
+ stops: import_zod2.z.array(import_zod2.z.object({
1094
+ stopName: import_zod2.z.string().min(1),
1095
+ stopOrder: import_zod2.z.number().int(),
1096
+ estimatedTime: import_zod2.z.string().optional()
1097
+ })).optional()
1098
+ })).output(routeSchema),
1099
+ update: import_contract.oc.input(import_zod2.z.object({
1100
+ id: uuidSchema,
1101
+ name: import_zod2.z.string().optional(),
1102
+ description: import_zod2.z.string().optional(),
1103
+ vehicleId: uuidSchema.optional(),
1104
+ routeCategory: import_zod2.z.string().optional(),
1105
+ departureTime: import_zod2.z.string().optional(),
1106
+ returnTime: import_zod2.z.string().optional(),
1107
+ fare: import_zod2.z.number().optional()
1108
+ })).output(routeSchema),
1109
+ 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() })),
1110
+ roster: import_contract.oc.input(import_zod2.z.object({ routeId: uuidSchema, termId: uuidSchema })).output(import_zod2.z.array(import_zod2.z.object({
1111
+ studentId: uuidSchema,
1112
+ studentName: import_zod2.z.string(),
1113
+ admissionNo: import_zod2.z.string(),
1114
+ pickupStop: import_zod2.z.string().nullable(),
1115
+ dropoffStop: import_zod2.z.string().nullable()
1116
+ }))),
1117
+ enroll: import_contract.oc.input(import_zod2.z.object({
1118
+ studentId: uuidSchema,
1119
+ routeId: uuidSchema,
1120
+ termId: uuidSchema,
1121
+ pickupStopId: uuidSchema.optional(),
1122
+ dropoffStopId: uuidSchema.optional()
1123
+ })).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1124
+ 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() }))
1024
1125
  },
1025
1126
  trips: {
1026
- list: import_contract.oc.input(
1027
- import_zod2.z.object({
1028
- branchId: uuidSchema,
1029
- date: import_zod2.z.string().optional(),
1030
- vehicleId: uuidSchema.optional()
1031
- })
1032
- ).output(import_zod2.z.array(tripLogSchema)),
1033
- get: import_contract.oc.input(import_zod2.z.object({ tripId: uuidSchema })).output(
1034
- tripLogSchema.extend({
1035
- boardings: import_zod2.z.array(
1036
- import_zod2.z.object({
1037
- studentId: uuidSchema,
1038
- studentName: import_zod2.z.string(),
1039
- status: busRegisterStatusEnum,
1040
- recordedAt: import_zod2.z.string().datetime()
1041
- })
1042
- )
1043
- })
1044
- ),
1045
- start: import_contract.oc.input(tripLogInputSchema).output(import_zod2.z.object({ id: uuidSchema })),
1046
- recordBoardings: import_contract.oc.input(
1047
- import_zod2.z.object({
1048
- tripId: uuidSchema,
1049
- entries: import_zod2.z.array(busRegisterEntrySchema)
1050
- })
1051
- ).output(import_zod2.z.object({ saved: import_zod2.z.number() })),
1052
- complete: import_contract.oc.input(
1053
- import_zod2.z.object({ tripId: uuidSchema, arrivalTime: import_zod2.z.string().datetime() })
1054
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1055
- reportIncident: import_contract.oc.input(
1056
- import_zod2.z.object({
1057
- tripId: uuidSchema,
1058
- description: import_zod2.z.string(),
1059
- severity: incidentSeverityEnum,
1060
- location: import_zod2.z.string().optional()
1061
- })
1062
- ).output(import_zod2.z.object({ id: uuidSchema }))
1127
+ list: import_contract.oc.input(import_zod2.z.object({
1128
+ branchId: uuidSchema,
1129
+ date: import_zod2.z.string().optional(),
1130
+ vehicleId: uuidSchema.optional(),
1131
+ tripCategory: tripCategoryEnum.optional(),
1132
+ status: tripStatusEnum.optional()
1133
+ })).output(import_zod2.z.array(tripLogSchema)),
1134
+ get: import_contract.oc.input(import_zod2.z.object({ tripId: uuidSchema })).output(tripLogSchema.extend({
1135
+ boardings: import_zod2.z.array(import_zod2.z.object({
1136
+ studentId: uuidSchema,
1137
+ studentName: import_zod2.z.string(),
1138
+ status: busRegisterStatusEnum,
1139
+ recordedAt: import_zod2.z.string().datetime()
1140
+ }))
1141
+ })),
1142
+ create: import_contract.oc.input(import_zod2.z.object({
1143
+ branchId: uuidSchema,
1144
+ vehicleId: uuidSchema,
1145
+ routeId: uuidSchema.optional(),
1146
+ tripType: import_zod2.z.string(),
1147
+ tripCategory: tripCategoryEnum,
1148
+ departureTime: import_zod2.z.string().datetime(),
1149
+ returnTime: import_zod2.z.string().datetime().optional(),
1150
+ title: import_zod2.z.string().optional(),
1151
+ description: import_zod2.z.string().optional(),
1152
+ destination: import_zod2.z.string().optional(),
1153
+ expectedStudents: import_zod2.z.number().optional(),
1154
+ notes: import_zod2.z.string().optional()
1155
+ })).output(import_zod2.z.object({ id: uuidSchema })),
1156
+ updateStatus: import_contract.oc.input(import_zod2.z.object({ tripId: uuidSchema, status: tripStatusEnum })).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1157
+ 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() })),
1158
+ recordBoardings: import_contract.oc.input(import_zod2.z.object({
1159
+ tripId: uuidSchema,
1160
+ entries: import_zod2.z.array(busRegisterEntrySchema)
1161
+ })).output(import_zod2.z.object({ saved: import_zod2.z.number() })),
1162
+ reportIncident: import_contract.oc.input(import_zod2.z.object({
1163
+ tripId: uuidSchema,
1164
+ description: import_zod2.z.string(),
1165
+ severity: incidentSeverityEnum,
1166
+ location: import_zod2.z.string().optional()
1167
+ })).output(import_zod2.z.object({ id: uuidSchema })),
1168
+ enrollStudent: import_contract.oc.input(import_zod2.z.object({ tripId: uuidSchema, studentId: uuidSchema })).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1169
+ unenrollStudent: import_contract.oc.input(import_zod2.z.object({ tripId: uuidSchema, studentId: uuidSchema })).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1170
+ listEnrolled: import_contract.oc.input(import_zod2.z.object({ tripId: uuidSchema })).output(import_zod2.z.array(import_zod2.z.object({
1171
+ studentId: uuidSchema,
1172
+ studentName: import_zod2.z.string(),
1173
+ admissionNo: import_zod2.z.string(),
1174
+ status: busRegisterStatusEnum.nullable()
1175
+ })))
1063
1176
  },
1064
1177
  maintenance: {
1065
- log: import_contract.oc.input(
1066
- import_zod2.z.object({
1067
- vehicleId: uuidSchema,
1068
- issue: import_zod2.z.string(),
1069
- severity: import_zod2.z.enum(["routine", "urgent", "critical"])
1070
- })
1071
- ).output(import_zod2.z.object({ id: uuidSchema })),
1072
- list: import_contract.oc.input(import_zod2.z.object({ vehicleId: uuidSchema })).output(import_zod2.z.array(import_zod2.z.any())),
1073
- resolve: import_contract.oc.input(
1074
- import_zod2.z.object({
1075
- logId: uuidSchema,
1076
- notes: import_zod2.z.string().optional(),
1077
- cost: import_zod2.z.number().optional()
1078
- })
1079
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
1178
+ submit: import_contract.oc.input(import_zod2.z.object({
1179
+ vehicleId: uuidSchema,
1180
+ issue: import_zod2.z.string().min(5),
1181
+ severity: import_zod2.z.enum(["routine", "urgent", "critical"])
1182
+ })).output(import_zod2.z.object({ id: uuidSchema })),
1183
+ list: import_contract.oc.input(import_zod2.z.object({
1184
+ branchId: uuidSchema,
1185
+ vehicleId: uuidSchema.optional(),
1186
+ status: maintenanceRequestStatusEnum.optional()
1187
+ })).output(import_zod2.z.array(maintenanceRequestSchema)),
1188
+ review: import_contract.oc.input(import_zod2.z.object({
1189
+ id: uuidSchema,
1190
+ approved: import_zod2.z.boolean(),
1191
+ reviewNotes: import_zod2.z.string().optional()
1192
+ })).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1193
+ resolve: import_contract.oc.input(import_zod2.z.object({
1194
+ id: uuidSchema,
1195
+ notes: import_zod2.z.string().optional(),
1196
+ cost: import_zod2.z.number().optional()
1197
+ })).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
1198
+ },
1199
+ applications: {
1200
+ list: import_contract.oc.input(import_zod2.z.object({
1201
+ branchId: uuidSchema,
1202
+ status: transportAppStatusEnum.optional(),
1203
+ applicationType: import_zod2.z.enum(["route", "trip"]).optional()
1204
+ })).output(import_zod2.z.array(transportApplicationSchema)),
1205
+ apply: import_contract.oc.input(import_zod2.z.object({
1206
+ branchId: uuidSchema,
1207
+ studentId: uuidSchema,
1208
+ applicationType: import_zod2.z.enum(["route", "trip"]),
1209
+ routeId: uuidSchema.optional(),
1210
+ tripLogId: uuidSchema.optional(),
1211
+ feeItemId: uuidSchema.optional()
1212
+ })).output(import_zod2.z.object({ id: uuidSchema })),
1213
+ review: import_contract.oc.input(import_zod2.z.object({
1214
+ id: uuidSchema,
1215
+ approved: import_zod2.z.boolean(),
1216
+ reviewNotes: import_zod2.z.string().optional(),
1217
+ updateInvoice: import_zod2.z.boolean().optional()
1218
+ })).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
1080
1219
  }
1081
1220
  };
1082
1221
  var assetsContract = {
@@ -1358,6 +1497,8 @@ var appContract = {
1358
1497
  listStudentsInputSchema,
1359
1498
  loginInputSchema,
1360
1499
  loginOutputSchema,
1500
+ maintenanceRequestSchema,
1501
+ maintenanceRequestStatusEnum,
1361
1502
  maintenanceTicketStatusEnum,
1362
1503
  mfaVerifyInputSchema,
1363
1504
  notificationTypeEnum,
@@ -1381,9 +1522,13 @@ var appContract = {
1381
1522
  studentsContract,
1382
1523
  subjectSchema,
1383
1524
  systemRoleEnum,
1525
+ transportAppStatusEnum,
1526
+ transportApplicationSchema,
1384
1527
  transportContract,
1528
+ tripCategoryEnum,
1385
1529
  tripLogInputSchema,
1386
1530
  tripLogSchema,
1531
+ tripStatusEnum,
1387
1532
  userSchema,
1388
1533
  userStatusEnum,
1389
1534
  uuidSchema,