-- SIGMA-COE — Plan de Rollback (FASE 17 → FASE 1)
-- Ejecutar SOLO si se necesita revertir completamente el esquema
-- ATENCIÓN: Esto ELIMINA TODOS LOS DATOS Y TABLAS

SET FOREIGN_KEY_CHECKS = 0;

-- ============================================================
-- FASE 17 — Administración del Sistema
-- ============================================================
DROP TABLE IF EXISTS admin_sesiones;
DROP TABLE IF EXISTS admin_logs;
DROP TABLE IF EXISTS admin_sistema;
DROP TABLE IF EXISTS admin_versiones;
DROP TABLE IF EXISTS admin_documentos_relaciones;
DROP TABLE IF EXISTS admin_documentos;

-- ============================================================
-- FASE 16 — Analítica y BI
-- ============================================================
DROP TABLE IF EXISTS bi_kpi_configuracion;
DROP TABLE IF EXISTS bi_reportes_guardados;

-- ============================================================
-- FASE 15 — Centro de Monitoreo
-- ============================================================
DROP TABLE IF EXISTS centro_sala_eventos;
DROP TABLE IF EXISTS centro_notificaciones;
DROP TABLE IF EXISTS centro_alarmas;
DROP TABLE IF EXISTS centro_paneles;

-- ============================================================
-- FASE 14 — Hardening y Producción
-- ============================================================
DROP TABLE IF EXISTS auditoria_seguridad;
DROP TABLE IF EXISTS rate_limits_logs;
DROP TABLE IF EXISTS usuarios_password;
DROP TABLE IF EXISTS auth_refresh_tokens;

-- ============================================================
-- FASE 13 — PWA y Offline
-- ============================================================
DROP TABLE IF EXISTS pwa_sync_logs;
DROP TABLE IF EXISTS pwa_sync_queue;
DROP TABLE IF EXISTS pwa_dispositivos;

-- ============================================================
-- FASE 12 — Comunicaciones
-- ============================================================
DROP TABLE IF EXISTS comunicaciones_adjuntos;
DROP TABLE IF EXISTS comunicaciones_destinatarios;
DROP TABLE IF EXISTS comunicaciones_plantillas;
DROP TABLE IF EXISTS comunicaciones;

-- ============================================================
-- FASE 11 — Integraciones
-- ============================================================
DROP TABLE IF EXISTS integraciones_payloads;
DROP TABLE IF EXISTS integraciones_cola;
DROP TABLE IF EXISTS integraciones_logs;
DROP TABLE IF EXISTS integraciones_configuracion;
DROP TABLE IF EXISTS integraciones_sistemas;

-- ============================================================
-- FASE 10 — Sala Situacional
-- ============================================================
DROP TABLE IF EXISTS sala_reportes_guardados;

-- ============================================================
-- FASE 9 — Requerimientos EVIN ↔ CABINA
-- ============================================================
DROP TABLE IF EXISTS requerimientos_evidencias;
DROP TABLE IF EXISTS requerimientos_respuestas;
DROP TABLE IF EXISTS requerimientos_evin_cabina;

-- ============================================================
-- FASE 8 — Ayuda Humanitaria
-- ============================================================
DROP TABLE IF EXISTS ayuda_evidencias;
DROP TABLE IF EXISTS ayuda_entregas;
DROP TABLE IF EXISTS ayuda_items;
DROP TABLE IF EXISTS ayuda_beneficiarios;
DROP TABLE IF EXISTS ayuda_solicitudes;

-- ============================================================
-- FASE 7 — EVIN Familiar
-- ============================================================
DROP TABLE IF EXISTS evin_familiar_evidencias;
DROP TABLE IF EXISTS evin_familiar_necesidades;
DROP TABLE IF EXISTS evin_familiar_integrantes;
DROP TABLE IF EXISTS evin_familiar;

-- ============================================================
-- FASE 6 — EVAD
-- ============================================================
DROP TABLE IF EXISTS evad_evidencias;
DROP TABLE IF EXISTS evad_necesidades;
DROP TABLE IF EXISTS evad_afectaciones;
DROP TABLE IF EXISTS evad_danios;
DROP TABLE IF EXISTS evad_evaluaciones;

-- ============================================================
-- FASE 5 — EVIN
-- ============================================================
DROP TABLE IF EXISTS evin_recursos;
DROP TABLE IF EXISTS evin_evaluaciones;
DROP TABLE IF EXISTS evin_ubicaciones;
DROP TABLE IF EXISTS evin_asignaciones;

-- ============================================================
-- FASE 4 — Evento Macro
-- ============================================================
DROP TABLE IF EXISTS macro_evento_instituciones;
DROP TABLE IF EXISTS macro_evento_zonales;
DROP TABLE IF EXISTS macro_evento_responsables;
DROP TABLE IF EXISTS macro_evento_fichas;
DROP TABLE IF EXISTS macro_eventos;

-- ============================================================
-- FASE 3 — Cabina Operativa
-- ============================================================
DROP TABLE IF EXISTS cabina_activaciones_zonales;
DROP TABLE IF EXISTS cabina_tiempos;
DROP TABLE IF EXISTS cabina_coordinaciones;
DROP TABLE IF EXISTS cabina_despachos;

-- ============================================================
-- FASE 2 — Ficha Única y Eventos
-- ============================================================
DROP TABLE IF EXISTS ficha_evidencias;
DROP TABLE IF EXISTS ficha_historial_cambios;
DROP TABLE IF EXISTS ficha_linea_tiempo;
DROP TABLE IF EXISTS fichas;
DROP TABLE IF EXISTS ficha_subtipos_evento;
DROP TABLE IF EXISTS ficha_tipos_evento;
DROP TABLE IF EXISTS ficha_estados;
DROP TABLE IF EXISTS ficha_prioridades;

-- ============================================================
-- FASE 1B — Territorial
-- ============================================================
DROP TABLE IF EXISTS grupos_notificacion;
DROP TABLE IF EXISTS plantillas;
DROP TABLE IF EXISTS configuracion_modulos;
DROP TABLE IF EXISTS usuarios_territorio;
DROP TABLE IF EXISTS barrios;
DROP TABLE IF EXISTS parroquias;
DROP TABLE IF EXISTS administraciones_zonales;

-- ============================================================
-- FASE 1A — Núcleo Central
-- ============================================================
DROP TABLE IF EXISTS rate_limits;
DROP TABLE IF EXISTS app_versions;
DROP TABLE IF EXISTS usuarios_seguridad;
DROP TABLE IF EXISTS auditoria_logs;
DROP TABLE IF EXISTS intentos_login;
DROP TABLE IF EXISTS sesiones;
DROP TABLE IF EXISTS configuracion_sistema;
DROP TABLE IF EXISTS parametros;
DROP TABLE IF EXISTS roles_permisos;
DROP TABLE IF EXISTS usuarios_modulos;
DROP TABLE IF EXISTS usuarios_roles;
DROP TABLE IF EXISTS modulos;
DROP TABLE IF EXISTS permisos;
DROP TABLE IF EXISTS roles;
DROP TABLE IF EXISTS usuarios;
DROP TABLE IF EXISTS instituciones;

SET FOREIGN_KEY_CHECKS = 1;

-- Verificación post-rollback
SELECT 'Rollback completado. Verificar que no queden tablas:' AS '';
SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'sigma_coe_db';
