-- Migration v63: Prescrição Médica Hospitalar
-- Prescrições vinculadas às internações (distintas do prontuário ambulatorial)

CREATE TABLE IF NOT EXISTS hospital_prescricoes (
    id               INT AUTO_INCREMENT PRIMARY KEY,
    clinica_id       INT NOT NULL,
    internacao_id    INT NOT NULL,
    paciente_id      INT NOT NULL,
    medico_id        INT NULL,
    data_prescricao  DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    status           ENUM('ativa','suspensa','concluida') NOT NULL DEFAULT 'ativa',
    observacao       TEXT NULL,
    usuario_id       INT NULL,
    deleted_at       DATETIME NULL,
    created_at       DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at       DATETIME NULL ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (paciente_id)   REFERENCES pacientes(id) ON DELETE RESTRICT,
    FOREIGN KEY (internacao_id) REFERENCES hospital_internacoes(id) ON DELETE RESTRICT,
    INDEX idx_internacao  (internacao_id),
    INDEX idx_paciente    (paciente_id),
    INDEX idx_clinica     (clinica_id),
    INDEX idx_status      (status),
    INDEX idx_deleted     (deleted_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS hospital_prescricao_itens (
    id             INT AUTO_INCREMENT PRIMARY KEY,
    prescricao_id  INT NOT NULL,
    tipo           ENUM('medicamento','dieta','procedimento','cuidado','outros') NOT NULL DEFAULT 'medicamento',
    descricao      VARCHAR(255) NOT NULL,
    dose           VARCHAR(100) NULL,
    via            VARCHAR(100) NULL  COMMENT 'Via de administração: oral, IV, IM, etc.',
    frequencia     VARCHAR(100) NULL  COMMENT 'Ex: 8/8h, 12/12h, 1x/dia',
    duracao_dias   SMALLINT UNSIGNED NULL,
    quantidade     DECIMAL(8,2) NULL,
    observacao     TEXT NULL,
    status         ENUM('ativo','suspenso') NOT NULL DEFAULT 'ativo',
    deleted_at     DATETIME NULL,
    created_at     DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (prescricao_id) REFERENCES hospital_prescricoes(id) ON DELETE CASCADE,
    INDEX idx_prescricao (prescricao_id),
    INDEX idx_status     (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
