validate method
override
Método obligatorio que implementa la lógica de validación
request - El request HTTP actual
jwtPayload - El payload decodificado del JWT
Retorna ValidationResult indicando éxito o falla con mensaje
Implementation
@override
ValidationResult validate(Request request, Map<String, dynamic> jwtPayload) {
final now = DateTime.now();
// Validar día de la semana
if (!allowedWeekdays.contains(now.weekday)) {
return ValidationResult.invalid('Access restricted to business days');
}
// Validar horario
if (now.hour < startHour || now.hour >= endHour) {
// El JWT puede contener overrides específicos del usuario
final hasAfterHoursAccess = jwtPayload['after_hours_access'] as bool? ?? false;
if (!hasAfterHoursAccess) {
return ValidationResult.invalid(
'Access restricted to business hours ($startHour:00 - $endHour:00)'
);
}
}
return ValidationResult.valid();
}