diff --git a/packages/v1/administrativo/repositories/ato_principal/ato_principal_index_repository.py b/packages/v1/administrativo/repositories/ato_principal/ato_principal_index_repository.py index f296c76..9472b66 100644 --- a/packages/v1/administrativo/repositories/ato_principal/ato_principal_index_repository.py +++ b/packages/v1/administrativo/repositories/ato_principal/ato_principal_index_repository.py @@ -15,7 +15,7 @@ class IndexRepository: # Cria a sessão dentro do repositório db = SessionLocal() try: - # Executa a query com descriptografia de campos sensíveis + # Executa a query result = db.query( AtoPrincipal.ato_principal_id, AtoPrincipal.origem_ato_principal_id, @@ -44,28 +44,8 @@ class IndexRepository: AtoPrincipal.updated_at, ).all() - # Lista final com conversão segura - data = [] - for obj in result: - # Transforma a Row em dicionário mutável - row = dict(obj._mapping) - - # Decodifica os campos criptografados (se não forem None) - for field in [ - "nome_civil_ato", - "nome_serventuario_praticou_ato", - "inteiro_teor", - ]: - value = row.get(field) - if isinstance(value, (bytes, bytearray)): - try: - row[field] = value.decode("utf-8") - except UnicodeDecodeError: - # Evita quebrar se o conteúdo não for UTF-8 válido - row[field] = None - - # Valida via schema Pydantic - data.append(AtoPrincipalSchema.model_validate(row)) + # Converte os models SQLAlchemy em schemas Pydantic + data = [AtoPrincipalSchema.model_validate(obj) for obj in result] return data