import React, { useState } from 'react'; import './ConsultorCard.css'; const ConsultorCard = ({ consultor }) => { const [expanded, setExpanded] = useState(false); const getRankClass = (rank) => { if (rank === 1) return 'rank-1'; if (rank === 2) return 'rank-2'; if (rank === 3) return 'rank-3'; return ''; }; const formatDate = (dateStr) => { if (!dateStr) return 'Atual'; return new Date(dateStr).toLocaleDateString('pt-BR'); }; const { pontuacao } = consultor; const { consultoria } = consultor; return (
setExpanded(!expanded)}>
#{consultor.rank}
{consultor.nome} {consultor.ativo && ATIVO} {!consultor.ativo && HISTÓRICO} {consultor.veterano && VETERANO}
{consultor.anos_atuacao} anos de atuação {consultoria && ` | Desde ${formatDate(consultoria.primeiro_evento)}`}
{consultoria && ( <>
{consultoria.total_eventos}
Eventos
{consultoria.eventos_recentes}
Recentes
{consultoria.vezes_responsavel}
Responsável
)}
{consultor.pontuacao_total}
Score
{expanded ? '▲' : '▼'}
{expanded && (

Pontuação Total

0 ? 'var(--accent-2)' : 'var(--muted)' }}> {pontuacao.componente_a.total}
COMP A
0 ? 'var(--success)' : 'var(--muted)' }}> {pontuacao.componente_b.total}
COMP B
0 ? 'var(--gold)' : 'var(--muted)' }}> {pontuacao.componente_c.total}
COMP C
0 ? 'var(--bronze)' : 'var(--muted)' }}> {pontuacao.componente_d.total}
COMP D
{pontuacao.pontuacao_total}
TOTAL
{consultor.coordenacoes_capes?.length > 0 && (

Coordenações CAPES

{consultor.coordenacoes_capes.map((coord, idx) => (
{coord.tipo} {coord.area_avaliacao} {formatDate(coord.periodo.inicio)} - {formatDate(coord.periodo.fim)}
))}
)} {consultor.coordenacoes_programas?.length > 0 && (

Coordenações de Programa (PPG)

{consultor.coordenacoes_programas.map((coord, idx) => (
{coord.nota_ppg} {coord.nome_programa} {coord.area_avaliacao} {formatDate(coord.periodo.inicio)} - {formatDate(coord.periodo.fim)}
))}
)} {consultor.premiacoes?.length > 0 && (

Premiações

{consultor.premiacoes.map((prem, idx) => (
{prem.pontos} pts {prem.nome_premio} {prem.ano}
))}
)}
)}
); }; const ComponenteDetalhes = ({ titulo, componente, cor }) => (

{titulo}

{componente.base}
BASE
{componente.tempo}
TEMPO
{componente.extras}
EXTRAS
{componente.bonus}
BÔNUS
{componente.retorno > 0 && (
{componente.retorno}
RETORNO
)}
{componente.total}
TOTAL
); export default ConsultorCard;