-- Migration v57: Módulo Nutrição / Dietética
-- Dietas prescritas para pacientes internados

CREATE TABLE IF NOT EXISTS nutricao_dietas (
    id INT AUTO_INCREMENT PRIMARY KEY,
    clinica_id INT NOT NULL DEFAULT 1,
    internacao_id INT NOT NULL,
    paciente_id INT NOT NULL,
    medico_id INT DEFAULT NULL,
    nutricionista_id INT DEFAULT NULL,
    tipo_dieta ENUM('normal','branda','pastosa','liquida','liquida_restrita','zero','parenteral_total','parenteral_parcial','enteral','especial') NOT NULL DEFAULT 'normal',
    via_administracao ENUM('oral','sng','sne','snj','gastrostomia','jejunostomia','parenteral_central','parenteral_periferica') NOT NULL DEFAULT 'oral',
    restricoes TEXT DEFAULT NULL,
    complementos TEXT DEFAULT NULL,
    kcal_dia DECIMAL(8,2) DEFAULT NULL,
    proteinas_g DECIMAL(8,2) DEFAULT NULL,
    observacoes TEXT DEFAULT NULL,
    status ENUM('ativa','suspensa','alterada','encerrada') NOT NULL DEFAULT 'ativa',
    motivo_suspensao VARCHAR(255) DEFAULT NULL,
    data_inicio DATE NOT NULL,
    data_fim DATE DEFAULT NULL,
    usuario_id INT NOT NULL DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    deleted_at DATETIME DEFAULT NULL,
    FOREIGN KEY (internacao_id) REFERENCES hospital_internacoes(id) ON DELETE CASCADE,
    FOREIGN KEY (paciente_id)   REFERENCES pacientes(id) ON DELETE RESTRICT,
    INDEX idx_nutricao_clinica (clinica_id),
    INDEX idx_nutricao_internacao (internacao_id),
    INDEX idx_nutricao_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Avaliações nutricionais
CREATE TABLE IF NOT EXISTS nutricao_avaliacoes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    clinica_id INT NOT NULL DEFAULT 1,
    internacao_id INT NOT NULL,
    paciente_id INT NOT NULL,
    nutricionista_id INT DEFAULT NULL,
    peso_kg DECIMAL(5,2) DEFAULT NULL,
    altura_cm DECIMAL(5,2) DEFAULT NULL,
    imc DECIMAL(5,2) DEFAULT NULL,
    circunferencia_braco DECIMAL(5,2) DEFAULT NULL,
    dobra_triciptal DECIMAL(5,2) DEFAULT NULL,
    estado_nutricional ENUM('eutrofico','desnutricao_leve','desnutricao_moderada','desnutricao_grave','sobrepeso','obesidade_grau1','obesidade_grau2','obesidade_grau3') DEFAULT NULL,
    risco_nutricional ENUM('sem_risco','baixo','moderado','alto') DEFAULT 'sem_risco',
    anamnese TEXT DEFAULT NULL,
    conduta TEXT DEFAULT NULL,
    data_avaliacao DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    usuario_id INT NOT NULL DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (internacao_id) REFERENCES hospital_internacoes(id) ON DELETE CASCADE,
    FOREIGN KEY (paciente_id)   REFERENCES pacientes(id) ON DELETE RESTRICT,
    INDEX idx_aval_clinica (clinica_id),
    INDEX idx_aval_internacao (internacao_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Permissões
INSERT IGNORE INTO permissoes (nome, chave, descricao) VALUES
('Visualizar Nutrição',        'nutricao_view',    'Visualizar módulo de Nutrição'),
('Criar Dietas/Avaliações',    'nutricao_create',  'Criar dietas e avaliações nutricionais'),
('Editar Dietas/Avaliações',   'nutricao_edit',    'Editar dietas e avaliações nutricionais'),
('Excluir Dietas',             'nutricao_delete',  'Excluir dietas nutricionais'),
('Avaliação Nutricional',      'nutricao_avaliar', 'Realizar avaliação nutricional');
