## CC-2 — Definir tabela de pontos e desempate na criação

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

**Como** administrador, **quero** definir a pontuação e o critério de
desempate ao criar o bolão, **para** que a regra esteja registrada antes de
alguém palpitar e ninguém pergunte no grupo.

**Prioridade:** Must — regra combinada de memória é a origem da briga; e o
competitivo precisa ler a regra antes de palpitar.

**Critérios de aceite:**

- Dado que estou criando o bolão, quando chego nas regras, então a tabela
  10/5/3 e a ordem de desempate vêm pré-selecionadas como padrão.
- Dado que confirmo as regras, quando o bolão é criado, então elas ficam
  gravadas no bolão e visíveis a todos os participantes.
- Dado que ainda ninguém palpitou, quando eu altero as regras, então a
  alteração é aceita.
- Dado que já existe palpite registrado, quando tento alterar, então a
  alteração é recusada (regra de CC-3).
- Dado que sou participante e não admin, quando tento alterar as regras,
  então a requisição é recusada.

**Tasks:**

_Backend_
- [x] `BE-1` Persistir a configuração de pontuação e desempate no bolão, com os valores padrão do PRD (depende de CC-1 BE-2)
- [x] `BE-2` Endpoint de alteração das regras, com autorização de admin (depende de BE-1)
- [x] `BE-3` Fazer o cálculo de PR-1 e o desempate de PR-5 lerem a configuração do bolão, não constantes fixas (depende de BE-1)
  - **Verificado de ponta a ponta em 07/08** (`test/cc2-tabela-customizada.e2e-spec.ts`):
    bolão 20/10/5 com `WINNERS` na frente → pontos 35/30 (com 10/5/3 seriam
    18/15), extrato explicando com os mesmos valores, e desempate resolvido pela
    ordem do bolão num caso **discriminante** (ordem padrão daria o outro
    campeão). Era o risco escondido citado nos Riscos desta story — e metade dele
    já havia cobrado o preço em `PR-5`.

_Mobile_
- [x] `FE-1` Etapa de regras no fluxo de criação, com o padrão pré-selecionado (depende de BE-1)
- [x] `FE-2` Aviso explícito de que as regras travam no primeiro palpite
- [x] `FE-3` Tela de edição de regras para admin, com a recusa após o primeiro palpite tratada como fluxo esperado (depende de BE-2)

_QA_
- [x] `QA-1` Escrever o plano de casos de teste a partir desta story
- [x] `QA-2` Executar o plano alterando regra antes e depois do primeiro palpite, e como participante comum

**Riscos/Dependências:**

- Depende de CC-1; e CC-3 é o que garante o travamento.
- **BE-3 é o risco escondido:** se PR-1 e PR-5 usarem valores fixos no
  código, a configuração por bolão é decorativa.
- Só a tabela 10/5/3 e a ordem decidida no PRD entram nesta versão; permitir
  regra arbitrária não está no escopo.

- **06/08:** a etapa de regras na criação é **recolhida por padrão**, com o
  padrão do PRD pré-selecionado — obrigar o admin casual a configurar pontos é o
  que faz ele desistir e voltar para a planilha.
- O app passou a barrar tabela **não monótona** (ex.: exato valendo menos que
  vencedor-e-saldo), que o servidor aceita porque cada campo é válido de 0 a 100
  isoladamente. Sem isso o admin cria um bolão em que acertar mais vale menos e
  a briga aparece só na apuração.
- A edição (`FE-3`) só aparece para admin **e** só com regras destravadas: com
  regras travadas seria oferecer um 409.

- **07/08 — QA:** plano em `docs/testes/CC-2-plano.md`, execução em
  `docs/testes/CC-2-execucao.md` (**11/11 ✅**).
- **07/08 — defeito corrigido:** três textos usavam `**assim**` dentro de um
  `Text`, que não interpreta markdown — os asteriscos apareciam na tela, e
  justamente nos avisos que precisam ser levados a sério ("as regras travam no
  primeiro palpite", "a saída é definitiva"). Corrigido com `Text.rich` e negrito
  de verdade; o caso `CC-2-02` falha se `**` reaparecer.
