From 9d93e42a127875db7f6ece0b73dbbae8f08bf804 Mon Sep 17 00:00:00 2001 From: Frederico Castro Date: Thu, 18 Dec 2025 12:32:14 -0300 Subject: [PATCH] =?UTF-8?q?fix(backend):=20deduplicar=20v=C3=ADnculos=20de?= =?UTF-8?q?=20consultoria=20com=20mesmo=20ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dados do ATUACAPES podem conter registros duplicados de consultoria com mesmo ID. Mantém o registro ativo (sem fim) quando há duplicatas. --- .../repositories/consultor_repository_impl.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/backend/src/infrastructure/repositories/consultor_repository_impl.py b/backend/src/infrastructure/repositories/consultor_repository_impl.py index 4766793..b43c751 100644 --- a/backend/src/infrastructure/repositories/consultor_repository_impl.py +++ b/backend/src/infrastructure/repositories/consultor_repository_impl.py @@ -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] = []