-- ============================================================
--  RESET DE ALUMNOS Y DATOS RELACIONADOS (solo para pruebas)
--  ADVERTENCIA: elimina PERMANENTEMENTE todos los datos.
--  Compatible con hosting compartido (sin CREATE PROCEDURE).
-- ============================================================

SET FOREIGN_KEY_CHECKS = 0;

-- Macro inline: si la tabla existe → DELETE, si no → DO 0 (no-op)
-- Patrón: SET @s = (...IF...); PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

-- 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. 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;

-- 3. Preguntas y foros
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;

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;

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

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

-- 5. Inscripcion 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;

-- 6. Usuarios vinculados a alumnos
DELETE FROM users WHERE alumno_id IS NOT NULL;

-- 7. Alumnos
SET @s=(SELECT IF(COUNT(*)>0,'DELETE FROM `alumnos`','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='alumnos');
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 `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 `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 `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 `pago_alumno` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='pago_alumno');
PREPARE _s FROM @s; EXECUTE _s; DEALLOCATE PREPARE _s;

SET @s=(SELECT IF(COUNT(*)>0,'ALTER TABLE `pagos` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='pagos');
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 `alumnos` AUTO_INCREMENT=1','DO 0') FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='alumnos');
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 (
    'alumnos','curso_alumno','evaluaciones_alumno',
    'curso_asistencia','asistencias',
    'pago_alumno','pagos',
    'foros','foro_respuestas','pregunta_alumno'
  )
ORDER BY TABLE_NAME;
