-- Migration v50: Módulo de Enfermagem
-- Evoluções de enfermagem e sinais vitais por internação

-- ======================================================
-- EVOLUÇÕES DE ENFERMAGEM
-- ======================================================
CREATE TABLE IF NOT EXISTS enfermagem_evolucoes (
    id              INT AUTO_INCREMENT PRIMARY KEY,
    clinica_id      INT NOT NULL DEFAULT 1,
    internacao_id   INT NOT NULL,
    tipo            ENUM('evolucao','procedimento','ocorrencia') NOT NULL DEFAULT 'evolucao',
    descricao       TEXT NOT NULL,
    usuario_id      INT NOT NULL,
    data_hora       DATETIME DEFAULT CURRENT_TIMESTAMP,
    deleted_at      DATETIME DEFAULT NULL,
    FOREIGN KEY (internacao_id) REFERENCES hospital_internacoes(id) ON DELETE RESTRICT,
    INDEX idx_clinica    (clinica_id),
    INDEX idx_internacao (internacao_id),
    INDEX idx_data       (data_hora),
    INDEX idx_tipo       (tipo),
    INDEX idx_deleted    (deleted_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ======================================================
-- SINAIS VITAIS
-- ======================================================
CREATE TABLE IF NOT EXISTS enfermagem_sinais_vitais (
    id                      INT AUTO_INCREMENT PRIMARY KEY,
    clinica_id              INT NOT NULL DEFAULT 1,
    internacao_id           INT NOT NULL,
    pressao_sistolica       SMALLINT UNSIGNED DEFAULT NULL COMMENT 'mmHg',
    pressao_diastolica      SMALLINT UNSIGNED DEFAULT NULL COMMENT 'mmHg',
    frequencia_cardiaca     SMALLINT UNSIGNED DEFAULT NULL COMMENT 'bpm',
    frequencia_respiratoria SMALLINT UNSIGNED DEFAULT NULL COMMENT 'irpm',
    temperatura             DECIMAL(4,1) DEFAULT NULL   COMMENT 'graus Celsius',
    saturacao               TINYINT UNSIGNED DEFAULT NULL COMMENT '%',
    glicemia                SMALLINT UNSIGNED DEFAULT NULL COMMENT 'mg/dL',
    peso                    DECIMAL(5,2) DEFAULT NULL   COMMENT 'kg',
    observacao              TEXT DEFAULT NULL,
    usuario_id              INT NOT NULL,
    data_hora               DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (internacao_id) REFERENCES hospital_internacoes(id) ON DELETE RESTRICT,
    INDEX idx_clinica    (clinica_id),
    INDEX idx_internacao (internacao_id),
    INDEX idx_data       (data_hora)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ======================================================
-- PERMISSÕES
-- ======================================================
-- enfermagem_view       = Ver evoluções e sinais vitais da internação
-- enfermagem_registrar  = Registrar evolução, procedimento, ocorrência e sinais vitais
-- enfermagem_deletar    = Excluir registros de enfermagem (soft delete)
