# PRD — Criação e convite

**Dono:** Igor · **Status:** rascunho · **Data:** 03/08/2026
**Origem:** Fase 1 do `bolao-usuario` (03/08/2026)

---

## 1. Problema

Montar o bolão é o momento em que o admin quase desiste antes de começar:

- **Cadastrar jogo a jogo não acontece.** O admin foi explícito: 380 jogos
  na mão ele não faz — desiste e volta para a planilha.
- **Chamar a galera um por um também não.** Digitar 20 e-mails à mão é
  trabalho que ele não vai fazer; o convite tem que caber numa mensagem
  jogada no grupo do WhatsApp.
- **Entrar tem que ser rápido ou o casual não entra.** Ele disse: se pedir
  cadastro longo, deixa para depois — e "depois" é depois do prazo.
- **As regras não ficam registradas em lugar nenhum.** Quanto custa, como
  pontua, quando fecha o primeiro palpite: hoje isso é perguntado no grupo
  e respondido de memória, diferente para cada pessoa que pergunta.
- **Se o admin viaja, o bolão para.** Não existe segundo responsável.

## 2. Objetivo e métrica de sucesso

_Métricas propostas, a validar com o dono._

- **Bolão criado e pronto para receber palpite em poucos minutos**, sem
  cadastrar jogo manualmente.
- **≥ 80% dos convidados entram** a partir de um único link mandado no
  grupo, sem o admin ajudar individualmente.
- **Zero pergunta no grupo** sobre como pontua e quando fecha — a resposta
  está no app.

## 3. Personas afetadas

| Persona           | O que muda                                                                  |
| ----------------- | --------------------------------------------------------------------------- |
| **Administrador** | Escolhe campeonato e regras uma vez, e chama todos com um link              |
| **Casual**        | Entra em poucos toques pelo link do grupo e já vê as regras e o prazo        |
| **Competitivo**   | Vê a tabela de pontos e o critério de desempate **antes** de palpitar        |

**Onde as personas discordam, e quem ganha:**

- **Admin joga no próprio bolão?** O admin quer jogar ("o bolão é meu"); o
  competitivo desconfia de quem controla as regras e também disputa.
  **Os dois ganham, e sem esforço:** o épico _Palpite e prazo_ já decidiu
  que ninguém — admin incluído — vê palpite antes do jogo terminar. O admin
  joga, e a suspeita não tem onde se apoiar. **Mas isso só se sustenta se
  o admin não puder alterar regra depois do primeiro palpite** (ver regra
  na seção 6).
- **Entrada rápida × informação completa.** O casual quer entrar em três
  toques; o competitivo quer ler regra de pontuação e desempate antes de
  se comprometer. **Ganha o casual na entrada e o competitivo no acesso:**
  entrar é curto, mas as regras ficam disponíveis por completo — o que não
  pode acontecer é a pressa esconder a informação de quem quer ler.

## 4. Escopo

- Criar bolão escolhendo campeonato e quais rodadas entram, sem cadastrar
  jogo a jogo
- Definir na criação a tabela de pontos e o critério de desempate
- Travar as regras quando o primeiro palpite for registrado
- Bolão fechado: só entra quem tem o convite
- Convite por link único, compartilhável no grupo
- Entrar pelo convite com o mínimo de passos
- Ver as regras do bolão (pontuação, desempate, prazo) a qualquer momento
- Lista de participantes, com quem entrou e quem só abriu o convite
- Segundo administrador
- Remover participante

## 5. Fora de escopo

- Palpite, prazo, edição e sigilo → épico _Palpite e prazo_
- Cálculo de ponto e ranking → épico _Pontuação e ranking_
- Valor de entrada e cobrança → **sem dinheiro nesta versão**
  (ver `docs/prd/premiacao-e-cobranca.md`)
- Encerrar, arquivar e recriar o bolão na temporada seguinte → épico
  _Ciclo de vida do bolão_
- Bolão público, aberto a qualquer um — o admin pediu explicitamente o
  contrário
- Participar de vários bolões ao mesmo tempo (desejável na Fase 1, não
  essencial)
- Convite por e-mail individual

## 6. Regras de domínio decididas

| Regra                          | Decisão                                                                                                                                                              | Status                    |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
| Quem entra no bolão            | **Bolão sempre fechado.** Só entra quem recebeu o convite; não existe bolão público nesta versão                                                                       | decidido                  |
| Regras do bolão                | Tabela de pontos e desempate são escolhidos na criação e **travam no primeiro palpite registrado.** Depois disso, mudança só pelo épico _Ciclo de vida_                | decidido                  |
| Administração                  | **Pelo menos dois admins possíveis**, para o bolão não parar se um viajar. **O admin participa do bolão** — o sigilo do épico _Palpite_ é o que torna isso justo        | decidido                  |
| Entrada no meio do campeonato  | **Não é possível entrar atrasado.** A entrada fecha **quando o primeiro jogo do bolão começa**; depois disso o convite não dá mais acesso. Reverte a decisão anterior (03/08) | decidido                  |
| Remoção de participante        | O admin pode remover. **Palpites e pontos do removido saem do ranking**, e a remoção fica visível na lista de participantes                                            | proposta a validar — Igor  |
| Sigilo dos palpites            | não se aplica — decidido no épico _Palpite e prazo_. Consequência aqui: o admin não ganha visão privilegiada por ser admin                                             | não se aplica             |
| Prazo do palpite               | não se aplica — decidido no épico _Palpite e prazo_                                                                                                                   | não se aplica             |
| Pontuação                      | não se aplica — a tabela é decidida no épico _Pontuação e ranking_; aqui só se escolhe e trava                                                                        | não se aplica             |
| Desempate                      | não se aplica — idem pontuação                                                                                                                                        | não se aplica             |
| Jogo adiado / cancelado / W.O. | não se aplica — épicos _Palpite e prazo_ e _Pontuação e ranking_                                                                                                       | não se aplica             |
| Placar corrigido               | não se aplica — épico _Pontuação e ranking_                                                                                                                           | não se aplica             |
| Palpite não enviado            | não se aplica — épico _Pontuação e ranking_                                                                                                                           | não se aplica             |
| Dinheiro                       | **não se aplica — sem dinheiro nesta versão** (decisão de 03/08/2026). Não há valor de entrada a definir na criação                                                     | não se aplica             |

