feat(ranking): adicionar badges de tipos de atuação nos cards

- Adiciona campo tipos_atuacao ao schema e extração no mapper
- Exibe tipos de atuação (Coordenador, Consultor, Avaliador, etc.)
  na seção expandida do card, acima de Selos e Reconhecimentos
- Inclui estilos visuais distintos para cada tipo de atuação
- Melhorias no Header e SugerirConsultores
This commit is contained in:
Frederico Castro
2025-12-21 05:36:26 -03:00
parent bb36961b4c
commit d4aa75ca0b
10 changed files with 424 additions and 40 deletions

View File

@@ -21,6 +21,7 @@ def normalizar_texto(texto: str) -> str:
from ...application.use_cases.obter_ranking import ObterRankingUseCase
from ...application.use_cases.obter_consultor import ObterConsultorUseCase
from ...infrastructure.repositories.consultor_repository_impl import ConsultorRepositoryImpl
from ...application.mappers.ranking_mapper import RankingMapper
from ..schemas.consultor_schema import (
RankingResponseSchema,
RankingDetalhadoResponseSchema,
@@ -183,6 +184,7 @@ async def ranking_paginado(
consultores_schema = []
for e in entries:
d = e.detalhes
tipos_atuacao = RankingMapper._extrair_tipos_atuacao(d)
consultores_schema.append(
ConsultorRankingResumoSchema(
id_pessoa=e.id_pessoa,
@@ -195,6 +197,7 @@ async def ranking_paginado(
bloco_d=float(e.bloco_d),
ativo=e.ativo,
anos_atuacao=float(e.anos_atuacao),
tipos_atuacao=tipos_atuacao,
coordenador_ppg=bool(d.get("coordenador_ppg", False)),
consultoria=d.get("consultoria"),
coordenacoes_capes=d.get("coordenacoes_capes"),