-- ============================================================
-- Migración 004 – SYSTEM_MODULES dinámica
-- Convierte el array hardcodeado en config.php a tabla de BD.
-- FASE 2 del plan ERP multi-módulo.
-- Segura para re-ejecutar (IF NOT EXISTS + INSERT IGNORE).
-- ============================================================

CREATE TABLE IF NOT EXISTS system_modules (
    slug         VARCHAR(100)  NOT NULL,
    name         VARCHAR(150)  NOT NULL,
    icon         VARCHAR(80)   NOT NULL DEFAULT 'fas fa-cube',
    category     VARCHAR(50)   NOT NULL DEFAULT 'sistema',
    route        VARCHAR(300)  DEFAULT NULL       COMMENT 'URL principal del módulo (legacy o nueva)',
    is_active    TINYINT(1)    NOT NULL DEFAULT 1 COMMENT '0=desactivado, 1=activo',
    sort_order   INT           NOT NULL DEFAULT 99,
    oleada       TINYINT       NOT NULL DEFAULT 0  COMMENT '0=existente, 1=oleada1, 2=oleada2',
    description  TEXT          DEFAULT NULL,
    created_at   TIMESTAMP     DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (slug),
    INDEX idx_category  (category),
    INDEX idx_is_active (is_active),
    INDEX idx_sort      (sort_order)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ── Bot ──────────────────────────────────────────────────────────────────────
INSERT IGNORE INTO system_modules (slug, name, icon, category, route, is_active, sort_order, oleada, description) VALUES
('whatsapp',          'WhatsApp Bot',       'fab fa-whatsapp',      'bot',      '/index.php',            1,  1, 0, 'Bot, conversaciones, plantillas y menús de WhatsApp');

-- ── Laboratorio (Oleada 0) ───────────────────────────────────────────────────
INSERT IGNORE INTO system_modules (slug, name, icon, category, route, is_active, sort_order, oleada, description) VALUES
('lab_dashboard',     'Dashboard Lab',      'fas fa-tachometer-alt','lab',      '/lab_dashboard.php',    1, 10, 0, 'Panel principal del módulo de laboratorio'),
('lab_domicilios',    'Domicilios',         'fas fa-house-medical', 'lab',      '/lab_domicilios.php',   1, 20, 0, 'Agenda y gestión de servicios a domicilio'),
('lab_pacientes',     'Pacientes',          'fas fa-users',         'lab',      '/lab_pacientes.php',    1, 21, 0, 'Fichas clínicas e historial de pacientes'),
('lab_enfermeras',    'Enfermeros',         'fas fa-user-nurse',    'lab',      '/lab_enfermeras.php',   1, 22, 0, 'Gestión de personal clínico y enfermeros'),
('lab_ordenes',       'Órdenes Médicas',    'fas fa-file-medical',  'lab',      '/lab_ordenes.php',      1, 23, 0, 'Gestión de órdenes médicas con PDF y autorización'),
('lab_formularios',   'Formularios',        'fas fa-wpforms',       'lab',      '/lab_formularios.php',  1, 24, 0, 'Builder de formularios drag-drop con firma digital');

-- ── Reportes ─────────────────────────────────────────────────────────────────
INSERT IGNORE INTO system_modules (slug, name, icon, category, route, is_active, sort_order, oleada, description) VALUES
('lab_reportes',      'Reportes',           'fas fa-chart-bar',     'reportes', '/lab_reportes.php',     1, 50, 0, 'Reportes de ingresos, rendimiento y pagos');

-- ── Sistema ───────────────────────────────────────────────────────────────────
INSERT IGNORE INTO system_modules (slug, name, icon, category, route, is_active, sort_order, oleada, description) VALUES
('usuarios',          'Usuarios & Roles',   'fas fa-users-cog',     'sistema',  '/lab_usuarios.php',     1, 80, 0, 'Gestión de usuarios del sistema y roles'),
('lab_configuracion', 'Configuración Lab',  'fas fa-sliders-h',     'sistema',  '/lab_configuracion.php',1, 81, 0, 'Tarifas, laboratorio y ajustes del sistema'),
('enfermero_portal',  'Portal Enfermero',   'fas fa-stethoscope',   'sistema',  '/enfermero_portal.php', 1, 90, 0, 'Portal exclusivo para el personal de enfermería');

-- ── Oleada 1 — Turnero ───────────────────────────────────────────────────────
INSERT IGNORE INTO system_modules (slug, name, icon, category, route, is_active, sort_order, oleada, description) VALUES
('turnero',           'Turnero',            'fas fa-ticket-alt',    'turnero',  '/erp.php?m=turnero&v=dashboard', 0, 40, 1, 'Sistema de turnos presenciales en recepción');

-- ── Oleada 2 — Pendientes ────────────────────────────────────────────────────
INSERT IGNORE INTO system_modules (slug, name, icon, category, route, is_active, sort_order, oleada, description) VALUES
('registro_exams',    'Registro Exámenes',  'fas fa-vials',         'clinico',  '/erp.php?m=registro_exams&v=lista', 0, 60, 2, 'Registro de exámenes de laboratorio en sede'),
('facturacion',       'Facturación',        'fas fa-file-invoice',  'clinico',  NULL,                    0, 61, 2, 'Facturación electrónica DIAN'),
('inventario',        'Inventario',         'fas fa-boxes',         'clinico',  NULL,                    0, 62, 2, 'Reactivos, insumos y stock mínimo'),
('citas',             'Citas',              'fas fa-calendar-alt',  'clinico',  NULL,                    0, 63, 2, 'Agenda de citas con calendario visual'),
('resultados',        'Resultados',         'fas fa-file-waveform', 'clinico',  NULL,                    0, 64, 2, 'Entrega digital de resultados al paciente');
