fix(backend): deduplicar vínculos de consultoria com mesmo ID

Dados do ATUACAPES podem conter registros duplicados de consultoria
com mesmo ID. Mantém o registro ativo (sem fim) quando há duplicatas.
This commit is contained in:
Frederico Castro
2025-12-18 12:32:14 -03:00
parent 7dc1284d0b
commit 9d93e42a12

View File

@@ -141,6 +141,20 @@ class ConsultorRepositoryImpl(ConsultorRepository):
if not consultorias:
return None
visto_ids: Dict[int, Dict[str, Any]] = {}
for c in consultorias:
cid = c.get("id")
if cid is None:
continue
if cid not in visto_ids:
visto_ids[cid] = c
else:
existente_fim = visto_ids[cid].get("fim")
novo_fim = c.get("fim")
if existente_fim and not novo_fim:
visto_ids[cid] = c
consultorias = list(visto_ids.values()) if visto_ids else consultorias
periodos: List[Periodo] = []
vinculos: List[VinculoConsultoria] = []
situacoes: List[str] = []