Corrige calculo do Componente C (Consultoria)

- Adiciona campo vezes_responsavel na entidade Consultoria
- Corrige calculo de base: usa eventos_recentes > 0 (nao string situacao)
- Implementa calculo de extras:
  - extras_eventos: 2 pts/evento (max 20)
  - extras_responsavel: 5 pts/vez (max 25)
  - extras_areas: 10 pts/area extra (max 30)
- Extrai dados de consultorResponsavel dos eventos no repository
- Atualiza DTOs e schemas para incluir novo campo
This commit is contained in:
Frederico Castro
2025-12-13 11:57:33 -03:00
parent 8a8b4230c2
commit b18ae8199c
7 changed files with 32 additions and 12 deletions

View File

@@ -37,12 +37,13 @@ class ConsultoriaDTO:
eventos_recentes: int
primeiro_evento: str
ultimo_evento: str
vezes_responsavel: int
continuidade: int
areas: List[str]
situacao: str
anos_completos: int
anos_consecutivos: int
retornos: int
vezes_responsavel: int
@dataclass

View File

@@ -150,10 +150,12 @@ class ProcessarRankingJob:
"consultoria": {
"total_eventos": consultor.consultoria.total_eventos,
"eventos_recentes": consultor.consultoria.eventos_recentes,
"vezes_responsavel": consultor.consultoria.vezes_responsavel,
"continuidade": consultor.consultoria.continuidade,
"anos_consecutivos": consultor.consultoria.anos_consecutivos,
"situacao": consultor.consultoria.situacao,
"anos_completos": consultor.consultoria.anos_completos,
"areas": consultor.consultoria.areas
"areas": consultor.consultoria.areas,
"vezes_responsavel": consultor.consultoria.vezes_responsavel
} if consultor.consultoria else None,
"premiacoes": [
{

View File

@@ -92,12 +92,13 @@ class ObterRankingUseCase:
eventos_recentes=consultor.consultoria.eventos_recentes,
primeiro_evento=consultor.consultoria.primeiro_evento.isoformat(),
ultimo_evento=consultor.consultoria.ultimo_evento.isoformat(),
vezes_responsavel=consultor.consultoria.vezes_responsavel,
continuidade=consultor.consultoria.continuidade,
areas=consultor.consultoria.areas,
situacao=consultor.consultoria.situacao,
anos_completos=consultor.consultoria.anos_completos,
anos_consecutivos=consultor.consultoria.anos_consecutivos,
retornos=consultor.consultoria.retornos,
vezes_responsavel=consultor.consultoria.vezes_responsavel,
)
if consultor.consultoria
else None,