-- ============================================
-- SCRIPT SQL: LIMPIAR DATOS DE PRUEBA (FINAL)
-- Sistema: HC MEDICA
-- Fecha: 2026-01-07
-- ============================================
-- ADVERTENCIA: Este script eliminará TODOS los datos de prueba
-- Ejecutar con precaución en ambiente de producción
-- ============================================

-- Deshabilitar verificación de claves foráneas temporalmente
SET FOREIGN_KEY_CHECKS = 0;

-- ============================================
-- 1. LIMPIAR SOLICITUDES DE EXAMEN
-- ============================================
TRUNCATE TABLE `solicitud_examen`;
SELECT 'Tabla solicitud_examen limpiada' AS Resultado;

-- ============================================
-- 2. LIMPIAR CERTIFICADOS MÉDICOS GENERADOS
-- ============================================
TRUNCATE TABLE `documento_medico`;
SELECT 'Tabla documento_medico limpiada' AS Resultado;

-- ============================================
-- 3. LIMPIAR RECETAS MÉDICAS
-- ============================================
TRUNCATE TABLE `receta`;
SELECT 'Tabla receta limpiada' AS Resultado;

-- ============================================
-- 4. LIMPIAR HISTORIAS CLÍNICAS / ATENCIONES COMPLETA
-- ============================================
-- Limpiar diagnósticos detallados
TRUNCATE TABLE `detalle_diagnostico`;
SELECT 'Tabla detalle_diagnostico limpiada' AS Resultado;

-- Limpiar resultados de consulta (evolución)
TRUNCATE TABLE `resultado`;
SELECT 'Tabla resultado limpiada' AS Resultado;

-- Limpiar datos de triaje
TRUNCATE TABLE `triaje`;
SELECT 'Tabla triaje limpiada' AS Resultado;

-- Limpiar imágenes adjuntas
TRUNCATE TABLE `imagenes`;
SELECT 'Tabla imagenes limpiada' AS Resultado;

-- Finalmente limpiar atenciones principales
TRUNCATE TABLE `atencion`;
SELECT 'Tabla atencion limpiada' AS Resultado;

-- ============================================
-- 5. LIMPIAR CITAS/AGENDA
-- ============================================
-- Si existe la tabla agenda_local
TRUNCATE TABLE `agenda_local`;
SELECT 'Tabla agenda_local limpiada' AS Resultado;

-- ============================================
-- 6. LIMPIAR PACIENTES DE PRUEBA
-- ============================================
-- IMPORTANTE: Esto eliminará TODOS los pacientes que no sean usuarios del sistema
DELETE FROM `persona` WHERE `idpersona` NOT IN (SELECT `idusuario` FROM `usuario`);
SELECT CONCAT('Pacientes eliminados: ', ROW_COUNT()) AS Resultado;

-- ============================================
-- 7. RESETEAR AUTO_INCREMENT
-- ============================================
ALTER TABLE `solicitud_examen` AUTO_INCREMENT = 1;
ALTER TABLE `documento_medico` AUTO_INCREMENT = 1;
ALTER TABLE `receta` AUTO_INCREMENT = 1;
ALTER TABLE `detalle_diagnostico` AUTO_INCREMENT = 1;
ALTER TABLE `resultado` AUTO_INCREMENT = 1;
ALTER TABLE `triaje` AUTO_INCREMENT = 1;
ALTER TABLE `imagenes` AUTO_INCREMENT = 1;
ALTER TABLE `atencion` AUTO_INCREMENT = 1;
ALTER TABLE `agenda_local` AUTO_INCREMENT = 1;
ALTER TABLE `persona` AUTO_INCREMENT = 1;

SELECT 'Auto-increments reseteados' AS Resultado;

-- ============================================
-- 8. REACTIVAR VERIFICACIÓN DE CLAVES FORÁNEAS
-- ============================================
SET FOREIGN_KEY_CHECKS = 1;

-- ============================================
-- RESUMEN FINAL
-- ============================================
SELECT '======================================' AS '';
SELECT 'LIMPIEZA COMPLETADA EXITOSAMENTE' AS Resultado;
SELECT '======================================' AS '';
