## CC-6 — Ver as regras do bolão a qualquer momento

**PRD:** `docs/prd/criacao-e-convite.md`

**Como** participante competitivo, **quero** consultar a tabela de pontos e o
critério de desempate quando eu quiser, **para** decidir como palpitar e não
descobrir a regra depois de perder pontos.

**Prioridade:** Must — o competitivo pediu para ver a regra **antes** de
palpitar; e é o que faz o grupo parar de perguntar isso no WhatsApp.

**Critérios de aceite:**

- Dado que sou participante do bolão, quando abro as regras, então vejo a
  tabela de pontos e a ordem completa dos critérios de desempate.
- Dado que as regras estão travadas (CC-3), então vejo que estão travadas e a
  partir de quando.
- Dado que abro as regras, então vejo também o prazo do próximo jogo, no meu
  fuso.
- Dado que não sou participante do bolão, quando tento ver as regras, então a
  requisição é recusada.
- Dado que estou sem conexão e já abri as regras antes, então continuo
  conseguindo lê-las.

**Tasks:**

_Backend_
- [x] `BE-1` Endpoint de leitura das regras do bolão, com estado de travamento (depende de CC-2 BE-1, CC-3 BE-1)
- [x] `BE-2` Autorização: só participante do bolão lê as regras (depende de BE-1)

_Mobile_
- [x] `FE-1` Tela de regras com tabela de pontos, ordem de desempate e estado de travamento (depende de BE-1)
- [x] `FE-2` Cache local das regras para leitura offline
- [x] `FE-3` Acesso às regras a partir da tela de palpite, sem sair do fluxo

_QA_
- [x] `QA-1` Escrever o plano de casos de teste a partir desta story
- [x] `QA-2` Executar o plano offline, com regras travadas e destravadas, e como não participante

**Riscos/Dependências:**

- Depende de CC-2 e CC-3.
- Regra em cache que fica velha depois de o admin alterar (antes do
  travamento) é o caso de borda a cuidar.

- **06/08:** `FE-2` (cache offline das regras) segue aberta — depende de `PP-4`,
  que trouxe a decisão de armazenamento local e também está aberta.
- A tela deixou de descrever a faixa de saldo como valendo sempre: em jogo que
  terminou empatado **não existe** faixa de saldo (todo empate tem saldo 0), e
  quem palpitou 1x1 num 4x4 leva a faixa de "só vencedor". A regra já era essa
  no `scoring.service`; a tela é que prometia 5 pontos.

- **06/08:** a regra é o que o participante consulta **no meio de uma discussão**,
  e discussão não espera rede. Guardada no aparelho, ela continua consultável
  offline — **rotulada com a idade** ("de 3 h atrás"), porque regra destravada
  pode ter mudado desde então.

- **06/08 — QA:** plano em `docs/testes/CC-6-plano.md`, execução em
  `docs/testes/CC-6-execucao.md` (**12/12 ✅**). Nenhum defeito. Os três casos de
  cache offline não tinham teste nenhum: regra guardada com a idade visível,
  cache **por bolão** (regra de outro bolão na tela é pior que erro de rede) e
  substituição do dado velho quando a rede volta — que fecha o risco registrado
  nesta story.
