-- Migration v67: Controle de Visitas
-- Registro de visitantes por internação

SET NAMES utf8mb4;

CREATE TABLE IF NOT EXISTS hospital_visitas (
    id            INT AUTO_INCREMENT PRIMARY KEY,
    clinica_id    INT NOT NULL DEFAULT 1,
    internacao_id INT NOT NULL,
    paciente_id   INT NOT NULL,
    visitante_nome     VARCHAR(150) NOT NULL,
    visitante_documento VARCHAR(20)  NULL,
    parentesco    VARCHAR(60)  NULL,
    data_entrada  DATETIME NOT NULL,
    data_saida    DATETIME NULL,
    observacao    TEXT NULL,
    usuario_id    INT NULL,
    created_at    DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_visitas_clinica    (clinica_id),
    INDEX idx_visitas_internacao (internacao_id),
    INDEX idx_visitas_data       (data_entrada)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT IGNORE INTO permissoes (nome, chave, descricao) VALUES
('Visualizar Visitas',  'visitas_view',   'Visualizar registro de visitas hospitalares'),
('Registrar Visita',    'visitas_create', 'Registrar entrada e saída de visitantes');

INSERT IGNORE INTO perfil_permissoes (perfil_id, permissao_id)
SELECT 1, id FROM permissoes WHERE chave IN ('visitas_view','visitas_create');

INSERT IGNORE INTO perfil_permissoes (perfil_id, permissao_id)
SELECT 4, id FROM permissoes WHERE chave IN ('visitas_view','visitas_create');

INSERT IGNORE INTO perfil_permissoes (perfil_id, permissao_id)
SELECT 7, id FROM permissoes WHERE chave IN ('visitas_view','visitas_create');
