validate method

  1. @override
ValidationResult validate(
  1. Request request,
  2. Map<String, dynamic> jwtPayload
)
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();
}