-- Migration v49: Farmácia Hospitalar
-- Módulo: farmacia

-- ======================================================
-- DISPENSAÇÕES
-- ======================================================
CREATE TABLE IF NOT EXISTS farmacia_dispensacoes (
    id                  INT AUTO_INCREMENT PRIMARY KEY,
    clinica_id          INT NOT NULL DEFAULT 1,
    internacao_id       INT NOT NULL,
    paciente_id         INT NOT NULL,
    almoxarifado_id     INT NOT NULL,
    produto_id          INT NOT NULL,
    lote                VARCHAR(50) DEFAULT NULL,
    quantidade          DECIMAL(12,4) NOT NULL,
    valor_unitario      DECIMAL(10,2) DEFAULT 0,
    tipo                ENUM('dispensacao','devolucao') DEFAULT 'dispensacao',
    controlado          TINYINT(1) DEFAULT 0,
    prescricao_info     TEXT DEFAULT NULL,
    observacao          TEXT DEFAULT NULL,
    movimentacao_id     INT DEFAULT NULL,
    usuario_id          INT NOT NULL,
    data_hora           DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (internacao_id)   REFERENCES hospital_internacoes(id) ON DELETE RESTRICT,
    FOREIGN KEY (produto_id)      REFERENCES estoque_produtos(id)     ON DELETE RESTRICT,
    INDEX idx_clinica    (clinica_id),
    INDEX idx_internacao (internacao_id),
    INDEX idx_paciente   (paciente_id),
    INDEX idx_data       (data_hora),
    INDEX idx_controlado (controlado)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ======================================================
-- PERMISSÕES
-- ======================================================
-- farmacia_view       = Ver dispensações e kardex
-- farmacia_dispensar  = Realizar dispensação
-- farmacia_devolver   = Realizar devolução
-- farmacia_controlados = Ver relatório de psicotrópicos/controlados
