USE prefeitura_resolve;

CREATE TABLE IF NOT EXISTS usuario_servicos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    usuario_id INT NOT NULL,
    categoria_id INT NOT NULL,
    criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    UNIQUE KEY unique_usuario_servico (usuario_id, categoria_id),
    CONSTRAINT fk_usuario_servicos_usuario FOREIGN KEY (usuario_id) REFERENCES usuarios(id) ON DELETE CASCADE,
    CONSTRAINT fk_usuario_servicos_categoria FOREIGN KEY (categoria_id) REFERENCES categorias(id) ON DELETE CASCADE
);

INSERT IGNORE INTO usuario_servicos (usuario_id, categoria_id)
SELECT u.id, c.id
FROM usuarios u
CROSS JOIN categorias c
WHERE u.perfil = 'ADMIN';

INSERT IGNORE INTO usuario_servicos (usuario_id, categoria_id)
SELECT u.id, o.categoria_id
FROM usuarios u
INNER JOIN ocorrencias o ON o.setor_id = u.setor_id
WHERE u.visualiza_todas_ocorrencias = 0
  AND u.setor_id IS NOT NULL;
