Spec — Ciclo de Vida do Resultado

Resumo

Especificação do ciclo completo de um resultado, do lançamento ao estado definitivo, nos dois mundos (arbitrado e avulso). Define os estados do score_evento e o comportamento de reversão/congelamento.

Decisão


Estados do score_evento

Estado Significado Conta no ranking?
active pontos valendo Sim
frozen recurso aberto sobre o resultado Não (suspenso)
reverted resultado revertido por decisão de recurso Não

Nunca deletar — só transicionar de estado. O histórico é a fonte de verdade; score_total é cache.

Fluxo — mundo arbitrado

1. Autoridade lança resultado            -> partida_resultado.status = confirmed
2. Sistema pede número à caixa preta     -> score_evento criado, status = active
3. Janela de recurso aberta (ex: 7 dias)
   3a. Sem recurso até o prazo           -> resultado definitivo/imutável
   3b. Recurso aberto                     -> score_evento.status = frozen (pontos suspensos)
       - decisão mantém                   -> volta a active
       - decisão reverte                  -> status = reverted, recalcular
4. Reversão notifica APENAS interessados (atletas/organizador), não o feed inteiro

Fluxo — mundo avulso

1. Atleta A lança resultado contra B     -> status = pending
2. B confirma                            -> status = confirmed -> score_evento active
   B nega                                -> status = rejected  -> nenhum ponto
   (sem recurso neste mundo)

Implicações de implementação

Referências