-- ============================================================ -- Migration: 20260302_lab_08_roles_enfermeros -- Módulo Laboratorio: Rol enfermero + servicios extra -- ============================================================ -- 1. Agregar columnas role y enfermera_id a admin_users ALTER TABLE `admin_users` ADD COLUMN IF NOT EXISTS `role` ENUM('admin','enfermero') NOT NULL DEFAULT 'admin' COMMENT 'Rol del usuario: admin = acceso total, enfermero = solo portal propio', ADD COLUMN IF NOT EXISTS `enfermera_id` INT(11) NULL DEFAULT NULL COMMENT 'Vincula el usuario con su registro en lab_enfermeras'; -- Índice para lookups rápidos por rol ALTER TABLE `admin_users` ADD INDEX IF NOT EXISTS `idx_role` (`role`), ADD INDEX IF NOT EXISTS `idx_enf_id` (`enfermera_id`); -- 2. Tabla de servicios extra (sin orden médica) -- El enfermero puede agregar servicios adicionales durante la visita CREATE TABLE IF NOT EXISTS `lab_servicios_extra` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `domicilio_id` INT(11) NOT NULL, `descripcion` VARCHAR(255) NOT NULL COMMENT 'Ej: Inyección, Cura, Nebulización', `tipo` ENUM( 'inyeccion', 'cura', 'nebulizacion', 'toma_muestra', 'tension_arterial', 'glucometria', 'otro' ) NOT NULL DEFAULT 'otro', `notas` TEXT DEFAULT NULL, `requiere_pago` TINYINT(1) NOT NULL DEFAULT 0, `valor` DECIMAL(10,2) DEFAULT NULL, `realizado_por` INT(11) DEFAULT NULL COMMENT 'ID de lab_enfermeras', `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `idx_se_domicilio` (`domicilio_id`), KEY `idx_se_enfermera` (`realizado_por`), CONSTRAINT `fk_se_domicilio` FOREIGN KEY (`domicilio_id`) REFERENCES `lab_domicilios` (`id`) ON DELETE CASCADE, CONSTRAINT `fk_se_enfermera` FOREIGN KEY (`realizado_por`) REFERENCES `lab_enfermeras` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Servicios adicionales agregados por enfermeros durante visitas';