-- Migration v69: Ouvidoria
-- Registro de reclamações, elogios, sugestões e denúncias

SET NAMES utf8mb4;

CREATE TABLE IF NOT EXISTS ouvidoria_manifestacoes (
    id              INT AUTO_INCREMENT PRIMARY KEY,
    clinica_id      INT NOT NULL DEFAULT 1,
    protocolo       VARCHAR(20) NOT NULL UNIQUE,
    tipo            ENUM('reclamacao','elogio','sugestao','denuncia','informacao') NOT NULL DEFAULT 'reclamacao',
    status          ENUM('aberto','em_analise','respondido','encerrado') NOT NULL DEFAULT 'aberto',
    prioridade      ENUM('baixa','media','alta','critica') NOT NULL DEFAULT 'media',
    anonimo         TINYINT(1) NOT NULL DEFAULT 0,
    nome_solicitante VARCHAR(150) NULL,
    contato         VARCHAR(100) NULL COMMENT 'e-mail ou telefone',
    setor           VARCHAR(100) NULL,
    descricao       TEXT NOT NULL,
    resposta        TEXT NULL,
    respondido_por  INT NULL,
    respondido_em   DATETIME NULL,
    usuario_id      INT NULL COMMENT 'usuário interno que registrou',
    created_at      DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at      DATETIME NULL ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_ouvidoria_clinica   (clinica_id),
    INDEX idx_ouvidoria_status    (status),
    INDEX idx_ouvidoria_tipo      (tipo),
    INDEX idx_ouvidoria_protocolo (protocolo)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT IGNORE INTO permissoes (nome, chave, descricao) VALUES
('Visualizar Ouvidoria',  'ouvidoria_view',    'Visualizar manifestações da ouvidoria'),
('Responder Ouvidoria',   'ouvidoria_responder','Responder e encerrar manifestações'),
('Registrar Ouvidoria',   'ouvidoria_create',  'Registrar novas manifestações');

INSERT IGNORE INTO perfil_permissoes (perfil_id, permissao_id)
SELECT 1, id FROM permissoes WHERE chave IN ('ouvidoria_view','ouvidoria_responder','ouvidoria_create');

INSERT IGNORE INTO perfil_permissoes (perfil_id, permissao_id)
SELECT 4, id FROM permissoes WHERE chave IN ('ouvidoria_view','ouvidoria_responder','ouvidoria_create');

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