-- Migration v66: Higienização de Leitos
-- Controla o status de limpeza dos leitos após alta/transferência

SET NAMES utf8mb4;

CREATE TABLE IF NOT EXISTS higienizacao_leitos (
    id            INT AUTO_INCREMENT PRIMARY KEY,
    clinica_id    INT NOT NULL DEFAULT 1,
    leito_id      INT NOT NULL,
    internacao_id INT NULL COMMENT 'Internação que originou a solicitação',
    status        ENUM('pendente','em_andamento','concluida','cancelada') NOT NULL DEFAULT 'pendente',
    tipo          ENUM('limpeza_terminal','limpeza_concorrente','desinfeccao') NOT NULL DEFAULT 'limpeza_terminal',
    solicitado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    iniciado_em   DATETIME NULL,
    concluido_em  DATETIME NULL,
    usuario_solicitante_id INT NULL,
    usuario_executor_id    INT NULL,
    observacao    TEXT NULL,
    created_at    DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at    DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_higienizacao_clinica (clinica_id),
    INDEX idx_higienizacao_leito  (leito_id),
    INDEX idx_higienizacao_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Permissões
INSERT IGNORE INTO permissoes (nome, chave, descricao) VALUES
('Visualizar Higienização', 'higienizacao_view',    'Visualizar painel de higienização de leitos'),
('Gerenciar Higienização',  'higienizacao_manage',  'Criar e atualizar solicitações de higienização');

-- Admin (id=1)
INSERT IGNORE INTO perfil_permissoes (perfil_id, permissao_id)
SELECT 1, id FROM permissoes WHERE chave IN ('higienizacao_view','higienizacao_manage');

-- Enfermeiro (id=4)
INSERT IGNORE INTO perfil_permissoes (perfil_id, permissao_id)
SELECT 4, id FROM permissoes WHERE chave IN ('higienizacao_view','higienizacao_manage');

-- Admin Hospitalar (id=7)
INSERT IGNORE INTO perfil_permissoes (perfil_id, permissao_id)
SELECT 7, id FROM permissoes WHERE chave IN ('higienizacao_view','higienizacao_manage');
