Roadbound-BRR/lib/validators/trip_validator.dart

36 lines
957 B
Dart

import "../models/operations/trip.dart";
class TripValidator {
static List<String> validate(Trip trip) {
final errors = <String>[];
// Validate time format
if (!RegExp(r"^\d{2}:\d{2}$").hasMatch(trip.scheduledTime)) {
errors.add("Invalid time format: ${trip.scheduledTime}");
}
// Validate trip number
if (trip.tripNumber.isEmpty) {
errors.add("Missing trip number");
}
// Validate duty/bus-work numbers
if (trip.dutyNumber.isEmpty || trip.busWorkNumber.isEmpty) {
errors.add("Missing duty or bus work number");
}
// Validate actual departure time if provided
if (trip.actualDepartureTime != null &&
!RegExp(r"^\d{2}:\d{2}$").hasMatch(trip.actualDepartureTime!)) {
errors.add(
"Invalid actual departure time format: ${trip.actualDepartureTime}",
);
}
return errors;
}
static bool isValid(Trip trip) {
return validate(trip).isEmpty;
}
}