## 7. Fluxo principal

1. `[ADMIN]` Crio o bolão escolhendo o campeonato e as rodadas — os jogos
   já vêm, eu não cadastro nada.
2. `[ADMIN]` Escolho a tabela de pontos e o desempate, e vejo o aviso de
   que isso trava quando alguém palpitar.
3. `[ADMIN]` Pego o link do convite e jogo no grupo do WhatsApp.
4. `[CASUAL]` Abro o link, entro no bolão certo em poucos toques, e já vejo
   como pontua e quando fecha o primeiro palpite.
5. `[ADMIN]` Vejo quem já entrou e quem só abriu o convite, e cobro no grupo
   quem falta.
6. `[ADMIN]` Promovo alguém a segundo admin.

## 8. Requisitos não funcionais

- **O link do convite tem que abrir o bolão certo mesmo com o app fechado
  ou não instalado** — cair na tela errada é o suficiente para o casual
  desistir e voltar ao WhatsApp.
- **Entrada curta:** cada passo a mais entre o link e o primeiro palpite é
  gente que não entra.
- **Convite é acesso.** Quem tem o link entra no bolão; o link precisa
  poder ser invalidado se cair no lugar errado.
- **Fuso:** o prazo do primeiro palpite mostrado no convite tem que estar
  no fuso de quem lê.

## 9. Riscos e dependências

- **Fonte oficial de calendário do campeonato.** Sem ela, "escolho o
  campeonato e os jogos já vêm" não existe — e essa é a premissa que
  impede o admin de desistir. Mesma dependência crítica dos outros épicos.
- **Link de convite compartilhado em grupo aberto** pode trazer gente não
  convidada; precisa ser possível invalidar e remover.
- **Travar regra no primeiro palpite** depende de o épico _Palpite e prazo_
  existir para saber quando o primeiro palpite aconteceu.

## 10. Perguntas abertas

| Pergunta                                                                        | Dono | Prazo      |
| ------------------------------------------------------------------------------- | ---- | ---------- |
_Nenhuma pergunta aberta neste épico._

**Respondidas em 03/08/2026:**

- **O link de convite expira em 1 dia.** Passado isso, o admin gera outro
  (CC-4 já prevê regeração). ⚠️ Atinge justamente o casual, que na Fase 1
  disse que "deixa pra depois" — quem lê a mensagem no dia seguinte não
  entra, e o admin volta a gerar link na mão. Vale medir quantos convites
  precisam ser regerados.
- **Primeira versão: apenas Brasileirão Série A.** Paulistão, Copa do Brasil
  e demais ficam fora — o que também simplifica a fonte de dados, já que o
  tier Free da `football-data.org` cobre exatamente Série A.
- **Quem cria o bolão é sempre admin**, e não pode transferir a
  administração. ⚠️ Consequência: **o criador nunca consegue sair do bolão**,
  porque CV-4 recusa a saída do último admin e ele nunca deixa de ser admin.
  Ele pode adicionar um segundo admin (CC-8), mas não se rebaixar.
- **Identificação do participante:** cadastro e login por e-mail — ver o
  novo PRD `docs/prd/identificacao-e-acesso.md`.

## 11. Stories derivadas

Os Given/When/Then vivem no cartão de cada story (`docs/stories/`), não aqui.

- [ ] `CC-1` Criar bolão escolhendo campeonato e rodadas, com os jogos já carregados
- [ ] `CC-2` Definir tabela de pontos e desempate na criação
- [ ] `CC-3` Travar as regras do bolão no primeiro palpite registrado
- [ ] `CC-4` Gerar e compartilhar o link de convite
- [ ] `CC-5` Entrar no bolão pelo link, com o mínimo de passos
- [ ] `CC-6` Ver as regras do bolão a qualquer momento
- [ ] `CC-7` Lista de participantes com quem entrou e quem só abriu o convite
- [ ] `CC-8` Promover e remover segundo administrador
- [ ] `CC-9` Remover participante do bolão
- [ ] `CC-10` Lista dos meus bolões na abertura do app — **acrescentada em
  06/08**: descoberta ao montar a navegação do app. Sem ela o app não navega, e
  nenhuma story dos épicos originais cobria isso (`CV-5` trata só do histórico
  de encerrados).

---

## Bloqueios

**Nada bloqueia o início das stories principais.** As quatro decisões
estruturais estão fechadas (bolão fechado, regras travam no primeiro
palpite, dois admins, admin participa).

**Uma story está bloqueada:** "remover participante do bolão" depende de
decidir se os palpites do removido saem do ranking ou ficam no histórico —
a escolha muda o ranking de todos, não só dele.

Vale registrar que a story de **criar bolão** é a mais arriscada de todo o
projeto, e não por regra de produto: ela depende inteiramente de uma fonte
de calendário que ainda não foi escolhida (pergunta aberta com prazo
17/08 no épico _Palpite e prazo_).
