59 lines
5.8 KiB
SQL
59 lines
5.8 KiB
SQL
-- ============================================================
|
||
-- 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');
|