-- ============================================================
-- 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';
