Eliminar Curso Escolar¶
DELETE /api/v2/school-courses/:id¶
Auth: Bearer JWT (rol: admin)
Descripción: Elimina un curso escolar del sistema. CRÍTICO: Solo permite eliminar cursos que NO tengan registros asociados para mantener la integridad de datos.
Params¶
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
id |
number | ✅ | ID del curso escolar a eliminar |
cURL¶
Response (200)¶
Errores¶
| Código | Descripción | Ejemplo |
|---|---|---|
| 401 | Token inválido o expirado | { "message": "Unauthorized" } |
| 403 | Usuario sin permisos de admin | { "message": "Forbidden" } |
| 404 | Curso no encontrado | { "message": "School course not found" } |
| 409 | Curso tiene registros asociados | { "message": "Cannot delete school course: it has associated records (time records, registrations, grades, etc.). This would affect system integrity." } |
| 409 | Curso es el actual | { "message": "Cannot delete the current active school course. Please create a new course first to make it current." } |
Restricciones de Seguridad¶
⚠️ IMPORTANTE: Este endpoint tiene validaciones estrictas para proteger la integridad de datos:
- No se puede eliminar si tiene registros asociados:
- Fichajes (
timeRecords) - Banco de horas (
hoursBank) - Calificaciones (
grades) - Eventos/Horarios (
eventCalendar) - Matrículas (
registrations) - Centros (
centers) -
Nóminas (
payRolls) -
No se puede eliminar el curso actual: Debe crear un nuevo curso primero para que pase a ser el actual.
Casos de Uso¶
✅ Casos válidos para eliminar: - Curso creado por error sin ningún registro asociado - Curso de prueba que no se usó - Curso duplicado accidentalmente
❌ Casos que NO se pueden eliminar: - Curso con estudiantes matriculados - Curso con fichajes de empleados - Curso con calificaciones registradas - Curso que es el actual del sistema
Notas¶
- Operación irreversible: Una vez eliminado, no se puede recuperar
- Validación exhaustiva: Se verifican todas las tablas relacionadas antes de eliminar
- Seguridad primero: Prefiere fallar antes que comprometer la integridad de datos
Relacionado¶
- Crear Curso Escolar -
POST /api/v2/school-courses GET /api/school-courses/all- Listar todos los cursos (v1)