## CV-6 — Arquivar e desarquivar bolão

**PRD:** `docs/prd/ciclo-de-vida-do-bolao.md`

**Como** administrador, **quero** arquivar um bolão encerrado ou abandonado,
**para** ele sair da minha lista de bolões ativos sem desaparecer.

**Prioridade:** Could — organiza a lista, mas nada depende disso para o bolão
funcionar.

**Critérios de aceite:**

- Dado que sou admin de um bolão encerrado, quando arquivo, então ele sai da
  lista de bolões ativos de todos os participantes e vai para os arquivados.
- Dado que um bolão está arquivado, quando abro, então vejo o ranking final e
  o histórico em **somente leitura**.
- Dado que sou admin, quando desarquivo, então o bolão volta para a lista
  ativa no estado em que estava — **arquivamento é reversível**.
- Dado que uma correção de placar afeta um bolão arquivado, então o recálculo
  acontece normalmente (PR-6) e o resultado arquivado é atualizado, mesmo
  trocando o campeão.
- Dado que sou participante comum, quando tento arquivar, então a requisição é
  recusada.
- Dado que um bolão ainda está em andamento, quando tento arquivar, então a
  ação é recusada — encerre antes (CV-1 ou CV-3).
- Dado que já abri um bolão arquivado antes, quando estou sem conexão, então
  continuo conseguindo ler o ranking final e o histórico dele.

**Tasks:**

_Backend_
- [x] `BE-1` Estado de arquivado no bolão, com endpoints de arquivar e desarquivar, autorizados a admin (depende de CV-1 BE-3)
- [x] `BE-2` Recusar arquivamento de bolão em andamento (depende de BE-1)
- [x] `BE-3` Tornar o bolão arquivado somente leitura, sem bloquear o recálculo de PR-6 (depende de BE-1, PR-6 BE-3)

_Mobile_
- [x] `FE-1` Separação entre bolões ativos e arquivados na lista (depende de BE-1)
- [x] `FE-2` Ações de arquivar e desarquivar, visíveis só para admin (depende de BE-1)
- [x] `FE-3` Bolão arquivado em somente leitura, com o ranking final acessível (depende de BE-3)
- [x] `FE-4` Cache local do ranking final e do histórico do bolão arquivado, para leitura offline (depende de BE-1)

_QA_
- [x] `QA-1` Escrever o plano de casos de teste a partir desta story
- [x] `QA-2` Executar o plano arquivando bolão em andamento, desarquivando, e com correção de placar chegando em bolão arquivado

**Riscos/Dependências:**

- **Decidido em 03/08: arquivamento é reversível.** Isso é coerente com a
  decisão de que correção de placar troca o campeão mesmo após o encerramento:
  um bolão arquivado pode precisar voltar para recalcular.
- `BE-3` é o ponto delicado: "somente leitura" não pode bloquear o recálculo
  automático, ou o resultado arquivado congela — exatamente o que a decisão
  sobre correção proíbe.
- Depende de CV-1 e PR-6.

- **06/08:** `FE-2` exigiu acrescentar `isAdmin` à resposta de `GET
  /pools/history` — sem esse campo o app oferecia arquivar a todo participante e
  o comum descobria pelo 403.
- `FE-1` (separar ativos de arquivados na lista) fica aberta: hoje a home
  **omite** os arquivados e o histórico os marca. Falta a separação pedida.
- `FE-3` e `FE-4` (somente leitura e cache offline) seguem abertas.

- **06/08:** `FE-1` exigiu mudar o backend: `GET /pools` **omitia** os arquivados,
  então o bolão simplesmente desaparecia do app sem nada dizer que tinha sido
  arquivado — e o participante achava que perdeu o histórico. Agora eles vêm
  marcados e a lista os separa numa seção recolhida, com contagem.
- `FE-3` reusa a mesma trava do encerrado, com **texto próprio**: "encerrado" e
  "arquivado" são estados diferentes, e chamar um pelo nome do outro faz o admin
  procurar um encerramento que não houve. Arquivado também não recebe correção
  manual de placar: é histórico fechado.
- `FE-4` guarda o ranking geral por bolão — é ele que vira o "ranking final" do
  arquivado, que é o que a pessoa quer rever meses depois. Ranking de rodada
  específica não vai para o cache, porque não tem esse uso.

- **07/08 — QA:** plano em `docs/testes/CV-6-plano.md`, execução em
  `docs/testes/CV-6-execucao.md` (**10/10 ✅**). Quatro casos novos.
- **O que faltava era o cenário central da story:** correção de placar chegando em
  bolão **arquivado**. Se o arquivamento bloqueasse o recálculo, um ranking final
  errado ficaria para sempre — arquivar viraria a maneira de congelar um erro a
  favor de alguém. O caso monta tudo: encerra, arquiva, recusa palpite, corrige o
  placar, e **o campeão lido depois é o outro** — com o aviso de recálculo saindo,
  que é a única forma de alguém saber, já que ninguém acompanha bolão arquivado.
- `CV-6-09` cobre o uso real do arquivado: rever meses depois, sem conexão, com o
  dado rotulado pela idade.
