-- Script para unificar registros duplicados na tabela municipios mantendo o registro com menor id

-- Criar tabela temporária para mapear municipios duplicados para o menor id
CREATE TEMPORARY TABLE municipios_unificados AS
SELECT MIN(id) AS id_unificado, nome
FROM municipios
GROUP BY nome
HAVING COUNT(*) > 1;

-- Atualizar tabelas que referenciam municipios para usar o id unificado
-- Exemplo para agenda_eventos
UPDATE agenda_eventos ae
JOIN municipios m ON ae.municipio_id = m.id
JOIN municipios_unificados mu ON m.nome = mu.nome
SET ae.municipio_id = mu.id_unificado
WHERE m.id != mu.id_unificado;

-- Atualizar outras tabelas que referenciam municipios conforme necessário
-- Exemplo para agenda_notificacoes (se houver campo municipio_id)
-- UPDATE agenda_notificacoes an
-- JOIN municipios m ON an.municipio_id = m.id
-- JOIN municipios_unificados mu ON m.nome = mu.nome
-- SET an.municipio_id = mu.id_unificado
-- WHERE m.id != mu.id_unificado;

-- Deletar registros duplicados mantendo o registro unificado
DELETE m FROM municipios m
LEFT JOIN municipios_unificados mu ON m.id = mu.id_unificado
WHERE mu.id_unificado IS NULL
AND m.nome IN (SELECT nome FROM municipios_unificados);

-- Limpar tabela temporária
DROP TEMPORARY TABLE municipios_unificados;
