Files
ranking/backend/src/application/dtos/consultor_dto.py

156 lines
2.7 KiB
Python

from dataclasses import dataclass, asdict
from typing import List, Optional, Dict, Any
@dataclass
class PeriodoDTO:
inicio: str
fim: Optional[str]
ativo: bool
anos_decorridos: float
@dataclass
class CoordenacaoCapesDTO:
codigo: str
tipo: str
area_avaliacao: str
periodo: PeriodoDTO
areas_adicionais: List[str]
ja_coordenou_antes: bool
presidente: bool
@dataclass
class ConsultoriaDTO:
codigo: str
situacao: str
periodo: PeriodoDTO
areas: List[str]
anos_consecutivos: int
retornos: int
@dataclass
class InscricaoDTO:
codigo: str
tipo: str
premio: str
ano: int
situacao: str
@dataclass
class AvaliacaoComissaoDTO:
codigo: str
tipo: str
premio: str
ano: int
comissao_tipo: str
@dataclass
class PremiacaoDTO:
codigo: str
tipo: str
nome_premio: str
ano: int
papel: Optional[str] = None
@dataclass
class BolsaCNPQDTO:
codigo: str
nivel: str
area: str
@dataclass
class ParticipacaoDTO:
codigo: str
tipo: str
descricao: str
ano: Optional[int]
@dataclass
class OrientacaoDTO:
codigo: str
tipo: str
nivel: str
ano: Optional[int]
coorientacao: bool = False
premiada: bool = False
premiacao_tipo: Optional[str] = None
@dataclass
class MembroBancaDTO:
codigo: str
tipo: str
nivel: str
ano: Optional[int]
@dataclass
class PontuacaoAtuacaoDTO:
codigo: str
base: int
tempo: int
bonus: int
total: int
quantidade: int
@dataclass
class PontuacaoBlocoDTO:
bloco: str
total: int
atuacoes: List[PontuacaoAtuacaoDTO]
@dataclass
class PontuacaoCompletaDTO:
bloco_a: PontuacaoBlocoDTO
bloco_c: PontuacaoBlocoDTO
bloco_d: PontuacaoBlocoDTO
pontuacao_total: int
@dataclass
class ConsultorResumoDTO:
id_pessoa: int
nome: str
anos_atuacao: float
ativo: bool
veterano: bool
pontuacao_total: int
bloco_a: int
bloco_c: int
bloco_d: int
rank: Optional[int] = None
@dataclass
class ConsultorDetalhadoDTO:
id_pessoa: int
nome: str
anos_atuacao: float
ativo: bool
veterano: bool
coordenador_ppg: bool
coordenacoes_capes: List[CoordenacaoCapesDTO]
consultoria: Optional[ConsultoriaDTO]
inscricoes: List[InscricaoDTO]
avaliacoes_comissao: List[AvaliacaoComissaoDTO]
premiacoes: List[PremiacaoDTO]
bolsas_cnpq: List[BolsaCNPQDTO]
participacoes: List[ParticipacaoDTO]
orientacoes: List[OrientacaoDTO]
membros_banca: List[MembroBancaDTO]
pontuacao: PontuacaoCompletaDTO
rank: Optional[int] = None
def to_dict(self) -> Dict[str, Any]:
return asdict(self)