-- Migration v100: PACS Modalidades — colunas complementares para gestão de equipamentos DICOM
--
-- Contexto: migration_v99_orthanc_pacs.sql criou pacs_modalidades com estrutura básica
-- (campos: nome, aetitle, ip, porta, tipo, status, created_at, updated_at).
-- Esta migration adiciona os campos necessários para:
--   - Alias único na API REST do Orthanc (orthanc_alias)
--   - Código DICOM da modalidade separado (CT, MR, CR...) do código interno
--   - Observações livres
--   - Soft delete (deleted_at)
--   - Vínculo de solicitação a equipamento específico em pacs_laudos

SET NAMES utf8mb4;

-- ─────────────────────────────────────────────────────────────────────────────
-- 1. Completar pacs_modalidades
-- ─────────────────────────────────────────────────────────────────────────────
ALTER TABLE `pacs_modalidades`
    ADD COLUMN IF NOT EXISTS `modalidade_dicom` VARCHAR(8)  NOT NULL DEFAULT 'OT'
        COMMENT 'Código DICOM: CT | MR | CR | DX | US | MG | NM | OT' AFTER `porta`,
    ADD COLUMN IF NOT EXISTS `orthanc_alias`    VARCHAR(64) NULL
        COMMENT 'Chave única na API REST Orthanc — sem espaços' AFTER `modalidade_dicom`,
    ADD COLUMN IF NOT EXISTS `observacoes`      TEXT        NULL AFTER `orthanc_alias`,
    ADD COLUMN IF NOT EXISTS `deleted_at`       DATETIME    NULL AFTER `updated_at`;

-- Popula orthanc_alias para registros já existentes
UPDATE `pacs_modalidades`
    SET `orthanc_alias` = CONCAT(UPPER(REPLACE(`aetitle`, ' ', '_')), '_', `id`)
    WHERE `orthanc_alias` IS NULL OR `orthanc_alias` = '';

ALTER TABLE `pacs_modalidades`
    ADD UNIQUE KEY IF NOT EXISTS `uq_orthanc_alias` (`orthanc_alias`);

-- ─────────────────────────────────────────────────────────────────────────────
-- 2. Vincular solicitação a equipamento específico em pacs_laudos
-- ─────────────────────────────────────────────────────────────────────────────
ALTER TABLE `pacs_laudos`
    ADD COLUMN IF NOT EXISTS `modalidade_destino_id` INT         NULL
        COMMENT 'FK → pacs_modalidades.id' AFTER `modalidade`,
    ADD COLUMN IF NOT EXISTS `equipamento_aetitle`   VARCHAR(64) NULL
        COMMENT 'AE Title do equipamento destino (snapshot no momento da solicitação)' AFTER `modalidade_destino_id`;

SELECT 'Migration v100 aplicada com sucesso.' AS resultado;
