feat(avaliacao): adicionar nome da comissão nas avaliações

- Adiciona campo nome_comissao em AvaliacaoComissao (entity, DTO, schema)
- Extrai nome da comissão do Elasticsearch no repository
- Propaga campo pelo job de processamento e use case
- Exibe nome da comissão no ConsultorCard (frontend)
- Remove link do manual PDF do footer
This commit is contained in:
Frederico Castro
2025-12-17 14:15:43 -03:00
parent 0f61b55944
commit 15570be9c9
12 changed files with 39 additions and 3 deletions

View File

@@ -47,6 +47,7 @@ class AvaliacaoComissaoDTO:
premio: str
ano: int
comissao_tipo: str
nome_comissao: str
@dataclass

View File

@@ -149,7 +149,8 @@ class ProcessarRankingJob:
"tipo": a.tipo,
"premio": a.premio,
"ano": a.ano,
"comissao_tipo": a.comissao_tipo
"comissao_tipo": a.comissao_tipo,
"nome_comissao": a.nome_comissao,
}
for a in consultor.avaliacoes_comissao
],

View File

@@ -109,6 +109,7 @@ class ObterRankingUseCase:
premio=a.premio,
ano=a.ano,
comissao_tipo=a.comissao_tipo,
nome_comissao=a.nome_comissao,
)
for a in consultor.avaliacoes_comissao
],

View File

@@ -44,6 +44,7 @@ class AvaliacaoComissao:
premio: str
ano: int
comissao_tipo: str = ""
nome_comissao: str = ""
@dataclass

View File

@@ -253,6 +253,7 @@ class ConsultorRepositoryImpl(ConsultorRepository):
comissao = dados.get("comissao", {}) or {}
comissao_tipo = comissao.get("tipo", "") if isinstance(comissao, dict) else ""
nome_comissao = comissao.get("nome", "") if isinstance(comissao, dict) else ""
is_grande_premio = "grande" in nome_premio.lower()
is_coordenador = "coordenador" in tipo_part.lower() or "presidente" in tipo_part.lower()
@@ -268,6 +269,7 @@ class ConsultorRepositoryImpl(ConsultorRepository):
premio=nome_premio,
ano=ano,
comissao_tipo=comissao_tipo,
nome_comissao=nome_comissao,
))
return avaliacoes

View File

@@ -1,9 +1,11 @@
import logging
import json
import asyncio
from pathlib import Path
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from contextlib import asynccontextmanager
from .routes import router
@@ -147,6 +149,10 @@ app.add_middleware(
app.include_router(router)
static_dir = Path(__file__).parent.parent.parent.parent / "static"
if static_dir.exists():
app.mount("/api/static", StaticFiles(directory=str(static_dir)), name="static")
@app.get("/")
async def root():

View File

@@ -42,6 +42,7 @@ class AvaliacaoComissaoSchema(BaseModel):
premio: str
ano: int
comissao_tipo: str
nome_comissao: str = ""
class PremiacaoSchema(BaseModel):

Binary file not shown.