-- ============================================================
-- Migration: 20260302_lab_06_autorizaciones
-- Módulo Administrativo: Log de cambios de estado de órdenes
-- Cada cambio de estado genera un registro aquí (trazabilidad)
-- ============================================================

CREATE TABLE IF NOT EXISTS `lab_autorizaciones` (
    `id`                INT(11)         NOT NULL AUTO_INCREMENT,
    `orden_id`          INT(11)         NOT NULL                COMMENT 'FK a lab_ordenes_medicas.id',
    `accion`            ENUM(
                            'creada',
                            'en_revision',
                            'autorizada',
                            'rechazada',
                            'en_domicilio',
                            'completada',
                            'editada'
                        ) NOT NULL,
    `estado_anterior`   VARCHAR(50)     DEFAULT NULL,
    `estado_nuevo`      VARCHAR(50)     DEFAULT NULL,
    `realizada_por`     INT(11)         DEFAULT NULL            COMMENT 'FK a admin_users.id',
    `comentario`        TEXT            DEFAULT NULL,
    `created_at`        TIMESTAMP       NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    KEY `idx_aut_orden`         (`orden_id`),
    KEY `idx_aut_admin`         (`realizada_por`),
    KEY `idx_aut_accion`        (`accion`),
    KEY `idx_aut_fecha`         (`created_at`),
    CONSTRAINT `fk_aut_orden`   FOREIGN KEY (`orden_id`)
        REFERENCES `lab_ordenes_medicas` (`id`) ON DELETE CASCADE,
    CONSTRAINT `fk_aut_admin`   FOREIGN KEY (`realizada_por`)
        REFERENCES `admin_users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='Historial de cambios de estado de órdenes médicas';
