Files
whatsapp/migrations/004_system_modules.sql
T
2026-04-16 22:23:33 -05:00

59 lines
5.8 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- ============================================================
-- 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');