-- ============================================================
--  RESET DE UNIDADES DIDACTICAS Y DATOS RELACIONADOS
--  Solo para pruebas. No toca: alumnos, docentes, carreras.
--  Compatible con hosting compartido (sin CREATE PROCEDURE).
-- ============================================================

SET FOREIGN_KEY_CHECKS = 0;

-- 1. Notas de alumnos
SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `evaluaciones_alumno`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='evaluaciones_alumno');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

-- 2. Evaluaciones y grupos
SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `evaluaciones`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='evaluaciones');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `grupo_de_evaluaciones`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='grupo_de_evaluaciones');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

-- 3. Asistencias
SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `asistencias`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='asistencias');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `curso_asistencia`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='curso_asistencia');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

-- 4. Clases y horarios
SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `clases_programadas`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='clases_programadas');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `horarios_unidad_didactica`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='horarios_unidad_didactica');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `curso_horario`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='curso_horario');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

-- 5. Syllabus adjuntos
SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `syllabus_archivos`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='syllabus_archivos');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

-- 6. Foros y preguntas
SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `foro_respuestas`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='foro_respuestas');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `foros`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='foros');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `pregunta_alumno`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='pregunta_alumno');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

-- 7. Docentes asignados
SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `curso_docente`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='curso_docente');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

-- 8. Inscripciones alumno <-> curso
SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `curso_alumno`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='curso_alumno');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

-- 9. Unidades didacticas
SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `cursos`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='cursos');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

-- ── Reiniciar auto-increment ──────────────────────────────
SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `evaluaciones_alumno` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='evaluaciones_alumno');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `evaluaciones` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='evaluaciones');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `grupo_de_evaluaciones` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='grupo_de_evaluaciones');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `asistencias` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='asistencias');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `curso_asistencia` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='curso_asistencia');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `clases_programadas` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='clases_programadas');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `horarios_unidad_didactica` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='horarios_unidad_didactica');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `curso_horario` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='curso_horario');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `syllabus_archivos` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='syllabus_archivos');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `foro_respuestas` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='foro_respuestas');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `foros` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='foros');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `pregunta_alumno` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='pregunta_alumno');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `curso_docente` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='curso_docente');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `curso_alumno` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='curso_alumno');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `cursos` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='cursos');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET FOREIGN_KEY_CHECKS = 1;

-- ── Verificacion final ────────────────────────────────────
SELECT TABLE_NAME AS tabla, TABLE_ROWS AS filas_aprox
FROM information_schema.tables
WHERE table_schema = DATABASE()
  AND table_name IN (
    'cursos','curso_alumno','curso_docente',
    'grupo_de_evaluaciones','evaluaciones','evaluaciones_alumno',
    'curso_asistencia','asistencias',
    'horarios_unidad_didactica','clases_programadas','curso_horario',
    'syllabus_archivos','foros','foro_respuestas','pregunta_alumno'
  )
ORDER BY TABLE_NAME;
