Overview
The system enforces multiple validation rules to ensure data integrity, prevent scheduling conflicts, and maintain business logic. This guide covers all validation rules implemented in the class scheduling system.Time Limit Validation
18:30 End Time Rule
This is one of the most important validation rules in the system.Examples
Implementation
validacionesClases.ts
Error Message
From the README:Mensaje de error: “La clase no puede terminar después de las 18:30. Con duración de 60 minutos a las 18:00 terminaría a las 19:00.”See:
~/workspace/source/README.md:202-203
Form Validation
ClaseForm.tsx
~/workspace/source/src/components/forms/ClaseForm.tsx:237-242
Trial Class Validations
Rule 1: No Existing Classes
From the README:✅ Regla 1: Un alumno NO puede tener clase de prueba si ya tiene clases (programadas o completadas) de esa especialidadSee:
~/workspace/source/README.md:175
Rule 2: No Duplicate Trials
From the README:✅ Regla 2: Un alumno NO puede repetir clase de prueba de la misma especialidadSee:
~/workspace/source/README.md:177
Rule 3: Quota Exemption
Trial classes do not count toward the student’s monthly class quota.
✅ Regla 3: Las clases de prueba NO cuentan para la cuota mensual del alumnoSee:
~/workspace/source/README.md:179
Implementation
ClaseForm.tsx
~/workspace/source/src/components/forms/ClaseForm.tsx:200-216
Edit Restriction Validations
Finalized Class Rule
From the README:No se pueden editar clases con estado:See:Razón: Las clases finalizadas son registro histórico
- COMPLETADA
- INICIADA
- CANCELADA
~/workspace/source/README.md:222-227
Implementation
validacionesClases.ts
UI Indicators
Clases.tsx
~/workspace/source/src/pages/Clases.tsx:416-432
Disabled buttons show tooltips explaining why editing is not allowed: “No se puede editar una clase finalizada”
Private Horse Validation
Owner-Only Rule
From the README:5. Caballos Privados: Solo pueden ser usados por sus propietariosSee:
~/workspace/source/README.md:542
While the exact validation code isn’t shown in the files, this business rule is enforced in the class creation logic.
Schedule Conflict Validation
Conflict Detection
The system checks for scheduling conflicts:Horse Conflicts
Horse Conflicts
Validates that the selected horse doesn’t have another class at the same time.
Instructor Conflicts
Instructor Conflicts
Validates that the selected instructor doesn’t have another class at the same time.
3. Validación de Conflictos de Horario Verifica:See:
- Que el caballo no tenga otra clase a la misma hora
- Que el instructor no tenga otra clase a la misma hora
- Muestra indicadores visuales (⚠️) en celdas con conflicto
~/workspace/source/README.md:215-219
Conflicts are shown with ⚠️ warning indicators in the calendar view.
Required Field Validations
Student Selection
ClaseForm.tsx
~/workspace/source/src/components/forms/ClaseForm.tsx:188-192
Student selection is required for all classes except MONTA specialty.
Horse Selection
ClaseForm.tsx
~/workspace/source/src/components/forms/ClaseForm.tsx:219-234
Trial Class Name Validation
ClaseForm.tsx
~/workspace/source/src/components/forms/ClaseForm.tsx:168-173
Business Rule Summary
From the README:See:✅ Validaciones Críticas:
- Horario: Clases no pueden terminar después de las 18:30
- DNI: No se permiten DNI duplicados (alumnos e instructores)
- Edición: No se pueden editar clases finalizadas (COMPLETADA, INICIADA, CANCELADA)
- Clases de Prueba:
- Solo para alumnos inactivos
- No se pueden repetir en la misma especialidad
- No se permiten si el alumno ya tiene clases de esa especialidad
- Caballos Privados: Solo pueden ser usados por sus propietarios
- Conflictos: No se permite programar dos clases simultáneas con el mismo caballo o instructor
~/workspace/source/README.md:533-543
System Limits
From the README:See:📊 Límites del Sistema:
- Horario de clases: 09:00 a 18:30
- Franjas horarias: 30 minutos
- Planes disponibles: 4, 8, 12, 16 clases mensuales
- Duraciones de clase: 30 o 60 minutos
- Colores de instructor: 7 colores predefinidos
~/workspace/source/README.md:555-561
Validation Flow Diagram
Validation Messages
All validation errors are displayed using toast notifications:Best Practices
Next Steps
Creating Classes
Learn how to create classes with proper validation
Class States
Understand which states allow editing
Trial Classes
Review trial class validation rules