# Plano de Ação Lotérica Premiada v2.0 — 0% a 100%

Documento de referência para seguir o passo a passo ao fazer pedidos no chat. Baseado em toda a documentação em `docs/`, rules em `.cursor/rules/` e padrões da plataforma.

**Como usar:** Ao fazer um pedido no chat, cite a fase e o item, ex: "Implementar Fase 3.1 - Services e Controllers da API".

**Como prosseguir (2025-03):** Fases 18–43 documentadas. **Fase 41 concluída.** **Fase 42** implementada (42.1–42.9). **Fase 43** documentada com análise v1→v2 e próximos passos. Ver **"Fase 43"** para ideias novas e ordem de execução.

**Resumo da análise (Mega Loterias vs LP v2):** LP v2 está alinhada em hero, layout, notícias, premiações, depoimentos e fluxo de apostas. **Fluxo ponta a ponta completo:** jogos individuais → bolões → carrinho → finalizar → email confirmação. **Doctor 100% v2:** Erre 4/5/7, Fechamentos, Checkout. **Fase 39 concluída:** segunda via boleto, admin database, E2E wizard criar bolão. **Fase 40 concluída:** missões, comparador bolões, assistente primeira aposta, hub educativo, funil admin. **37.1 cartão direto no carrinho:** implementado (PagamentoCartaoModal + Cielo). Backlog: API Caixa. Próximos passos: Fase 41 (ver seção abaixo).

---

## Estado Atual (o que já foi implementado)

### Já existe
- **frontend/**: Next.js com TypeScript, Tailwind, App Router
- **api/**: API PHP com Router, LoteriaController, ConcursoController, BolaoController, CarrinhoController, Services
- **Docker**: serviço frontend no docker-compose
- **.htaccess**: rota `/api/v2/*` para api/public/index.php
- **Componentes**: Header, Footer, Button, Card, NumeroSelector, Cartela, ResultadoCard, HorarioBloqueioInfo, BetaBanner, TrevoSelector, TimeSelector, MesSelector, PrecoPreview, TestadorPalpite, TabelaProbabilidades, LoginSocialButtons, PromoCashbackBanner, FavoritosSection, LoteriasHomeCards (com badge Acumulou!), PodeConfiarSection, ParceirosSection, BoloesRecomendadosBanner, ChatWidget, PushSubscribeButton, ABTestHero, RaspadinhaCard, EspeciaisHomeSection, CountdownBadge, ShareBolaoButton, FAQAtendimento, AltoContrasteToggle
- **Páginas**: Home, loterias, mega-sena (com volante), lotofacil, quina, lotomania, dupla-sena, timemania, dia-de-sorte, super-sete, mais-milionaria, carrinho, login, cadastro, conta/saldo, conta/jogos, conta/creditos, conta/premiacoes, conta/perfil, conta/resgate, conta/limites, conta/indicacoes, conta/lembretes, conta/assinaturas, conta/fidelidade, conta/performance, conta/preferencias-comunicacao, parceiros, quem-somos, como-funciona, termos, política de privacidade, cookies, premios (com filtro por loteria), ajuda, atendimento, indique, em-construcao, instantaneas, minha-conta (redirect /conta/saldo), admin (dashboard, relatorio, configuracoes, database, pedidos, resgates, afiliados, loterias, matrizes, usuarios, clientes, boloes, concursos, campanhas, depoimentos, noticias, missoes-config, funil)
- **API client**: lib/api/client.ts, loterias.ts, concursos.ts, boloes.ts, auth.ts, carrinho.ts, preco.ts, resultados.ts, conta.ts, creditos.ts, times.ts, config.ts, favoritos.ts, push.ts, instantaneas.ts
- **Endpoints**: GET /api/v2/loterias, /api/v2/loterias/{sigla}, /api/v2/concursos, /api/v2/boloes, /api/v2/times, /api/v2/carrinho, POST /api/v2/carrinho, POST /api/v2/carrinho/finalizar, DELETE /api/v2/carrinho, GET /api/v2/conta/saldo, /api/v2/conta/jogos, /api/v2/conta/premiacoes, /api/v2/conta/perfil, PATCH /api/v2/conta/perfil, /api/v2/conta/resgates, POST /api/v2/conta/resgate, /api/v2/conta/limites, PATCH /api/v2/conta/limites, /api/v2/conta/codigo-indicacao, /api/v2/conta/indicacoes, GET/POST /api/v2/conta/lembretes, DELETE /api/v2/conta/lembretes/{id}, POST /api/v2/conta/excluir, POST /api/v2/conta/estender-teimosinha, GET /api/v2/conta/pedidos-credito, /api/v2/conta/favoritos, POST /api/v2/conta/favoritos, DELETE /api/v2/conta/favoritos/{id}, GET/POST /api/v2/conta/push-subscribe, GET /api/v2/admin/clientes/{id}/extrato, /api/v2/admin/boloes/{id}/compradores, GET /api/v2/admin/resgates, POST /api/v2/admin/resgates/{id}/aprovar, POST /api/v2/admin/resgates/{id}/rejeitar, GET /api/v2/admin/afiliados/pedidos, POST /api/v2/admin/afiliados/pedidos/{id}/aprovar, CRUD admin/loterias, admin/matrizes, admin/usuarios, GET /api/v2/admin/database/backup, POST /api/v2/cron/conferencia-lote (com CRON_SECRET), POST /api/v2/creditos/pedido, POST /api/v2/creditos/pedido/{id}/pix, POST /api/v2/creditos/pedido/{id}/boleto-pagseguro, POST /api/v2/creditos/pedido/{id}/cielo, GET /api/v2/creditos/pedido/{id}, GET /api/v2/creditos/pedido/{id}/boleto, POST /api/v2/conferencia/{id}, GET /api/v2/conferencia/{id}/info, POST /api/v2/conferencia/{id}/notificar, GET /api/v2/config/horarios-bloqueio, /api/v2/config/estatisticas, /api/v2/config/promocoes, /api/v2/config/concursos-home, /api/v2/config/concursos-especiais, /api/v2/config/boloes-recomendados, /api/v2/health, POST /api/v2/auth/login, POST /api/v2/auth/logout, GET /api/v2/auth/me, POST /api/v2/auth/google, POST /api/v2/auth/facebook, GET /api/v2/estatisticas/{sigla}/numeros-mais-sorteados, /maiores-premios, /premios-estado, /testador, GET /api/v2/instantaneas/tipos, POST /api/v2/instantaneas/comprar, GET /api/v2/instantaneas/bilhetes, POST /api/v2/instantaneas/bilhete/{id}/revelar, GET /api/v2/admin/dashboard, GET/POST/PATCH /api/v2/admin/depoimentos, POST /api/v2/admin/depoimentos/{id}/excluir, GET /api/v2/admin/resgates, GET /api/v2/admin/resgates/{id}, GET /api/v2/admin/relatorio/creditos, POST /api/v2/conta/alterar-senha, POST /api/v2/newsletter, GET /api/v2/conta/assinaturas, POST /api/v2/conta/assinaturas, PATCH /api/v2/conta/assinaturas/{id}, DELETE /api/v2/conta/assinaturas/{id}, GET /api/v2/conta/fidelidade, GET /api/v2/conta/fidelidade/historico, GET /api/v2/conta/performance, GET /api/v2/conta/preferencias-comunicacao, PATCH /api/v2/conta/preferencias-comunicacao, GET /api/v2/parceiros, POST /api/v2/cron/assinaturas-gerar-apostas
- **OpenAPI**: api/docs/openapi.yaml
- **Sitemap e robots**: frontend/app/sitemap.ts, robots.ts
- **ADR**: docs/adr/001-estrategia-coexistencia-v2.md
- **Monitoramento**: GA4 (NEXT_PUBLIC_GA_ID), Logger JSON, docs/v2/13-monitoramento.md

### Ainda falta (pós-Fase 20)
- **Fase 19** 19.2 Criar bolão 100% na v2 — **implementado** (Fase 30.3: wizard /criar-bolao, useConcursoCotasWizard em todas loterias, FinalizarService cria grupo+bolão 100% v2).
- **Fase 21** concluída (21.1–21.11: Admin relatório/config/concursos/campanhas/depoimentos, Doctor v2, Criar bolão v2, Countdown).
- **Fase 22** 22.1, 22.3–22.10 implementados (Indique um amigo, Admin Afiliados/Matrizes/Usuários/Loterias, Cron, Histórico indicações, Badge Acumulou!, /minha-conta).
- **Fase 23** Ideias novas (pós-Fase 22): ver seção Fase 23 abaixo. **Fase 23 concluída.**
- **Fase 24** concluída (resgate prêmio 24.1, admin extrato 24.2, admin compradores 24.3, Entenda bolões 24.4, premiações filtro 24.5).
- **Fase 25** concluída (admin resgates 25.1, conta alterar senha 25.2, e-mail resgate aprovado 25.3).
- **Fase 26** Ideias novas (pós-Fase 25): FAQ atendimento, lembrete sorteio, compartilhar bolão, exportar relatório admin, excluir conta LGPD, filtro "sorteio hoje", destaque instantâneas, segunda via boleto, teimosinha estender (stub), modo alto contraste. **Concluída.** Ver seção **Fase 26**.
- **Fase 27, 28, 29 e 30** concluídas. **Fase 31** concluída (31.1–31.8 + 31.B1 Teimosinha estender + 31.B3 Admin Campanhas refinamento). **Fase 32** concluída (32.1–32.8). **Fase 33** concluída (33.1–33.5: assinaturas, fidelidade esqueleto, performance, preferências, parceiros). **Fase 34** concluída (34.1–34.9 implementados). **Fase 35** concluída (35.1–35.8 implementados: carrinho persistido, expirar itens, admin parceiros, cron PIX esquecidos, loterias especiais, comparação resultados, Schema.org, admin imprimir volantes). **Fase 36** concluída (36.1–36.7 implementados; 36.8 e 36.9 em backlog). **Fase 39** concluída (39.1–39.12 implementados). Ver seção **Fase 35**, **Fase 36**, **Fase 39** e **O que falta implementar**.

---

## Status das Fases

**Legenda:** `[x]` concluído | `[~]` parcial | `[ ]` pendente

| Fase | Status | Progresso |
|------|--------|-----------|
| 0. Pré-requisitos | Concluído | 100% |
| 1. Setup e Arquitetura | Concluído | 100% |
| 2. Layout Base | Concluído | 100% |
| 3. API e Integração | Concluído | 100% |
| 4. Módulos Loterias | Concluído | 100% |
| 5. Pagamentos e Conferência | Concluído | 100% |
| 6. SEO, Testes e Deploy | Concluído | 100% |
| 7. Beta e Ajustes | Concluído | 100% |
| 8. Completar Loterias | Concluído | 100% |
| 9. Cliente e Autenticação | Concluído | 100% |
| 10. Pagamentos Adicionais | Concluído | 100% |
| 11. Loterias Especiais | Concluído | 100% |
| 12. Admin | Concluído | 100% |
| 13. Produtos Paralelos | Concluído | 100% |
| 14. Refinamentos e Alinhamento | Concluído | 100% |
| 15. Notícias, Cielo e Ideias Mega Loterias | Concluído | 100% |
| 16. Cadastro, Criar bolão, Link Ver Jogo | Concluído | 100% |
| 17. Ideias Novas Mega Loterias | Concluído | 100% |
| 18. Ideias Novas (pós-Fase 17) | Concluída | 100% |
| 19. Pós-Fase 18 (evoluções) | Concluída | 100% |
| 20. Novas evoluções (pós-19) | Concluída | 100% |
| 21. Ideias Novas (pós-Fase 20) | Concluída | 100% |
| 22. Ideias Novas (pós-Fase 21) | Concluída | 100% |
| 23. Ideias Novas (pós-Fase 22) | Concluída | 100% |
| 24. Ideias Novas (pós-Fase 23) | Concluída | 100% |
| 25. Ideias Novas (pós-Fase 24) | Concluída | 100% |
| 26. Ideias Novas (pós-Fase 25) | Concluída | 100% (26.1–26.8, 26.10 implementados; 26.9 stub) |
| 27. Próxima onda (pós-Fase 26) | Concluída | ~95% (27.1 wizard fechamento, 27.7 campanhas tipo+métricas; Doctor v2 e Teimosinha estender em backlog) |
| 28. Ideias Novas (pós-Fase 27) | Concluída | 100% (28.1–28.4, 28.7–28.10 implementados; 28.5 e 28.6 em backlog) |
| 29. Ideias Novas (pós-Fase 28) | Concluída | 100% (29.1–29.5, 29.7, 29.8 implementados; 29.6 e 29.9 já existiam) |
| 30. Ideias Novas (pós-Fase 29) | Concluída | 100% (30.1–30.9 implementados; 30.5, 30.6, 30.8 já existiam; 30.10 documentado) |
| 31. Ideias Novas (pós-Fase 30) | Concluído | 100% (31.1–31.8 + 31.B1 + 31.B3 implementados; backlog 31.B2) |
| 32. Ideias Novas (pós-Fase 31) | Concluída | 100% (32.1–32.8 implementados; backlog 32.B1) |
| 33. Ideias Novas (pós-Fase 32) | Concluída | 100% (33.1–33.5 implementados; integrações 34.1–34.2 concluídas) |
| 34. Ideias Novas (pós-Fase 33) | Concluída | 100% (34.1–34.9 implementados; backlog 34.B1–B2) |
| 35. Ideias Novas (pós-Fase 34) | Concluída | 100% (35.1–35.8 implementados) |
| 36. Ideias Novas (pós-Fase 35) | Concluída | 100% (36.1–36.7 implementados; 36.8 e 36.9 em backlog) |
| 37. Ideias Novas (pós-Fase 36) | Concluída | 100% (37.1–37.4, 37.7, 37.11, 37.12 implementados via Fases 38–39; Doctor já v2) |
| 38. Ideias Novas (pós-Fase 37) | Concluída | 100% (38.1–38.14 implementados; 38.B1 API Caixa em backlog) |
| 39. Ideias Novas (pós-Fase 38) | Concluída | 100% (39.1–39.12 implementados) |
| 40. Ideias Novas (pós-Fase 39) | Concluída | 100% (40.1–40.5 implementados: missões, comparador, assistente, hub educativo, funil admin) |
| 41. Ideias Novas (pós-Fase 40) | Concluída | 100% |
| 42. Ideias Novas (pós-Fase 41) | Concluída | 42.1–42.9 implementados |
| 43. Ideias Novas (pós-Fase 42) | Documentada | Ver seção Fase 43 abaixo |

---

## Regras Obrigatórias (sempre respeitar)

Consultar antes de implementar:

- **.cursor/rules/plataforma-loterias-padroes.mdc**: view -> BolaoController, CarrinhoUtil, grupo+bolao; condicionais por sigla; numeros_on para campo extra; getBoloesParaVenda filtros
- **.cursor/rules/v2-padroes-desenvolvimento.mdc**: consultar docs/v2/; API Controller -> Service -> DAOs; não alterar src/ legado
- **.cursor/rules/loterias/*.mdc**: regras por loteria (LF, MG, QN, LM, DS, TM, ST, SS, MM)
- **.cursor/rules/loterias-estudo-fluxo.mdc**: referência ao fluxo e conferência
- **.cursor/rules/testes-apos-fase.mdc**: executar testes ao concluir cada fase
- Validar sintaxe PHP (`php -l`) e lints após mudanças

---

## Fase 0: Pré-requisitos e Consolidação (0% - 5%) [Concluído]

### 0.1 Ambiente e ferramentas [x]
- Node.js 18+ e npm/yarn instalados
- PHP 8.1 com extensões: mysqli, pdo, pdo_mysql, mod_rewrite
- Docker e docker-compose (docs/referencias/configuracao-docker.md)
- Git configurado; branch main atualizada

### 0.2 Consolidação de Rules (ideias-melhorias.md seção 15) [x]
- Remover ou referenciar .cursor/rules/mais-milionaria-regras.mdc (se existir)
- Manter apenas .cursor/rules/loterias/mais-milionaria.mdc

### 0.3 Correções em docs [x]
- Corrigir URLs em docs/loterias/fontes-oficiais.md: ttps e htps para https

**Pedido no chat:** "Executar Fase 0 - Consolidação de Rules e correções em docs"

---

## Fase 1: Setup e Arquitetura (5% - 15%) [Concluído]

Ref: docs/v2/05-estrutura-pastas.md, docs/v2/03-estrategia-coexistencia.md

### 1.1 Estrutura de pastas v2.0 [x]
```
loterica-premiada/
├── src/                    # v1.0 intacto
├── frontend/               # Next.js
├── api/                    # API REST PHP
├── docs/
└── .cursor/rules/
```

### 1.2 Inicializar Next.js (se não existir) [x]
- npx create-next-app@latest frontend --typescript --tailwind --app --no-src-dir
- Configurar next.config.js para proxy da API em desenvolvimento
- Estrutura: app/, components/, lib/, types/

### 1.3 Inicializar API PHP (se não existir) [x]
- api/public/index.php como entry point
- api/src/Http/Router.php, Request.php, Response.php
- api/config/ com conexão ao banco (reutilizar config do projeto)
- Roteamento: /api/v2/* para controllers

### 1.4 Configurar coexistência [x]
- Definir mecanismo: subdomínio, query param ou cookie (docs/v2/03-estrategia-coexistencia.md)
- Configurar .htaccess ou nginx para /v2 ao Next.js
- Documentar em docs/adr/

### 1.5 Docker para v2.0 [x]
- Serviço Next.js no docker-compose.yml (porta 3000)
- API acessa banco MySQL compartilhado
- Variáveis: NEXT_PUBLIC_API_URL, API_BASE_URL

**Pedido no chat:** "Implementar Fase 1 - Setup e Arquitetura (se ainda faltar algo)"

---

## Fase 2: Layout Base e Design System (15% - 30%) [Concluído]

Ref: docs/v2/06-layout-ux.md, docs/referencias/mega-loterias-layout.md

### 2.1 Layout de referência [x]
- Hero: "Aposte agora na melhor Loteria Online"
- 3 passos: Adicione ao carrinho, Pague, O resto fazemos por você
- Depoimentos: Carrossel
- Boletim diário: Newsletter
- Estatísticas: Prêmios pagos, maior prêmio
- Notícias: Cards por categoria

### 2.2 Componentes base [x]
- components/layout/Header.tsx: Nav, Meu Saldo, Meus Jogos, Login, Cadastre-se, Carrinho com contador
- components/layout/Footer.tsx: Cookies, Política de Privacidade
- components/ui/: Botões, inputs, cards (Tailwind)
- Cores por loteria: docs/loterias/siglas-e-identificadores.md (BolaoController::$styleBoloes)

### 2.3 Usabilidade 18+ [x]
- Contraste WCAG AA
- Tipografia mínima 16px
- Botões grandes e clicáveis
- Navegação por teclado
- Mensagens de erro claras

### 2.4 Páginas estáticas [x]
- Home (/v2 ou /)
- Footer: termos, como-funciona, quem-somos
- Página em construção para rotas não implementadas

**Pedido no chat:** "Implementar Fase 2 - Layout Base e Design System"

---

## Fase 3: API e Integração com Banco (30% - 45%) [Concluído]

Ref: docs/v2/04-arquitetura.md, docs/arquitetura-atual/daos-e-persistencia.md

### 3.1 Services e Controllers da API [x]
- api/src/Controller/LoteriaController.php -> LoteriaService
- api/src/Controller/BolaoController.php -> BolaoService
- api/src/Controller/ConcursoController.php -> ConcursoService
- api/src/Controller/CarrinhoController.php -> CarrinhoService
- Services orquestram DAOs via dao(), getGrupoDao(), getBolaoDao(), etc.

### 3.2 Endpoints essenciais [x]
- GET /api/v2/loterias
- GET /api/v2/loterias/{sigla}
- GET /api/v2/concursos?id_loteria=X
- GET /api/v2/boloes?id_loteria=X&id_concurso=Y (GrupoDao::getBoloesParaVenda: individual=0, cotas disponíveis, não bloqueado)

### 3.3 Cliente API no frontend [x]
- lib/api/client.ts com base URL
- lib/api/loterias.ts, boloes.ts, concursos.ts
- Tratamento de erros padronizado

### 3.4 Autenticação [x]
- Definir: JWT ou sessão compartilhada
- POST /api/v2/auth/login, POST /api/v2/auth/logout, GET /api/v2/auth/me
- Middleware de autenticação na API

### 3.5 Documentação da API [x]
- OpenAPI/Swagger em api/docs/
- Exemplos request/response
- Códigos de erro padronizados

**Pedido no chat:** "Implementar Fase 3 - API e Integração com Banco"

---

## Fase 4: Módulos Loterias, Bolões e Carrinho (45% - 70%) [Concluído]

Ref: docs/v2/07-seo.md, docs/loterias/regras-por-modalidade.md, docs/loterias/fluxo-jogos-individuais-boloes-conferencia.md, docs/arquitetura-atual/fluxo-bolao-carrinho.md

### 4.1 Páginas por loteria [x]
URLs: /mega-sena, /lotofacil, /quina, /lotomania, /dupla-sena, /timemania, /dia-de-sorte, /super-sete, /mais-milionaria
Subrotas: /{loteria}/como-jogar, /{loteria}/resultados, /{loteria}/boloes

### 4.2 Componentes por loteria [x]
- components/loteria/NumeroSelector.tsx (reutilizável)
- components/loteria/Cartela.tsx
- components/loteria/ResultadoCard.tsx
- Campo extra: ST (MesSelector), MM (TrevoSelector), TM (TimeSelector) — componentes específicos

### 4.3 Regras por modalidade (consultar .cursor/rules/loterias/*.mdc) [x]
- LF: 15-20 de 25
- MG: 6-20 de 60
- QN: 5-15 de 80
- LM: 50 de 00-99
- DS: dois sorteios
- TM: time
- ST: mês (último elemento)
- SS: formato XY (coluna.dígito)
- MM: dezenas + trevos, numeros_on

### 4.4 Fluxo "Faça seu jogo" (jogos individuais) [x]
1. Usuário escolhe dezenas (+ campo extra se houver)
2. Frontend monta payload: sigla, numeros, mes?, id_time?, trevos?
3. POST /api/v2/carrinho -> CarrinhoService::addItemFromPayload -> CarrinhoUtil::addItem
4. MM: trevos[] + numeros_on com qtdDezenas, qtdTrevos
5. ST: mes (1-12) no payload
6. TM: id_time no payload
7. SS: formato XY (coluna.dígito) — pendente

### 4.5 Validação e preço [x]
- Backend: validar limites de marcação
- MM: validar C(dezenas,6)*C(trevos,2) antes de persistir
- Preview de preço em tempo real
- Tabela de preços oficiais em config ou banco

### 4.6 Bolões [x]
- Página "Criar bolão" por loteria (loteria=MG, LF, etc.)
- Listagem: GrupoDao::getBoloesParaVenda
- Filtro por concurso
- Fechamento: BolaoController::fazer_meu_fechamentoAction

### 4.7 Carrinho [x]
- Página carrinho: itens da sessão
- API: CarrinhoController -> CarrinhoUtil
- Persistir carrinho no banco para usuários logados
- Expirar itens quando concurso já sorteado

### 4.8 Resultados [x]
- Página resultados por loteria
- Último concurso, histórico
- MM: formatar trevos; SS: formatar por coluna
- Comparação automática: destacar números da aposta do usuário

**Pedido no chat:** "Implementar Fase 4 - Módulos Loterias, Bolões e Carrinho"

---

## Fase 5: Pagamentos, Usuário e Conferência (70% - 85%) [Concluído]

Ref: docs/arquitetura-atual/modulos-controllers.md, docs/loterias/fluxo-jogos-individuais-boloes-conferencia.md

### 5.1 Área do cliente [x]
- Login, cadastro (fluxo v1.0 via API)
- [x] Painel: Meus Jogos, Meu Saldo (GET /api/v2/conta/saldo, /api/v2/conta/jogos)
- [x] Páginas frontend conta/saldo, conta/jogos integradas
- Endereços, perfil (UsuarioDao, UsuarioEnderecoDao)

### 5.2 Créditos e pagamentos [x]
- Integrações: PagSeguro, Mercado Pago, Gerencianet, Cielo
- [x] API: CreditoPedidoDao, fluxo de compra de créditos (CreditoService, CreditoController)
- [x] POST /api/v2/creditos/pedido (criar), POST /api/v2/creditos/pedido/{id}/pix (gerar PIX estático), GET /api/v2/creditos/pedido/{id}
- [x] Webhook Gerencianet: POST /api/v2/webhooks/gerencianet para liberar créditos automaticamente
- [x] Frontend: página /conta/creditos para comprar créditos

### 5.3 Finalização de compra [x]
- [x] Carrinho -> finalizar -> grupo + bolao (POST /api/v2/carrinho/finalizar)
- [x] individual=1 (jogos individuais), individual=0 (bolões)
- [x] FinalizarService orquestra GrupoDao, BolaoDao, ClienteJogoDao
- [x] Pagamento com crédito e/ou prêmio

### 5.4 Conferência (backend v1.0) [x]
- ConcursoController::conferirAction — não alterar lógica (usa ConcursoControllerForApi que sobrescreve redirect)
- [x] API: POST /api/v2/conferencia/{id} (conferir), GET /api/v2/conferencia/{id}/info
- [x] ConferenciaService orquestra _conferirBolao; resultado_premiacao por faixa e multiplicadores
- Por sigla: MM (2+1 até 6+2), SS (por coluna), ST (mês separado), TM (time), DS (dois sorteios) — lógica em src/
- [x] Processar em fila: parâmetros limit/offset no body para concursos grandes

### 5.5 Notificações [x]
- [x] E-mail quando premiado: POST /api/v2/conferencia/{id}/notificar (usa notificar_premiadosAction)
- [x] Histórico de premiações: GET /api/v2/conta/premiacoes, página /conta/premiacoes

**Pedido no chat:** "Implementar Fase 5 - Pagamentos, Usuário e Conferência"

---

## Fase 6: SEO, Testes e Deploy (85% - 95%) [Concluído]

Ref: docs/v2/07-seo.md, docs/loterias/ideias-melhorias.md (seções 8-11)

### 6.1 SEO [x]
- [x] SSR/SSG com Next.js
- [x] Sitemap dinâmico (todas loterias, como-jogar, resultados, boloes)
- [x] Schema.org: Organization, WebSite (layout.tsx)
- [x] Meta tags: title, description, og:*, twitter:*, metadataBase
- [x] URLs canônicas (alternates.canonical)
- [x] Palavras-chave: loteria online, apostar mega-sena, etc.

### 6.2 Testes [x]
- [x] PrecoServiceTest, CarrinhoServiceTest, FinalizarServiceTest
- [x] LoteriaServiceTest, BolaoServiceTest, ResultadoServiceTest
- [x] BolaoMMGeradorScriptTest
- [x] Integração: FinalizarServiceTest (validações carrinho + finalizar)
- Executar: `bash scripts/run-tests.sh`

### 6.3 Segurança e conformidade [x]
- [x] Jogo responsável: link para ajuda, Jogadores Anônimos no footer
- [x] Verificação 18+ no cadastro e páginas de aposta

### 6.4 Acessibilidade [x]
- [x] Skip link "Pular para o conteúdo principal"
- [x] NumeroSelector com aria-label, aria-pressed

### 6.5 Staging e deploy [x]
- [x] deploy.sh: build Next.js, chown condicional
- [x] docs/v2/09-deploy-rollback.md

**Pedido no chat:** "Implementar Fase 6 - SEO, Testes e Deploy"

---

## Fase 7: Beta e Ajustes (95% - 100%) [Concluído]

Ref: docs/v2/10-checklist-beta.md, docs/loterias/ideias-melhorias.md (seções 10-13)

### 7.1 Monitoramento [x]
- [x] GA4: NEXT_PUBLIC_GA_ID no layout (docs/v2/13-monitoramento.md)
- [x] Logs estruturados: Api\Util\Logger (JSON)
- [x] Sentry: documentado em docs/v2/13-monitoramento.md
- [x] Uptime: /api/v2/health e endpoints documentados

### 7.2 Backup e infra [x]
- [x] docs/v2/11-backup-restore.md: script backup, restore, cache Redis

### 7.3 Horários de bloqueio [x]
- [x] GET /api/v2/config/horarios-bloqueio (ConfigController)
- [x] HorarioBloqueioInfo nas páginas MG, LF, ST, TM, MM

### 7.4 Beta [x]
- [x] NEXT_PUBLIC_BETA_ENABLED + BetaBanner com link para feedback
- [x] docs/v2/10-checklist-beta.md atualizado

### 7.5 Cutover [x]
- [x] docs/v2/12-cutover.md: checklist, data, rollback

**Pedido no chat:** "Implementar Fase 7 - Beta e Ajustes"

---

## Fase 8: Completar Loterias (100% - 105%) [Concluído]

Ref: docs/v2/15-analise-completa-planos-futuros.md, .cursor/rules/loterias/*.mdc

### 8.1 Quina [x]
- NumeroSelector 1-80, 5-15 números
- Remover "em breve", adicionar volante e fluxo carrinho

### 8.2 Lotomania [x]
- NumeroSelector 00-99, 50 números fixos
- Remover "em breve"

### 8.3 Dupla Sena [x]
- NumeroSelector 1-50, 6-15 números (dois sorteios)
- Remover "em breve"

### 8.4 Super Sete [x]
- Componente 7 colunas x 1 dígito (0-9), formato XY (coluna.dígito)
- Remover "em breve"

**Pedido no chat:** "Implementar Fase 8 - Completar Loterias"

---

## Fase 9: Cliente e Autenticação (105% - 110%) [Concluído]

Ref: src/Cliente/Controller/ClienteController.php (v1)

### 9.1 Recuperar senha [x]
- API: obter código, validar código, alterar senha
- Frontend: fluxo completo (solicitar, validar, redefinir)

### 9.2 Endereços [x]
- API: CRUD endereços (ClienteEnderecoCoreDAO)
- Frontend: formulário em conta

### 9.3 Perfil [x]
- Editar nome, telefone, data nascimento

**Pedido no chat:** "Implementar Fase 9 - Cliente e Autenticação"

---

## Fase 10: Pagamentos Adicionais (110% - 115%) [Concluído]

Ref: src/Credito/Controller/Pagamento*.php (v1)

### 10.1 Mercado Pago [x]
- API: POST /creditos/pedido/{id}/mp (criar preferência), webhook GET/POST /webhooks/mercadopago
- Frontend: botão MP

### 10.2 PagSeguro [x]
- API: GET /creditos/pagseguro/session, POST /creditos/pedido/{id}/boleto-pagseguro
- Frontend: botão Boleto PagSeguro

### 10.3 Cielo [x]
- API: POST /creditos/pedido/{id}/cielo integrado com developercielo/api-3.0-php (Fase 18.5)
- Frontend: formulário cartão na página de créditos

**Pedido no chat:** "Implementar Fase 10 - Pagamentos Adicionais"

---

## Fase 11: Loterias Especiais (115% - 118%) [Concluído]

Ref: BolaoController::fazer_meu_fechamento_mega_da_virada (v1)

### 11.1 Mega da Virada [x]
- Subrota /mega-sena/mega-da-virada
- Regras específicas de premiação

### 11.2 Dupla de Páscoa [x]
- Subrota /dupla-sena/dupla-de-pascoa

### 11.3 Lotofácil Independência [x]
- Subrota /lotofacil/lotofacil-independencia

### 11.4 Quina de São João [x]
- Subrota /quina/quina-sao-joao

**Pedido no chat:** "Implementar Fase 11 - Loterias Especiais"

---

## Fase 12: Admin (opcional, 118% - 125%) [Concluído]

Ref: src/Admin/, src/Credito/Controller/GerenciarPedidosCreditoController.php (v1)

### 12.1 Admin API [x]
- Auth admin (POST /api/v2/admin/auth/login, logout, me), endpoints protegidos

### 12.2 Admin frontend [x]
- Next.js em /admin (layout com sidebar, login em /admin/login)

### 12.3 Gerenciar pedidos crédito [x]
- Listar, aprovar, rejeitar (GET/POST /api/v2/admin/pedidos)

### 12.4 Gerenciar clientes [x]
- Listar, editar, bloquear (GET/PATCH/POST /api/v2/admin/clientes)

### 12.5 Gerenciar bolões [x]
- Listar grupos, bloquear/desbloquear (GET/POST /api/v2/admin/boloes)

**Pedido no chat:** "Implementar Fase 12 - Admin"

---

## Fase 13: Produtos Paralelos (opcional) [Concluído]

### 13.1 Doctor [x]
- Lotofácil Doctor: landing (/doctor), checkout (/doctor/checkout), fechamentos (/doctor/fechamentos)
- Checkout e fechamentos redirecionam para v1 legado

### 13.2 Afiliado [x]
- Programa de afiliados: landing em /afiliado

### 13.3 Campanha [x]
- Campanhas de marketing: landing em /campanha

### 13.4 Depoimentos [x]
- API GET /api/v2/depoimentos
- Carrossel de depoimentos na home
- Página /depoimentos com lista completa
- Link no footer

**Pedido no chat:** "Implementar Fase 13 - Produtos Paralelos"

---

## Fase 14: Refinamentos e Alinhamento ao Mega Loterias (125% - 130%) [Concluído]

Ref: docs/referencias/mega-loterias-layout.md, análise v2 e próximos passos

### 14.1 Atualizar tabela de status [x]
- Corrigir status das Fases 8-13 no plano

### 14.2 API estatísticas + home com valores reais [x]
- GET /api/v2/config/estatisticas (total_premios_pagos, maior_premio)
- Dados de premio_resgatar (status=2 aprovado)
- Home: substituir "Em breve" por valores reais

### 14.3 Página Premiações com listagem real [x]
- API GET /api/v2/premios (Top N premiações pagas)
- Página /premios com tabela: loteria, valor, data, cotas, link Apostar

### 14.4 Newsletter funcional [x]
- API POST /api/v2/newsletter (email)
- Tabela newsletter (db/migrations/006_newsletter.sql)
- Frontend: formulário com submit e feedback

### 14.5 Banner de cookies (LGPD) [x]
- Componente CookieConsent com localStorage
- Link para política de privacidade

### 14.6 Seções "Por que escolher" e "E se premiado?" na home [x]
- Cards: praticidade, preço baixo, atendimento, pagamentos
- Explicação: prêmio vira saldo, resgate para conta bancária

### 14.7 Página /atendimento [x]
- Página /atendimento com FAQ e e-mail de contato
- Link no footer

### 14.8 Header condicional (saldo quando logado) [x]
- Exibir "Meu Saldo R$ X" via GET /api/v2/conta/saldo
- Links condicionais Login/Cadastre-se vs Minha Conta

**Pedido no chat:** "Implementar Fase 14 - Refinamentos e Alinhamento"

---

## Fase 15: Notícias, Cielo e Ideias Mega Loterias (130% - 140%) [Concluído]

Ref: Mega Loterias, docs/loterias/ideias-melhorias.md

### 15.1 Seção Notícias na home [x]
- Cards de notícias em destaque (3-6 cards)
- Título: "Confira as notícias em destaque"
- Link "Ver todas" para /noticias
- API: GET /api/v2/noticias?limit=6 (ou dados estáticos inicialmente)

### 15.2 Página /noticias [x]
- Listagem de notícias com paginação
- Categorias: Dicas, Mega da Virada, Sorteios Especiais, Acumuladas, Lotéricas
- Filtro por loteria (Mega-Sena, Lotofácil, etc.)
- Cards com título, resumo, data, categoria
- SEO: meta dinâmica, schema Article

### 15.3 Notícias por loteria [x]
- Subrotas: /mega-sena/noticias, /lotofacil/noticias, etc.
- Últimas notícias da loteria específica
- Link "Confira" na página da loteria

### 15.4 Backend notícias [x]
- Tabela `noticia` (id, titulo, slug, resumo, conteudo, categoria, id_loteria, data_publicacao, ativo)
- API: GET /api/v2/noticias, GET /api/v2/noticias/{slug}
- Migração SQL
- Admin: CRUD notícias (opcional)

### 15.5 Cielo (cartão) [x]
- API: POST /creditos/pedido/{id}/cielo integrado com developercielo/api-3.0-php
- Variáveis: CIELO_MERCHANT_ID, CIELO_MERCHANT_KEY, CIELO_SANDBOX
- Frontend: formulário cartão na página de créditos (tokenização backend ou client-side)

### 15.6 Ideias UX (Mega Loterias + ideias-melhorias.md) [x]
- **Surpresinha inteligente:** opção "números quentes" (mais sorteados) ou "números frios"
- **Teimosinha visual:** indicador de concursos restantes
- **Simulador de bolão:** "Se o bolão ganhar R$ X, cada cota recebe R$ Y"
- **Link "Ver Jogo" em premiações:** abrir detalhes do bolão premiado

**Pedido no chat:** "Implementar Fase 15 - Notícias e Cielo"

---

## Fase 16: Proximos Desenvolvimentos (140% - 150%) [Concluído]

Ref: Mega Loterias, docs/loterias/ideias-melhorias.md

### 16.1 Cadastro funcional [x]
- Formulário completo: nome, email, CPF, telefone, data nascimento, senha
- API: POST /api/v2/auth/cadastro (ou endpoint equivalente)
- Validação 18+, LGPD
- Integração com ClienteDao legado

### 16.2 Criar bolão [x]
- Substituir CriarBolaoPlaceholder
- Fluxo: escolher loteria → concurso → fechamento → cotas → criar grupo
- API: POST /api/v2/boloes (criar bolão)
- Redirecionar para v1 legado se necessário (BolaoController::fazer_meu_fechamentoAction)

### 16.3 Link "Ver Jogo" em premiações [x]
- PremiosController: retornar codigo/slug do grupo para URL amigável
- Frontend: link `/{loteria}/boloes?grupo={id}` ou `/{loteria}/boloes/{codigo}`
- Página de bolões: suportar filtro por grupo

### 16.4 Refinamentos notícias [x]
- Busca em /noticias (API: ?q=termo)
- Grid "Confira por loteria" (cards MG, LF, QN, etc.)
- Notícias para LM, DS, TM, ST, SS, MM (subrotas)

### 16.5 Cielo integração completa [x]
- SDK Cielo (developercielo/api-3.0-php) integrado em CreditoService
- Credenciais via CIELO_MERCHANT_ID, CIELO_MERCHANT_KEY
- Tokenização backend (sandbox) ou client-side (produção)

**Pedido no chat:** "Implementar Fase 16.X - [item]"

---

## Fase 17: Ideias Novas Mega Loterias (150% - 165%) [Concluído]

Ref: https://www.megaloterias.com.br/, docs/loterias/ideias-melhorias.md

### 17.1 Estatísticas por loteria [x]
- Subrotas: `/{loteria}/estatisticas/numeros-que-mais-saem`, `/{loteria}/estatisticas/maiores-premios`, `/{loteria}/estatisticas/premios-estado`
- API: GET /api/v2/estatisticas/{sigla}/numeros-mais-sorteados, /maiores-premios, /premios-estado
- Dados: ConcursoDao + premio_resgatar; calcular frequência por dezena nos últimos N concursos
- SEO: meta dinâmica, schema para dados estruturados

### 17.2 Testador de Palpite [x]
- Ferramenta "Testar números" antes de apostar: quantas vezes cada dezena foi sorteada, dezenas atrasadas
- Botão "Usar Números" para aplicar na aposta
- Integrar na página da loteria (ex: modal ou seção colapsável)
- API: GET /api/v2/estatisticas/{sigla}/testador?numeros=1,2,3,4,5,6

### 17.3 Atendimento ampliado [x]
- **WhatsApp:** link fixo no header/footer e página /atendimento (ex: api.whatsapp.com/send?phone=...)
- **Chat online:** widget ou página (opcional; avaliar custo)
- Horários: "Segunda a domingo, 24h" (ou conforme operação)

### 17.4 Tabela de probabilidades [x]
- Página como-jogar: tabela completa de probabilidades (ex: Mega-Sena 6-20 números, Quadra/Quina/Sena)
- Dados oficiais Caixa; atualizar conforme regras
- Aplicável: MG, LF, QN, LM, DS, TM, ST, SS, MM (conforme modalidade)

### 17.5 Categorias de notícias [x]
- Adicionar: `promocoes`, `curiosidades` às categorias existentes
- Admin: incluir nas opções de CATEGORIAS
- Frontend: filtro em /noticias

### 17.6 Login social (opcional) [x]
- Cadastro/login com Google e Facebook (OAuth)
- API: POST /api/v2/auth/google, /api/v2/auth/facebook (ou callback)
- Avaliar complexidade e compliance

### 17.7 Promoções e cashback (opcional) [x]
- Ex.: "Mega-Sena Turbinada" — cashback em apostas
- Requer: regras de negócio, tabela promoções, integração com finalização

**Pedido no chat:** "Implementar Fase 17.X - [item]"

---

## Fase 18: Ideias Novas (pós-Fase 17) — 165%+ [Concluído]

Ref: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/, docs/loterias/ideias-melhorias.md

*Excluído tudo que LP v2 já possui (ver "Estado Atual" e "Já existe").*

### 18.1 Valor estimado em destaque na home [x]
- **Descrição:** Cards de loterias na home com valor estimado do prêmio, data do sorteio, número do concurso e badge "Acumulou!" quando aplicável. CTA "Faça seu jogo" e "Ver bolões".
- **Inspiração:** Sorte Online (layout home com cards por loteria)
- **Prioridade:** Alta (conversão, urgência)
- **Esforço:** Baixo (dados em GET /api/v2/concursos; componente LoteriasHomeCards)
- **Compatibilidade:** Respeita v2-padroes; API concursos já retorna valor, data_sorteio, numero

### 18.2 Seção "Pode confiar" / selos de confiança [x]
- **Descrição:** Seção com selos: "X anos no mercado", "R$ Y milhões distribuídos", "Saque instantâneo", "Bilhete digitalizado". Dados de config ou estáticos.
- **Inspiração:** Sorte Online (lp parceiros — "PODE CONFIAR!")
- **Prioridade:** Média (confiança, conversão)
- **Esforço:** Baixo (componente estático + GET /api/v2/config/estatisticas para valores)
- **Compatibilidade:** Usar config existente; sem alteração em src/ legado

### 18.3 "Onde você encontra" / parceiros [x]
- **Descrição:** Seção com logos de parceiros (PicPay, PagBank, Banco Inter, etc.) e links para ofertas/cashback. Requer parcerias comerciais.
- **Inspiração:** Sorte Online (lp.sorteonline.com.br/ofertas-de-parceiros)
- **Prioridade:** Média (confiança, parcerias — só se houver acordos)
- **Esforço:** Baixo (componente + config de parceiros)
- **Compatibilidade:** Conteúdo configurável; sem regras de loteria

### 18.4 Bolões recomendados em destaque [x]
- **Descrição:** Na home ou página de bolões, destaque "Bolões recomendados" com número de chances (ex: "18.066 chances") e CTA.
- **Inspiração:** Sorte Online (home — "ATÉ 18.066 CHANCES")
- **Prioridade:** Média (conversão)
- **Esforço:** Médio (API agregar cotas disponíveis; componente)
- **Compatibilidade:** GrupoDao::getBoloesParaVenda; nova query ou endpoint

### 18.5 Cielo integração completa [x]
- **Descrição:** Checkout cartão com SDK Cielo; tokenização no frontend (PCI compliance); webhook ou polling para confirmação.
- **Inspiração:** Mega Loterias, Sorte Online (pagamento cartão)
- **Prioridade:** Alta (conversão — quando credenciais disponíveis)
- **Esforço:** Alto (SDK, credenciais, PCI)
- **Compatibilidade:** API stub existe; seguir CreditoService

### 18.6 Chat online completo [x]
- **Descrição:** Widget ou página de chat 24h (ex: Tawk.to, Zendesk). WhatsApp já implementado.
- **Inspiração:** Mega Loterias
- **Prioridade:** Baixa (avaliar custo/benefício)
- **Esforço:** Baixo a médio (widget externo)
- **Compatibilidade:** Sem impacto em regras

### 18.7 Push notifications de resultados [x]
- **Descrição:** Notificar usuário quando premiado (após conferência). Web Push ou e-mail já existe.
- **Inspiração:** ideias-melhorias.md
- **Prioridade:** Média (retenção, UX)
- **Esforço:** Médio (Web Push API, Service Worker)
- **Compatibilidade:** PWA já existe; integrar com conferência

### 18.9 A/B test de layout [x]
- **Descrição:** Medir conversão entre layouts (ex: hero alternativo, ordem de loterias).
- **Inspiração:** ideias-melhorias.md
- **Prioridade:** Baixa (otimização)
- **Esforço:** Médio (GA4 experiments ou ferramenta dedicada)
- **Compatibilidade:** Sem alteração de regras

### 18.10 Instantâneas (raspadinha) [x]
- **Descrição:** Jogos instantâneos — produto paralelo. Protótipo implementado.
- **Inspiração:** Sorte Online
- **Prioridade:** Baixa (produto diferente)
- **Esforço:** Muito alto (novo domínio)
- **Implementação:** Protótipo/demo: página /instantaneas, API, tabelas, componente RaspadinhaCard com efeito de raspar. Lotex oficial é operada pela Caixa; integração futura requer licenciamento.

### Ordem sugerida de execução (Fase 18)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | Cielo completo | Alta conversão (quando credenciais) |
| 2 | 18.1 Valor estimado na home | Quick win, alta conversão |
| 3 | 18.2 Selos "Pode confiar" | Quick win, confiança |
| 4 | 18.3 Parceiros | Se houver parcerias |
| 5 | 18.4 Bolões recomendados | Se métricas justificarem |
| 6 | 18.7 Push notifications | Retenção |
| 7 | 18.6 Chat online | Avaliar custo |

---

## Fase 19: Pós-Fase 18 — Evoluções (170%+) [Concluído]

Ref: docs/loterias/ideias-melhorias.md, análise de próximos passos

*Itens para desenvolvimento completo da plataforma após conclusão da Fase 18.*

### 19.1 Completar área do cliente [x]
- **Descrição:** Endereços e perfil completos na v2. ViaCEP na página /conta/enderecos; API e frontend já existiam.
- **Prioridade:** Alta (conta do cliente completa)
- **Esforço:** Médio
- **Compatibilidade:** API conta/enderecos, conta/perfil; frontend /conta/enderecos, /conta/perfil

### 19.2 Criar bolão 100% na v2 [x]
- **Descrição:** Fluxo completo na v2 (POST /boloes + wizard /criar-bolao). Proxy /criar-fechamento-* permanece para Doctor. Wizard: loteria → concurso → cotas → link para página da loteria com ?concurso=&cotas=; useConcursoCotasWizard em todas loterias; FinalizarService cria grupo+bolão 100% v2.
- **Prioridade:** Alta (fluxo central para bolões)
- **Esforço:** Alto
- **Compatibilidade:** next.config.js rewrite; BolaoController::fazer_meu_fechamentoAction (v1)
- **Implementado:** Fase 30.3

### 19.4 Documentação OpenAPI [x]
- **Descrição:** api/docs/openapi.yaml expandido com conta/perfil, conta/enderecos (GET/POST/PUT/DELETE); securitySchemes sessionCookie.
- **Prioridade:** Média (manutenção)
- **Esforço:** Médio
- **Ref:** ideias-melhorias.md §9

### 19.5 Carrinho persistente [x]
- **Descrição:** Já implementado: CarrinhoService carregarCarrinhoUsuarioSeLogado/persistirCarrinhoUsuarioSeLogado; CarrinhoUsuarioCoreDAO; migration 002_carrinho_usuario.sql
- **Prioridade:** Média (retenção, UX)
- **Esforço:** Médio
- **Ref:** ideias-melhorias.md §4

### 19.6 Staging e testes E2E [x]
- **Descrição:** docs/v2/staging-e2e.md com guia de configuração, dados anonimizados, checklist smoke, referência a suite-completa-total.sh e Playwright.
- **Prioridade:** Alta (segurança antes de produção)
- **Esforço:** Alto
- **Ref:** ideias-melhorias.md §11

### 19.7 Configuração de credenciais em produção [x]
- **Descrição:** docs/v2/credenciais-producao.md, api/.env.example, frontend/.env.example (CHAT_WIDGET_ID).
- **Prioridade:** Alta (Cielo, Push, Chat funcionais)
- **Esforço:** Baixo (configuração)

### Ordem sugerida de execução (Fase 19)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 19.7 Configurar credenciais | Ativar recursos já implementados |
| 2 | 19.1 Área do cliente completa | Conta do cliente 100% |
| 3 | 19.2 Criar bolão na v2 | Fluxo central bolões |
| 4 | 19.4 Documentação OpenAPI | Manutenção |
| 5 | 19.5 Carrinho persistente | Retenção |
| 6 | 19.6 Staging + E2E | Segurança |

**Pedido no chat:** "Implementar Fase 19.X - [item]"

---

## Fase 20: Novas evoluções (pós-19) — 175%+ [Concluído]

Ref: docs/loterias/ideias-melhorias.md §§4–11, análise de próximos passos

*Itens de ideias-melhorias.md e operação ainda não cobertos nas Fases 17–19.*

### 20.1 Webhooks de pagamento [x]
- **Descrição:** docs/v2/webhooks-pagamento.md; Gerencianet e Mercado Pago já implementados; Cielo é síncrono.
- **Prioridade:** Alta (automação, UX)
- **Esforço:** Médio
- **Ref:** ideias-melhorias.md §6

### 20.2 Monitoramento (Sentry, GA4) [x]
- **Descrição:** lib/gtag.ts (sign_up, begin_checkout, purchase, login); docs/v2/monitoramento-sentry.md; NEXT_PUBLIC_GA_ID em .env.example.
- **Prioridade:** Alta (detectar problemas cedo)
- **Esforço:** Baixo
- **Ref:** ideias-melhorias.md §10

### 20.3 Códigos de erro padronizados na API [x]
- **Descrição:** api/src/Http/ApiError.php; Router usa jsonError() com code/message.
- **Prioridade:** Média (manutenção)
- **Esforço:** Baixo
- **Ref:** ideias-melhorias.md §9

### 20.4 Jogo responsável [x]
- **Descrição:** Footer com link Jogadores Anônimos; role/aria-label; página /ajuda com reforço.
- **Prioridade:** Média (compliance)
- **Esforço:** Baixo
- **Ref:** ideias-melhorias.md §§5, 13

### 20.5 Backup e restore documentado [x]
- **Descrição:** docs/runbook-backup.md com mysqldump, restore, cron, retenção.
- **Prioridade:** Média (operação)
- **Esforço:** Baixo
- **Ref:** ideias-melhorias.md §11

### 20.6 Acessibilidade (WCAG) [x]
- **Descrição:** docs/v2/acessibilidade-wcag.md; skip link, lang, aria-labels, touch targets já existentes.
- **Prioridade:** Média (inclusão)
- **Esforço:** Médio
- **Ref:** ideias-melhorias.md §12

### 20.7 Cache de resultados/bolões [x]
- **Descrição:** docs/v2/cache-resultados-boloes.md com estratégia (memória, Redis, HTTP Cache).
- **Prioridade:** Média (performance)
- **Esforço:** Médio
- **Ref:** ideias-melhorias.md §11

### 20.8 Conferência em fila [x]
- **Descrição:** docs/v2/conferencia-fila.md com abordagens (queue, chunking, cron).
- **Prioridade:** Baixa (escala)
- **Esforço:** Alto
- **Ref:** ideias-melhorias.md §4

### 20.9 ADR para decisões arquiteturais [x]
- **Descrição:** docs/adr/002-carrinho-persistente.md, 003-codigos-erro-api.md.
- **Prioridade:** Baixa (longo prazo)
- **Esforço:** Baixo
- **Ref:** ideias-melhorias.md §14

### Ordem sugerida de execução (Fase 20)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 20.1 Webhooks | Automação de créditos |
| 2 | 20.2 Monitoramento | Detectar erros e conversão |
| 3 | 20.3 Códigos de erro | API consistente |
| 4 | 20.4 Jogo responsável | Compliance |
| 5 | 20.5 Backup documentado | Operação |
| 6 | 20.6 Acessibilidade | Inclusão |
| 7 | 20.7 Cache | Performance |
| 8 | 20.8 Conferência em fila | Escala |
| 9 | 20.9 ADR | Documentação |

**Pedido no chat:** "Implementar Fase 20.X - [item]"

---

## Fase 21: Ideias Novas (pós-Fase 20) — 180%+ [Concluído]

Ref: análise src/ v1, frontend/, admin v1 vs v2, https://www.megaloterias.com.br/, https://www.sorteonline.com.br/, docs/loterias/ideias-melhorias.md

*Excluído tudo que LP v2 já possui (ver "Estado Atual" e "Já existe").*

### 21.1 Especiais em destaque na home [x]
- **Descrição:** Seção separada no topo da home com loterias especiais (Mega da Virada, Dupla de Páscoa, Quina de São João, Lotofácil Independência) com valor estimado em destaque, badge "Especial" e CTA. Sorte Online coloca esses cards no topo com layout diferenciado.
- **Inspiração:** Sorte Online (home — especiais em primeiro)
- **Prioridade:** Alta (conversão, urgência sazonal)
- **Esforço:** Baixo (API concursos-home já retorna; adicionar flag `especial`; componente EspeciaisHomeSection)
- **Compatibilidade:** Respeita v2-padroes; ConcursoDao/GrupoDao por sigla especial (MGE, DSE, QNE, LFE)

### 21.2 Admin: Dashboard com métricas [x]
- **Descrição:** Página /admin com resumo: lucro hoje/semana, total clientes, pedidos pendentes, jogos feitos, visitas. v1 tem AdminController::indexAction com esses dados.
- **Inspiração:** src/Admin/Controller/AdminController.php
- **Prioridade:** Alta (gestão operacional)
- **Esforço:** Médio (API GET /api/v2/admin/dashboard; frontend admin/page.tsx)
- **Compatibilidade:** Usar CreditoPedidoDao, PremioResgatarDao, ClienteDao, BolaoDao legados via Service

### 21.3 Admin: Relatório financeiro [x]
- **Descrição:** Relatório de créditos aprovados por mês, resgates, cadastros. v1 tem RelatorioController::creditosAction.
- **Inspiração:** src/Relatorio/Controller/RelatorioController.php
- **Prioridade:** Alta (gestão financeira)
- **Esforço:** Médio (API GET /api/v2/admin/relatorio/creditos; frontend admin/relatorio/page.tsx)
- **Compatibilidade:** CreditoPedidoDao, PremioResgatarDao, ClienteDao

### 21.4 Admin: Configurações da plataforma [x]
- **Descrição:** CRUD de configurações (gateway, MP, PagSeguro, SMTP, e-mail contato, site em manutenção, promoções, bônus). v1 tem Admin/ContaController.
- **Inspiração:** src/Admin/View/Conta/index.php, ConfiguracoesPlataformaCoreDAO
- **Prioridade:** Alta (operação sem depender v1)
- **Esforço:** Alto (API GET/PATCH /api/v2/admin/config; frontend admin/configuracoes; formulário extenso)
- **Compatibilidade:** ConfiguracoesPlataformaCoreDAO; não alterar src/ legado

### 21.5 Admin: Gerenciar concursos [x]
- **Descrição:** Listar concursos, cadastrar novo concurso. v1 tem Bolao/ConcursoController::create, index.
- **Inspiração:** src/Bolao/View/Concurso/create.php, ConcursoDao
- **Prioridade:** Média (operação)
- **Esforço:** Médio (API CRUD concursos; frontend admin/concursos)
- **Compatibilidade:** ConcursoDao, ConcursoCoreDAO

### 21.6 Admin: Gerenciar depoimentos [x]
- **Descrição:** CRUD de depoimentos exibidos na home. v1 tem DepoimentosController.
- **Inspiração:** src/Depoimentos/
- **Prioridade:** Média (conteúdo)
- **Esforço:** Baixo (API CRUD; frontend admin/depoimentos; DepoimentosCoreDAO)
- **Compatibilidade:** DepoimentosCoreDAO

### 21.7 Admin: Gerenciar campanhas [x]
- **Descrição:** Listar e editar campanhas de marketing. v1 tem CampanhaController.
- **Inspiração:** src/Campanha/
- **Prioridade:** Baixa (marketing)
- **Esforço:** Médio (CampanhaCoreDAO, VizualizacaoLinkCampanhaCoreDAO)
- **Compatibilidade:** Tabelas campanha, tipo_campanha

### 21.8 Criar bolão 100% na v2 [x]
- **Descrição:** Fluxo completo na v2 (POST /api/v2/boloes) sem proxy para v1. Wizard: loteria → concurso → fechamento → cotas → criar grupo.
- **Inspiração:** BolaoController::fazer_meu_fechamentoAction (v1)
- **Prioridade:** Alta (fluxo central bolões)
- **Esforço:** Alto
- **Compatibilidade:** GrupoDao, BolaoDao, BolaoMMGerador; proxy já existe em next.config.js
- **Implementado:** POST /api/v2/boloes aceita `{ jogos: [...] }`, processa e adiciona ao carrinho (BolaoCriarService)

### 21.10 Countdown para sorteio na home [x]
- **Descrição:** Timer "Faltam X horas para o sorteio" nos cards de loteria. Aumenta urgência.
- **Inspiração:** Sorte Online, Mega Loterias (sensação de urgência)
- **Prioridade:** Média (conversão)
- **Esforço:** Baixo (data_sorteio já em API; componente CountdownBadge)
- **Compatibilidade:** Sem alteração backend

### 21.11 Lotofácil Doctor integrado na v2 [x]
- **Descrição:** Páginas Doctor (Erre 4, 5, 7, fechamentos, checkout) na v2 em vez de redirecionar para v1.
- **Inspiração:** src/Doctor/, menu_padrao_admin.php
- **Prioridade:** Baixa (produto paralelo)
- **Esforço:** Muito alto (Lógica de fechamentos, LotofacilDoctorController)
- **Compatibilidade:** Manter proxy para v1 como fallback
- **Implementado:** API Doctor (gerar-apostas-erre, gerar-apostas-fechamento, conferir, adicionar-ao-carrinho); frontend /doctor, /doctor/erre-4, erre-5, erre-7, /doctor/fechamentos, /doctor/checkout (v2, sem redirect; checkout orienta a gerar jogos e ir ao carrinho).

### Ordem sugerida de execução (Fase 21)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 21.1 Especiais em destaque | Quick win, conversão sazonal |
| 2 | 21.2 Admin Dashboard | Gestão operacional |
| 3 | 21.3 Admin Relatório | Gestão financeira |
| 4 | 21.4 Admin Configurações | Independência do v1 |
| 5 | 21.8 Criar bolão v2 | Fluxo central |
| 6 | 21.5 Admin Concursos | Operação |
| 7 | 21.10 Countdown | Conversão |
| 8 | 21.6 Admin Depoimentos | Conteúdo |
| 9 | 21.7 Admin Campanhas | Marketing |
| 10 | 21.11 Doctor v2 | Produto paralelo |

**Pedido no chat:** "Implementar Fase 21.X - [item]"

---

## Fase 22: Ideias Novas (pós-Fase 21) — Migração v1→v2 e Inspiração [Concluído]

Ref: análise completa src/ v1, frontend/, admin v1 vs v2, https://www.megaloterias.com.br/, https://www.sorteonline.com.br/, docs/loterias/ideias-melhorias.md

*Excluído tudo que LP v2 já possui (ver "Estado Atual" e "Já existe"). Baseado em gaps de migração v1→v2 e referências de concorrentes.*

### 22.1 Indique um amigo (programa de indicação) [x]
- **Descrição:** Página /indique com link único por cliente, compartilhamento via WhatsApp. Cadastro aceita parâmetros `code` e `campaing` para vincular indicado ao indicador. Se indicado comprar R$25+, indicador recebe R$25 em crédito.
- **Inspiração:** v1 (LoteriaController::indiqueAction, Loteria/View/Loteria/indique.php)
- **Prioridade:** Alta (conversão, aquisição orgânica)
- **Esforço:** Médio (API GET /api/v2/conta/codigo-indicacao; CadastroService aceitar code/campaing; frontend /indique; ComprasCreditoLinkCoreDAO)
- **Compatibilidade:** ClienteDao, ComprasCreditoLinkCoreDAO; não alterar src/ legado

### 22.3 Admin: Gerenciar Pedidos Afiliado [x]
- **Descrição:** Listar e aprovar pedidos de afiliados (comissões por compra de indicados). v1 tem GerenciarPedidosAfiliadoController.
- **Inspiração:** v1 (Afiliado/Controller/GerenciarPedidosAfiliadoController.php)
- **Prioridade:** Média (se programa afiliados ativo)
- **Esforço:** Médio (API GET/POST /api/v2/admin/afiliados/pedidos; frontend admin/afiliados)
- **Compatibilidade:** ComprasCreditoLinkCoreDAO

### 22.4 Admin: Matrizes de bolões [x]
- **Descrição:** CRUD de matrizes de bolões. v1 tem MatrizController para criar/editar matrizes.
- **Inspiração:** v1 (Bolao/Controller/MatrizController.php)
- **Prioridade:** Baixa (operação interna)
- **Esforço:** Médio (API CRUD matrizes; frontend admin/matrizes)
- **Compatibilidade:** BolaoDao, tabelas matriz

### 22.5 Admin: Usuários (admin) [x]
- **Descrição:** CRUD de usuários administrativos (não clientes). v1 tem UsuarioController.
- **Inspiração:** v1 (Usuario/Controller/UsuarioController.php)
- **Prioridade:** Baixa (gestão de acesso admin)
- **Esforço:** Médio (API CRUD usuarios; frontend admin/usuarios)
- **Compatibilidade:** UsuarioDao, UsuarioPerfilDao

### 22.6 Admin: Loterias CRUD [x]
- **Descrição:** Cadastrar e editar loterias no sistema. v1 tem LoteriaController::create, edit, buscar.
- **Inspiração:** v1 (Loteria/Controller/LoteriaController.php)
- **Prioridade:** Baixa (operação interna)
- **Esforço:** Baixo (API CRUD; frontend admin/loterias; LoteriaDao)
- **Compatibilidade:** LoteriaDao

### 22.7 Cron / Tarefas automatizadas [x]
- **Descrição:** Endpoints ou scripts para verificação de pagamentos (MP, PagSeguro), conferência em lote, envio de lembretes. v1 tem TarefasCronController.
- **Inspiração:** v1 (Admin/Controller/TarefasCronController.php)
- **Prioridade:** Média (operação)
- **Esforço:** Alto (cron jobs, documentação runbook)
- **Compatibilidade:** CreditoPedidoDao, ConcursoController

### 22.8 Conta: Histórico de indicações [x]
- **Descrição:** Na área do cliente, mostrar quantos amigos indicou, quantos compraram, créditos ganhos. Requer 22.1 Indique um amigo.
- **Inspiração:** Sorte Online (programa de indicação)
- **Prioridade:** Média (UX após 22.1)
- **Esforço:** Baixo (API GET /api/v2/conta/indicacoes; frontend conta/indicacoes)
- **Compatibilidade:** ComprasCreditoLinkCoreDAO

### 22.9 Badge "Acumulou!" mais proeminente [x]
- **Descrição:** Destacar visualmente quando prêmio acumulou nos cards de loteria (home e /loterias). Mega/Sorte usam esse destaque para urgência.
- **Inspiração:** Mega Loterias, Sorte Online (cards com "Acumulou!")
- **Prioridade:** Média (conversão)
- **Esforço:** Baixo (LoteriasHomeCards já usa badge; reforçar estilo)
- **Compatibilidade:** Sem alteração backend

### 22.10 Página /minha-conta (alias unificado) [x]
- **Descrição:** Rota /minha-conta que redireciona ou agrega dashboard do cliente (saldo, jogos, premiações, créditos, perfil). Mega/Sorte usam "Minha Conta".
- **Inspiração:** Mega Loterias (/minha-conta/meus-jogos)
- **Prioridade:** Baixa (SEO, UX)
- **Esforço:** Baixo (redirect ou layout agregador)
- **Compatibilidade:** Sem alteração backend

### Ordem sugerida de execução (Fase 22)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 22.1 Indique um amigo | Alta conversão, aquisição orgânica |
| 2 | 22.8 Histórico indicações | Complementa 22.1 |
| 3 | 22.9 Badge Acumulou! | Quick win, conversão |
| 4 | 22.3 Admin Afiliados | Se programa ativo |
| 5 | 22.7 Cron/Tarefas | Operação |
| 6 | 22.6 Admin Loterias | Independência v1 |
| 7 | 22.4 Admin Matrizes | Operação |
| 8 | 22.5 Admin Usuários | Gestão acesso |
| 9 | 22.10 Minha conta | SEO |

**Pedido no chat:** "Implementar Fase 22.X - [item]"

---

## Fase 23: Ideias Novas (pós-Fase 22) — Migração, Inspiração e Refinamentos [Concluído]

Ref: análise completa src/ v1, frontend/, docs/plano-acao-v2-completo.md, docs/loterias/ideias-melhorias.md, https://www.megaloterias.com.br/, https://www.sorteonline.com.br/

*Itens que LP v2 ainda NÃO possui. Excluído tudo já listado em "Estado Atual" e "Já existe".*

### 23.1 Limite de depósito ou aposta por período (jogo responsável) [x]
- **Descrição:** Permitir que o cliente defina limite de depósito ou valor máximo de aposta por dia/semana/mês. Exibir na área do cliente e bloquear novas apostas/depósitos ao atingir o limite. Opcional: autoexclusão temporária.
- **Inspiração:** docs/loterias/ideias-melhorias.md §13 (Jogo Responsável); práticas Mega Loterias / Sorte Online e compliance.
- **Prioridade:** Média (compliance, confiança)
- **Esforço:** Médio (tabela cliente_limite ou configuração em conta; validação em CreditoService e FinalizarService; frontend conta/limites)
- **Compatibilidade:** Não alterar src/ legado; usar API v2 e Core DAOs se necessário.
- **Implementado:** Migration 013_cliente_limite.sql, ClienteLimiteCoreDAO, GET/PATCH /api/v2/conta/limites, ClienteService::getLimites/updateLimites/podeDepositar/podeApostar, validação em CreditoService e FinalizarService, página /conta/limites.

### 23.2 Cron / Tarefas automatizadas (runbook e endpoints v2) [x]
- **Descrição:** Documentar runbook de tarefas (checar pagamentos MP/PagSeguro, conferência em lote, envio de lembretes). Opcionalmente expor endpoints protegidos na API v2 (ex: POST /api/v2/cron/checar-pagamentos com token secreto) para executar via cron sem depender do v1.
- **Inspiração:** v1 (Admin/Controller/TarefasCronController.php)
- **Prioridade:** Média (operação, independência do v1)
- **Esforço:** Alto (runbook em docs/; opcional: CronController v2 com autenticação por token/IP)
- **Compatibilidade:** CreditoPedidoDao, ConcursoController; não duplicar lógica, apenas orquestrar.
- **Implementado:** docs/runbook-cron.md, CronController, POST /api/v2/cron/conferencia-lote com CRON_SECRET, variável CRON_SECRET em api/.env.example e docs/v2/credenciais-producao.md.

### 23.3 Login modal no header (opcional) [x]
- **Descrição:** Em vez de redirecionar para /login, abrir modal/drawer de login no header (e-mail/senha e links para cadastro e recuperar senha). Após sucesso, fechar modal e atualizar estado do header.
- **Inspiração:** Sorte Online (acesso rápido à conta no header)
- **Prioridade:** Baixa (UX)
- **Esforço:** Baixo (componente ModalLogin + estado no Header; reutilizar lib/api/auth)
- **Compatibilidade:** Sem alteração backend.
- **Implementado:** components/auth/LoginModal.tsx, Header abre modal ao clicar em Login quando não logado.

### 23.4 Número dinâmico "X chances" em bolões recomendados [x]
- **Descrição:** Na seção de bolões recomendados (home ou /loterias), exibir número dinâmico do tipo "ATÉ 18.066 CHANCES" (soma de cotas disponíveis dos bolões em destaque), vindo da API.
- **Inspiração:** Sorte Online (home — "ATÉ 18.066 CHANCES")
- **Prioridade:** Baixa (conversão, refinamento)
- **Esforço:** Baixo (GET /api/v2/config/boloes-recomendados já existe; retornar total_chances; componente BoloesRecomendadosBanner exibir valor)
- **Compatibilidade:** GrupoDao::getBoloesParaVenda; agregar cotas no backend.
- **Implementado:** BoloesRecomendadosBanner exibe "ATÉ X CHANCES" em destaque (texto maior, estilo Sorte).

### 23.5 Log de auditoria de conferência [x]
- **Descrição:** Registrar em log/tabela quem conferiu qual grupo/concurso, quando e resultado resumido (premiados ou não). Facilita suporte e auditoria.
- **Inspiração:** docs/loterias/ideias-melhorias.md §4 (Conferência — "Log de auditoria")
- **Prioridade:** Baixa (operação, suporte)
- **Esforço:** Médio (tabela conferencia_log ou uso de Logger; chamar após ConferenciaService)
- **Compatibilidade:** ConferenciaService; não alterar ConcursoController legado.
- **Implementado:** Migration 014_conferencia_audit_log.sql, ConferenciaService::logAuditConferencia() chamado ao final de conferir().

### Ordem sugerida de execução (Fase 23)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 23.2 Cron runbook/endpoints v2 | Operação, independência v1 |
| 2 | 23.1 Limite depósito/aposta | Compliance, jogo responsável |
| 3 | 23.4 Número dinâmico chances | Quick win, conversão |
| 4 | 23.3 Login modal | UX |
| 5 | 23.5 Log auditoria conferência | Suporte |

**Pedido no chat:** "Implementar Fase 23.X - [item]"

---

## Fase 24: Ideias Novas (pós-Fase 23) — Gaps de migração v1→v2 e inspiração Mega/Sorte [Concluído]

Ref: análise completa `src/` v1, `frontend/`, `api/`, docs/plano-acao-v2-completo.md, docs/loterias/ideias-melhorias.md, https://www.megaloterias.com.br/, https://www.sorteonline.com.br/

*Excluído tudo que LP v2 já possui (ver "Estado Atual" e "Já existe"). Itens já documentados nas Fases 21–23 (Doctor 21.11, Admin Campanhas 21.7) permanecem como pendentes nas respectivas fases.*

### Migração v1 → v2 (cliente e admin)

### 24.1 Conta: Solicitar resgate de prêmio [x]
- **Descrição:** No v1 o cliente solicita resgate do saldo de prêmio para conta bancária (ClienteController/painel com botão "CONFIRMAR", PremioResgatarController). Na v2 há texto "solicitar o resgate no menu do cliente" em home, premios e atendimento, mas não existe fluxo: nem endpoint POST para criar pedido de resgate nem página /conta/resgate (ou equivalente). Implementar: API POST /api/v2/conta/resgate (valor, dados bancários ou id_endereco), listagem GET /api/v2/conta/resgates; frontend /conta/resgate com formulário e histórico; integração com PremioResgatarDao/ClienteExtratoDao sem alterar src/ legado.
- **Inspiração:** v1 (Premio/Controller/PremioResgatarController.php, Cliente/View/Cliente/painel.php)
- **Prioridade:** Alta (conversão, confiança — cliente precisa conseguir sacar prêmio)
- **Esforço:** Médio (API + validações + frontend; dados bancários já em endereço ou específicos para resgate)
- **Compatibilidade:** PremioResgatarDao, ClienteExtratoDao; não alterar src/ legado; usar Core DAOs ou API v2.
- **Implementado:** ResgateService, GET /api/v2/conta/resgates, POST /api/v2/conta/resgate, página /conta/resgate com formulário e histórico de resgates; lib/api/conta.ts (getResgates, solicitarResgate).

#### 24.2 Admin: Extrato do cliente [x]
- **Descrição:** No v1 o admin vê o extrato (cliente_extrato) do cliente em GerenciarClientesController::extratoAction. Na v2 a página admin/clientes/[id] não tem aba ou link para extrato. Adicionar: API GET /api/v2/admin/clientes/{id}/extrato (ou incluir no GET cliente); frontend: aba ou seção "Extrato" na página de detalhe do cliente com listagem (tipo, valor, data).
- **Inspiração:** v1 (Cliente/Controller/GerenciarClientesController.php::extratoAction, View/GerenciarClientes/extrato_cliente.php)
- **Prioridade:** Média (suporte, operação)
- **Esforço:** Baixo (endpoint + tabela na tela existente)
- **Compatibilidade:** ClienteExtratoDao ou Core DAO equivalente.
- **Implementado:** AdminClienteController::extrato, AdminClienteService::getExtrato, GET /api/v2/admin/clientes/{id}/extrato; admin/clientes/[id] com seção "Ver extrato" expansível e tabela de lançamentos.

#### 24.3 Admin: Bolão — lista de compradores [x]
- **Descrição:** No v1 em GerenciarBoloesController::compradoresAction o admin vê a lista de compradores (clientes/cotas) do bolão. Na v2 a página admin/boloes/[id] mostra apenas dados do grupo (nome, loteria, concurso, cotas, bloqueio), sem lista de compradores. Adicionar: API GET /api/v2/admin/boloes/{id}/compradores (ou incluir no GET grupo); frontend: seção "Compradores" na página de detalhe do bolão com tabela (cliente, cotas, valor).
- **Inspiração:** v1 (Bolao/Controller/GerenciarBoloesController.php::compradoresAction, View/GerenciarBoloes/compradores.php)
- **Prioridade:** Média (operação, suporte)
- **Esforço:** Médio (query de compradores por grupo; frontend)
- **Compatibilidade:** GrupoDao/BolaoDao legados; tabelas grupo, bolao, cliente_jogo.
- **Implementado:** AdminBolaoController::compradores, AdminBolaoService::getCompradores, GET /api/v2/admin/boloes/{id}/compradores; admin/boloes/[id] com seção "Ver compradores" expansível e tabela.

### Inspiração Mega Loterias / Sorte Online (apenas o que LP v2 ainda NÃO tem)

#### 24.4 Seção "Entenda os bolões" na home ou /loterias [x]
- **Descrição:** Sorte Online exibe bloco explicativo: "Aposta simples = 1 chance", "O bolão aumenta suas chances", "No tradicional bolão...", "ATÉ X CHANCES" com texto educativo. LP v2 já tem BoloesRecomendadosBanner com número dinâmico de chances (Fase 23.4). Falta reforçar a explicação para quem não conhece bolão: curto texto + ícones ou cards ("1 aposta = 1 chance", "Bolão = mais chances", link para /loterias ou bolões).
- **Inspiração:** Sorte Online (home — "Entenda os bolões do Sorte Online", "APOSTA SIMPLES = 1 CHANCE", "NOSSOS BOLÕES ATÉ 18.066 CHANCES")
- **Prioridade:** Média (conversão, educação)
- **Esforço:** Baixo (componente estático ou com dados de config; sem nova API)
- **Compatibilidade:** Sem alteração de regras; mobile-first conforme v2-mobile-otimizado.mdc.
- **Implementado:** Componente EntendaBoloesSection na home; texto educativo + link "Ver todas as loterias e bolões".

#### 24.5 Premiações: filtro por loteria [x]
- **Descrição:** Mega Loterias exibe "Pagos na [Nome da Loteria]" com link para premiações filtradas. Na v2 a página /premios lista premiações sem filtro por loteria. Adicionar: filtro (dropdown ou tabs) por loteria na página /premios; API GET /api/v2/premios já pode aceitar query ?id_loteria=X (se premio_resgatar tiver id_loteria ou via vínculo com jogos); caso não haja id_loteria em premio_resgatar, exibir filtro por nome/loteria associada ao jogo (requer join).
- **Inspiração:** Mega Loterias ("Pagos na {{prizes.lotteryName}}")
- **Prioridade:** Baixa (SEO, UX)
- **Esforço:** Baixo a médio (depende se premio_resgatar tem id_loteria; frontend filtro simples)
- **Compatibilidade:** PremiosController, PremioResgatarDao; verificar schema premio_resgatar.
- **Implementado:** PremiosController aceita ?sigla=; componente PremiosFiltroLoteria em /premios; searchParams.sigla para filtrar.

### Referência a pendentes já documentados (não duplicar)

- **Doctor integrado v2:** Fase 21.11 — páginas Doctor na v2 sem redirecionar v1.
- **Admin Campanhas frontend completo:** Fase 21.7 — API existe; garantir listagem/edição no admin.

### Ordem sugerida de execução (Fase 24)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 24.1 Solicitar resgate de prêmio | Essencial para o cliente sacar; alta prioridade |
| 2 | 24.2 Admin Extrato cliente | Operação e suporte |
| 3 | 24.3 Admin Bolão compradores | Operação e suporte |
| 4 | 24.4 Seção Entenda os bolões | Quick win, conversão |
| 5 | 24.5 Premiações filtro por loteria | Refinamento UX/SEO |

**Pedido no chat:** "Implementar Fase 24.X - [item]"

---

## Fase 25: Ideias Novas (pós-Fase 24) — Gaps migração v1→v2 e inspiração [Concluído]

Ref: análise completa `src/` v1, `frontend/`, `api/`, docs/plano-acao-v2-completo.md, docs/loterias/ideias-melhorias.md, https://www.megaloterias.com.br/, https://www.sorteonline.com.br/

*Excluído tudo que LP v2 já possui (Estado Atual, Já existe, Fase 24 concluída). Itens já documentados nas Fases 21–23 (Doctor 21.11, Admin Campanhas 21.7, etc.) permanecem nas respectivas fases.*

### 25.1 Admin: Gerenciar pedidos de resgate de prêmio [x]
- **Descrição:** No v1 o admin lista pedidos de resgate (premio_resgatar), visualiza detalhes e aprova ou rejeita (PremioResgatarController::formAction, aprovarAction). Na v2 o cliente já pode solicitar resgate (24.1), mas não existe tela no admin para listar e aprovar/rejeitar esses pedidos. Implementar: API GET /api/v2/admin/resgates (listar com filtro status), GET /api/v2/admin/resgates/{id}, POST /api/v2/admin/resgates/{id}/aprovar, POST /api/v2/admin/resgates/{id}/rejeitar; frontend admin/resgates com listagem e ações.
- **Inspiração:** v1 (Premio/Controller/PremioResgatarController.php — form, aprovar, listagem admin)
- **Prioridade:** Alta (operação — sem isso o admin não consegue liberar o resgate para o cliente)
- **Esforço:** Médio (API + frontend admin; PremioResgatarDao já existe; descontar prêmio e registrar extrato ao aprovar, como no v1)
- **Compatibilidade:** PremioResgatarDao, ClienteDao (atualizarPremio), ClienteExtratoDao; não alterar src/ legado.
- **Implementado:** AdminResgateService, AdminResgateController, rotas GET/POST admin/resgates, página /admin/resgates com filtro por status, aprovar e rejeitar. Ao rejeitar: devolve prêmio ao cliente e registra extrato.

### 25.2 Conta: Alterar senha (usuário logado) [x]
- **Descrição:** No v1 o cliente logado pode alterar a própria senha em ClienteController::alterar_senhaAction (view minha_senha). Na v2 existe recuperar senha (fluxo por e-mail), mas não existe "Alterar senha" na área do cliente. Implementar: API POST /api/v2/conta/alterar-senha (senha_atual, senha_nova); frontend em /conta/perfil ou /conta/seguranca com formulário (senha atual + nova + confirmação).
- **Inspiração:** v1 (Cliente/Controller/ClienteController.php::alterar_senhaAction, View/Cliente/minha_senha.php); Mega Loterias, Sorte Online (área logada)
- **Prioridade:** Média (segurança, UX)
- **Esforço:** Baixo (endpoint + validação senha atual; frontend simples)
- **Compatibilidade:** ClienteDao ou AuthService; não alterar src/ legado.
- **Implementado:** ClienteService::alterarSenha, POST /api/v2/conta/alterar-senha, seção "Alterar senha" em /conta/perfil com senha atual, nova e confirmação (md5 compatível v1).

### 25.3 Notificação por e-mail quando resgate aprovado (opcional) [x]
- **Descrição:** Ao aprovar um pedido de resgate no admin (25.1), enviar e-mail ao cliente informando que o resgate foi aprovado e o valor será transferido. v1 pode usar Email na aprovação; verificar se já envia. Se não, integrar envio no ResgateService ou no futuro AdminResgateService ao aprovar.
- **Inspiração:** docs/loterias/ideias-melhorias.md §1 (Notificação de premiação); boas práticas UX
- **Prioridade:** Baixa (UX, transparência)
- **Esforço:** Baixo (reutilizar canal de e-mail existente; template simples)
- **Compatibilidade:** Depende de 25.1; sem alterar src/ legado.
- **Implementado:** AdminResgateService::enviarEmailResgateAprovado chamado ao aprovar; usa Krypitonite\Mail\Email::bodyPedidoResgateAprovado quando disponível.

### Referência a pendentes já documentados (não duplicar)

- **Doctor integrado v2:** Fase 21.11
- **Admin Campanhas frontend completo:** Fase 21.7

### Ordem sugerida de execução (Fase 25)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 25.1 Admin Gerenciar pedidos de resgate | Operação essencial para liberar resgates |
| 2 | 25.2 Conta Alterar senha | Segurança e paridade com v1 |
| 3 | 25.3 E-mail resgate aprovado | Refinamento (após 25.1) |

**Pedido no chat:** "Implementar Fase 25.X - [item]"

---

## Fase 26: Ideias Novas (pós-Fase 25) — Análise v1, frontend, Mega/Sorte e ideias-melhorias [Concluído]

**Status da fase:** Concluída. Itens 26.1 a 26.8 e 26.10 implementados; 26.9 documentado como stub (docs/v2/teimosinha-estender.md).

Ref: análise completa `src/` v1, `frontend/`, `api/`, docs/plano-acao-v2-completo.md, docs/loterias/ideias-melhorias.md, https://www.megaloterias.com.br/, https://www.sorteonline.com.br/, .cursor/rules/

*Excluído tudo que LP v2 já possui (Estado Atual, Já existe, Fases 18–25). Pendentes já documentados: Doctor v2 21.11, Admin Campanhas 21.7, Badge Acumulou! 22.9, /minha-conta 22.10.*

### Gaps de migração v1 → v2 (resumo)

| Item | Fase | Prioridade | Esforço |
|------|------|------------|---------|
| Badge "Acumulou!" mais proeminente | 22.9 | Média | Baixo |
| Página /minha-conta (alias/dashboard) | 22.10 | Baixa | Baixo |
| Criar bolão 100% na v2 (sem proxy v1) | 19.2 / 21.8 | Alta | Alto |
| Doctor integrado v2 (sem redirecionar v1) | 21.11 | Baixa | Muito alto |
| Admin Campanhas / Afiliados frontend completo | 21.7 / 22.3 | Média | Médio |

### Ideias novas (apenas o que LP v2 ainda NÃO tem)

#### 26.1 FAQ de atendimento por categoria [x]
- **Descrição:** Na página /atendimento ou /ajuda, FAQ expansível por categoria (Pagamento, Conta, Premiação, Resgate, Bolões). Mega Loterias e Sorte Online organizam dúvidas por tema.
- **Inspiração:** Mega Loterias (atendimento), Sorte Online (FAQ)
- **Prioridade:** Média (UX, redução de suporte)
- **Esforço:** Baixo (conteúdo + componente accordion; dados estáticos ou config)
- **Compatibilidade:** Sem alteração backend; mobile-first.
- **Status:** [x] Componente FAQAtendimento.tsx (accordion por categoria); uso em /atendimento.

#### 26.2 Lembrete antes do sorteio [x]
- **Descrição:** "Me avise 1h antes do sorteio" por loteria/concurso. v1 tem estrutura (cliente_lembrete, script enviar-lembretes). Na v2: API GET/POST/DELETE /api/v2/conta/lembretes; frontend em /conta ou na página da loteria (toggle por concurso).
- **Inspiração:** docs/loterias/ideias-melhorias.md §1 (Notificação); conversão e retenção
- **Prioridade:** Alta (conversão, retenção)
- **Esforço:** Médio (API + cron/envio e-mail; frontend)
- **Compatibilidade:** Tabela cliente_lembrete; não alterar src/ legado.
- **Status:** [x] ClienteLembreteCoreDAO; ClienteService getLembretes/addLembrete/removeLembrete; GET/POST /conta/lembretes, DELETE /conta/lembretes/{id}; página /conta/lembretes; link em /conta/saldo.

#### 26.3 Compartilhar bolão / link nas redes [x]
- **Descrição:** Botão "Compartilhar" na página do bolão ou em "Ver Jogo" (WhatsApp, Twitter/X, copiar link). Aumenta divulgação orgânica.
- **Inspiração:** Mega Loterias, Sorte Online (compartilhamento social)
- **Prioridade:** Média (SEO, aquisição)
- **Esforço:** Baixo (Web Share API + fallback; URL canônica do bolão)
- **Compatibilidade:** Sem alteração backend.
- **Status:** [x] ShareBolaoButton (Web Share API + fallback WhatsApp e copiar link); uso em BolaoCard com slug do bolão.

#### 26.4 Admin: Exportar relatório (CSV/Excel) [x]
- **Descrição:** No relatório financeiro (admin/relatorio), botão "Exportar" para CSV ou Excel (creditos por período, resgates, cadastros). Facilita gestão e contabilidade.
- **Inspiração:** Operação típica de painéis admin
- **Prioridade:** Média (operação)
- **Esforço:** Baixo (mesmos dados do GET /api/v2/admin/relatorio/creditos; formato CSV no backend ou frontend)
- **Compatibilidade:** AdminRelatorioController; sem alterar src/ legado.
- **Status:** [x] exportRelatorioCreditosCSV em lib/api/admin.ts (gera CSV no cliente); botão "Exportar CSV" em admin/relatorio.

#### 26.5 Conta: Excluir minha conta (LGPD) [x]
- **Descrição:** Na área do cliente, opção "Excluir minha conta" (direito ao esquecimento). Fluxo: confirmar senha, anonimizar ou remover dados pessoais, manter registros contábeis conforme LGPD.
- **Inspiração:** docs/loterias/ideias-melhorias.md §5 (LGPD); compliance
- **Prioridade:** Média (compliance, confiança)
- **Esforço:** Médio (API POST /api/v2/conta/excluir ou similar; política de retenção; frontend com confirmação)
- **Compatibilidade:** ClienteDao; não alterar src/ legado; documentar em política de privacidade.
- **Status:** [x] ClienteService::excluirConta(senha); POST /conta/excluir; seção "Excluir minha conta" em /conta/perfil (confirmação + senha).

#### 26.6 Filtro "Sorteio hoje" em bolões [x]
- **Descrição:** Na listagem de bolões (por loteria ou /loterias), filtro ou badge "Sorteio hoje" para destacar concursos com data_sorteio = hoje. Aumenta urgência e conversão.
- **Inspiração:** Sorte Online, Mega Loterias (ênfase em data do sorteio)
- **Prioridade:** Média (conversão)
- **Esforço:** Baixo (GET /api/v2/boloes já retorna data_sorteio; frontend filtro ou destaque)
- **Compatibilidade:** GrupoDao::getBoloesParaVenda; condicional por data.
- **Status:** [x] BolaoLista: state sorteioHoje, filtro por data_sorteio de hoje, checkbox "Sorteio hoje"; BolaoCard: badge "Sorteio hoje" quando sorteio é hoje.

#### 26.7 Destaque Instantâneas na home [x]
- **Descrição:** Seção ou card na home: "Aposte em loterias ou compre Instantâneas" com CTA para /instantaneas. Sorte Online coloca as duas opções em destaque no topo.
- **Inspiração:** Sorte Online ("Você pode apostar em loterias ou comprar Instantâneas")
- **Prioridade:** Baixa (produto paralelo; depende de instantâneas em produção)
- **Esforço:** Baixo (componente estático ou link em hero/lateral)
- **Compatibilidade:** Página /instantaneas já existe.
- **Status:** [x] Seção na home com CTA para /instantaneas ("Aposte em loterias ou compre Instantâneas").

#### 26.8 Segunda via de boleto / consultar boleto [x]
- **Descrição:** Na área do cliente (ex.: histórico de pedidos de crédito), link "Ver boleto" ou "Segunda via" para pedidos pagos via PagSeguro boleto. Reduz suporte e melhora UX.
- **Inspiração:** Prática comum em e-commerce
- **Prioridade:** Baixa (UX)
- **Esforço:** Médio (API PagSeguro para consultar transação; exibir URL ou PDF)
- **Compatibilidade:** CreditoPedidoDao (guardar id_transacao ou link); não alterar src/ legado.
- **Status:** [x] GET /conta/pedidos-credito; seção "Seus pedidos" em /conta/creditos com link "Ver boleto" quando `link_boleto` existir.

#### 26.9 Teimosinha: comprar mais concursos (estender) [~]
- **Descrição:** Na área "Meus Jogos", permitir estender teimosinha (ex.: comprar mais 2 concursos para o mesmo jogo). v1 pode ter fluxo similar; na v2: endpoint para adicionar concursos a um jogo existente.
- **Inspiração:** ideias-melhorias.md §1 (Teimosinha visual); retenção
- **Prioridade:** Baixa (retenção)
- **Esforço:** Alto (regras de negócio por loteria; carrinho + grupo/bolao)
- **Compatibilidade:** ClienteJogoDao, GrupoDao; condicionais por sigla.
- **Status:** Documentado em docs/v2/teimosinha-estender.md (stub; implementação futura).

#### 26.10 Modo alto contraste (acessibilidade) [x]
- **Descrição:** Toggle no header ou footer para ativar modo alto contraste (CSS). Ajuda usuários com baixa visão; alinhado a docs/v2/acessibilidade-wcag.md.
- **Inspiração:** ideias-melhorias.md §12 (WCAG)
- **Prioridade:** Baixa (inclusão)
- **Esforço:** Baixo (variável CSS + preferência em localStorage)
- **Compatibilidade:** Sem alteração backend.
- **Status:** [x] Variável CSS + `data-alto-contraste` no `<html>`; toggle no footer (AltoContrasteToggle); persistência em localStorage (`lp-alto-contraste`).

### Ordem sugerida de execução (Fase 26)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 26.2 Lembrete antes do sorteio | Alta conversão e retenção |
| 2 | 26.1 FAQ atendimento por categoria | Reduz suporte, UX |
| 3 | 26.4 Admin exportar relatório | Operação |
| 4 | 26.3 Compartilhar bolão | Aquisição orgânica |
| 5 | 26.6 Filtro "Sorteio hoje" | Quick win, conversão |
| 6 | 26.5 Excluir conta (LGPD) | Compliance |
| 7 | 26.7 Destaque Instantâneas home | Se produto ativo |
| 8 | 26.8 Segunda via boleto | UX |
| 9 | 26.9 Teimosinha estender | Retenção (esforço alto) |
| 10 | 26.10 Modo alto contraste | Acessibilidade |

**Pedido no chat:** "Implementar Fase 26.X - [item]"

---

## Comparativo com Mega Loterias (referência)

**Fonte:** https://www.megaloterias.com.br/ (análise 2025-03)

| Recurso | Mega Loterias | Lotérica Premiada v2 | Status |
|---------|---------------|----------------------|--------|
| Hero + 3 passos | Sim | Sim | [x] |
| Por que escolher | Sim | Sim | [x] |
| E se premiado | Sim | Sim | [x] |
| Estatísticas (prêmios pagos) | Sim | Sim | [x] |
| Notícias na home | Sim (cards) | Sim | [x] |
| Página /noticias | Sim (categorias, busca) | Sim (categorias) | [x] |
| Depoimentos | Sim | Sim | [x] |
| Newsletter | Sim | Sim | [x] |
| Premiações (tabela) | Sim | Sim | [x] |
| Atendimento | Sim | Sim | [x] |
| Cookies LGPD | Sim | Sim | [x] |
| Notícias por loteria | /mega-sena/noticias | Sim (MG, LF, QN) | [x] |
| Categorias notícias | Dicas, Mega da Virada, etc. | Sim | [x] |
| Link "Ver Jogo" em premiações | /{loteria}/boloes/{codigo} | /{loteria}/boloes?grupo={id} | [x] |
| Busca em notícias | Sim | Sim | [x] |
| Grid loterias em /noticias | Sim (Confira por loteria) | Sim | [x] |

---

## Análise Completa do Projeto v2 (2025-03)

### Estado do frontend

| Área | Implementado | Pendente |
|------|--------------|----------|
| **Páginas** | 9 loterias, carrinho, pagamentos, conta, admin, depoimentos, notícias, cadastro, comprar-creditos, instantaneas | — |
| **Componentes** | NumeroSelector, Cartela, ResultadoCard, LoteriasHomeCards, PodeConfiarSection, ChatWidget, PushSubscribeButton, ABTestHero, RaspadinhaCard, etc. | — |
| **API** | PIX, Mercado Pago, PagSeguro (boleto), Cielo (integração SDK) | — |
| **Notícias** | Seção home, /noticias (busca, grid), /noticias/[slug], /{loteria}/noticias (todas) | — |

### Inspiração Mega Loterias (https://www.megaloterias.com.br/)

| Recurso | Descrição | Status LP v2 |
|---------|-----------|--------------|
| Premiações "Ver Jogo" | Link direto para bolão | [x] Implementado |
| Notícias busca + grid | Campo de busca, cards por loteria | [x] Implementado |
| Mega da Virada | Categoria especial com subrota | [x] Implementado |
| Surpresinha quentes/frios | Números mais/menos sorteados | [x] Implementado |
| Estatísticas por loteria | /estatisticas/numeros-que-mais-saem, maiores-premios, premios-estado | [x] Fase 17.1 |
| Testador de Palpite | Testar números antes de apostar | [x] Fase 17.2 |
| Tabela probabilidades | Na página como-jogar | [x] Fase 17.4 |
| WhatsApp / chat | Atendimento 24h (WhatsApp implementado) | [x] Fase 17.3 |
| Login social | Google, Facebook | [x] Fase 17.6 |
| Categorias Promoções, Curiosidades | Em notícias | [x] Fase 17.5 |
| Cashback / Mega Turbinada | Promoções em apostas | [x] Fase 17.7 |

---

## Ideias Novas (pós-Fase 15) — Resumo

### Alta prioridade (conversão e SEO)
- [x] Seção Notícias na home (cards)
- [x] Página /noticias com categorias
- [x] Cielo (integração completa com SDK)
- [x] Notícias por loteria (/mega-sena/noticias)
- [x] **Cadastro funcional** — página /cadastro com formulário completo

### Média prioridade (UX e confiança) — Fase 15.6
- [x] Surpresinha inteligente (números quentes/frios)
- [x] Teimosinha visual (concursos restantes)
- [x] Simulador de divisão de bolão
- [x] Link "Ver Jogo" na página de premiações
- [x] Schema.org Product e Event (SEO)

### Baixa prioridade (ideias-melhorias.md)
- [x] PWA (modo offline para resultados)
- [x] A/B test de layout (useABTest, ABTestHero)
- [x] API Caixa (resultados oficiais)
- [x] Push notifications de resultados

### Ideias inspiradas no Mega Loterias (Fase 17)
- [x] Busca em /noticias
- [x] Grid "Confira por loteria" na página de notícias
- [x] Página /comprar-creditos (alias para /conta/creditos) — SEO
- [x] Admin CRUD de notícias (opcional)
- [x] Estatísticas por loteria (números mais sorteados, maiores premiações, premios por estado)
- [x] Testador de Palpite (testar números antes de apostar)
- [x] Tabela de probabilidades nas páginas como-jogar
- [x] WhatsApp e chat no atendimento (WhatsApp implementado)
- [x] Categorias Promoções e Curiosidades em notícias
- [x] Login social (Google, Facebook)
- [x] Cashback / promoções (ex: Mega Turbinada)

### Ideias próprias LP v2 (diferenciais além do Mega Loterias)
- [x] PWA: modo offline para consultar resultados e histórico de jogos
- [x] API Caixa: script sync-resultados-caixa.php (fonte loteriascaixa-api)
- [x] Lembretes: estrutura (tabela cliente_lembrete, script enviar-lembretes.php)
- [x] Favoritos: salvar combinações para reutilizar
- [x] Histórico de apostas: "Jogue novamente" com os mesmos números
- [x] Comparação automática: ao ver resultados, destacar números da aposta do usuário (reforçado UX)
- [x] A/B test de layout para medir conversão

---

## Suite de Testes Completa

Executar todos os testes (Fases 0-18):

```bash
# 1. Seed (clientes, admin, bolões para todas as loterias)
docker compose exec -T app php /var/www/html/scripts/seed-completo-v2.php

# 2. Suite completa (PHP, curl, Python, layout, mobile, gargalos, conferência, build)
bash tests/suite-completa-total.sh http://localhost:8080 http://localhost:3000
```

Credenciais de teste: cliente `teste@lotericapremiada.com.br` / `123456` | admin `admin` / `admin123`

Ver `tests/README-SUITE-COMPLETA.md` para detalhes.

---

## Próximos Passos Sugeridos (ordem de execução)

**Fases 19–37 concluídas.** **Fase 38** documentada com análise completa v1→v2.

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | **38.5 Boletim diário na home** | Retenção; quick win |
| 2 | **38.7 Estatísticas dinâmicas home** | Confiança; validar se já existe |
| 3 | **38.8 URLs apostar-na-* redirect** | SEO; links antigos |
| 4 | **38.9 Surpresinha quentes/frios** | UX; validar implementação |
| 5 | **38.11 Fidelidade níveis completos** | Retenção |
| 6 | **38.13 Monitoramento Sentry** | Observabilidade |
| — | **API Caixa** (38.B1) | Backlog; depende da API |

Ver **Fase 37** e **Fase 38**.

---

## Ideias Novas (pós-Fase 26) — Análise v1→v2 e inspiração Mega/Sorte

**Fontes:** Análise de `src/` v1 (controllers, views, admin), `frontend/` (páginas, componentes, lib/api), `docs/plano-acao-v2-completo.md`, `.cursor/rules/`, `docs/loterias/ideias-melhorias.md`. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/ (apenas o que LP v2 ainda NÃO tem).

*Priorização: itens que já existem na v1 primeiro (migração completa); depois refinamentos e ideias de inspiração.*

### Gaps de migração v1 → v2 (priorizados — o que já existe na v1)

| # | Item | Fase ref | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|----------|-----------|------------|------------|---------|--------|
| 1 | **Criar bolão 100% na v2** | 19.2 / 21.8 / 30.3 | Fluxo completo na v2 sem proxy para v1: wizard loteria → concurso → fechamento → cotas → criar grupo. | v1 BolaoController::fazer_meu_fechamentoAction | Alta (independência do v1) | Alto | **[x] Implementado** |
| 2 | **Doctor integrado v2** | 21.11 | Páginas Doctor (Erre 4, 5, 7, fechamentos, checkout) na v2 sem redirecionar para v1. v1: Doctor/Controller/*, fechamentos Lotofácil. | v1 | Baixa (produto paralelo) | Muito alto | Backlog |
| 3 | **Admin Campanhas refinamento** | 21.7 | Listagem e edição já existem (API + admin/campanhas). Opcional: criar campanha, tipos, métricas de visualização. | v1 CampanhaController | Baixa | Médio | Parcial |

### Ideias de inspiração (Mega/Sorte) que LP v2 ainda NÃO tem

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|-------|
| 6 | **Teimosinha: estender concursos** | Na área "Meus Jogos", permitir comprar mais concursos para o mesmo jogo (estender teimosinha). v1 pode ter fluxo similar. | ideias-melhorias.md §1; retenção | Baixa | Alto | [x] 31.B1/36.2 |
| 7 | **Recuperar senha fluxo completo** | Garantir fluxo completo: solicitar código, validar código, redefinir senha. Frontend /recuperar-senha existe; validar integração com API. | v1 ClienteController::recuperar_senha, resetar_senha | Média (paridade v1) | Baixo | |
| 8 | **Número dinâmico "chances" em bolões** | Exibir "Até X chances" (soma de cotas) em destaque na home ou listagem, como Sorte Online ("18.066 chances"). | Sorte Online (bolões recomendados) | Média (conversão) | Baixo | |

### Resumo executivo

- **Alta prioridade:** Criar bolão 100% v2 — **[x] Implementado**.
- **Média prioridade:** recuperar senha completo; número dinâmico chances.
- **Baixa prioridade:** Doctor v2; Admin Campanhas refinamento. Teimosinha estender — [x] Implementado (31.B1/36.2).

### Ordem sugerida de execução (pós-Fase 26)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | Criar bolão 100% na v2 | Maior impacto em independência |
| 2 | Recuperar senha fluxo completo | Paridade v1, baixo esforço |
| 3 | Número dinâmico chances (bolões) | Quick win, conversão |
| 4 | Admin Campanhas refinamento | Se marketing exigir |
| 5 | Teimosinha estender | [x] Implementado (31.B1/36.2) |
| 6 | Doctor integrado v2 | Avaliar ROI |

**Compatibilidade:** Respeitar .cursor/rules/plataforma-loterias-padroes.mdc, v2-padroes-desenvolvimento.mdc e loterias/*.mdc. Não alterar src/ legado; usar API v2 e Core DAOs.

---

## Fase 27: Próxima onda (pós-Fase 26) — Migração v1→v2 e ideias-melhorias [Concluído]

**Fontes:** Análise de `src/` v1 (controllers, views, admin), `frontend/`, `api/`, docs/plano-acao-v2-completo.md, .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: Mega Loterias, Sorte Online (apenas o que LP v2 ainda NÃO tem).

*Priorização: itens que já existem na v1 (migração); depois refinamentos de ideias-melhorias e inspiração Mega/Sorte.*

### 27.1 Criar bolão 100% na v2 [x]
- **Descrição:** Wizard completo no frontend (loteria → concurso → fechamento → cotas) e persistência de grupo 100% na v2, sem proxy para v1. POST /api/v2/boloes já aceita jogos e adiciona ao carrinho; falta fluxo de criação de grupo e UI do wizard.
- **Inspiração:** v1 BolaoController::fazer_meu_fechamentoAction, GerenciarGruposController
- **Prioridade:** Alta (independência do legado, conversão)
- **Esforço:** Alto

### 27.2 Admin: pendentes Fase 21 (relatório, configurações, concursos) [x]
- **Descrição:** Garantir que Admin Relatório financeiro (21.3), Configurações da plataforma (21.4) e Gerenciar concursos (21.5) estejam completos na v2. v1: RelatorioController::creditosAction, Admin/ContaController (config), ConcursoController (create/index).
- **Inspiração:** v1 src/Relatorio, src/Admin/Conta, src/Bolao/Concurso
- **Prioridade:** Alta (operação sem depender v1)
- **Esforço:** Médio (APIs e frontend admin já existem em grande parte; validar e completar)

### 27.3 Recuperar senha fluxo completo [x]
- **Descrição:** Fluxo completo: solicitar código por e-mail, validar código, redefinir senha. Frontend /recuperar-senha existe; validar integração com API v2 e fluxo v1 (ClienteController::recuperar_senha, resetar_senha).
- **Inspiração:** v1 ClienteController; paridade com v1
- **Prioridade:** Média (segurança, paridade)
- **Esforço:** Baixo

### 27.4 Número dinâmico "chances" em bolões [x]
- **Descrição:** Exibir "Até X chances" (soma de cotas disponíveis) em destaque na home ou listagem de bolões, como Sorte Online ("18.066 chances"). Reforça conversão.
- **Inspiração:** Sorte Online (bolões recomendados)
- **Prioridade:** Média (conversão)
- **Esforço:** Baixo

### 27.5 Indicador de cotas disponíveis [x]
- **Descrição:** Na listagem de bolões, destaque visual quando restam poucas cotas (ex.: "Últimas 5 cotas") para aumentar urgência.
- **Inspiração:** docs/loterias/ideias-melhorias.md §1 (Bolões)
- **Prioridade:** Média (conversão)
- **Esforço:** Baixo

### 27.6 Validação antes de adicionar ao carrinho [x]
- **Descrição:** Evitar adicionar jogos inválidos ao carrinho; feedback imediato de erro (limites de marcação, preço mínimo, etc.) antes do POST.
- **Inspiração:** docs/loterias/ideias-melhorias.md §1 (Validação antes de adicionar)
- **Prioridade:** Média (UX)
- **Esforço:** Baixo

### 27.7 Admin Campanhas refinamento / Doctor v2 / Teimosinha estender [~]
- **Descrição:** Opcionais: (a) Admin Campanhas — criar campanha, tipos, métricas (21.7); (b) Doctor integrado v2 — páginas na v2 sem redirecionar v1 (21.11); (c) Teimosinha estender — comprar mais concursos para o mesmo jogo (26.9 stub).
- **Inspiração:** v1 CampanhaController, Doctor/*; ideias-melhorias.md §1
- **Prioridade:** Baixa
- **Esforço:** Médio a muito alto conforme item
- **Implementado (a) completo:** GET /api/v2/admin/campanhas/tipos; criar e editar campanha com select de tipo (tipo_campanha); listagem com nome_tipo e métricas (enviados/e-mail). (b) Doctor v2 e (c) Teimosinha estender em backlog.

### Ordem sugerida de execução (Fase 27)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 27.1 Criar bolão 100% v2 | Maior impacto em independência |
| 2 | 27.2 Admin pendentes 21.3–21.5 | Operação completa |
| 3 | 27.3 Recuperar senha completo | Paridade v1, baixo esforço |
| 4 | 27.4 Número dinâmico chances | Quick win, conversão |
| 5 | 27.5 Indicador cotas disponíveis | Quick win |
| 6 | 27.6 Validação antes de adicionar | UX |
| 7 | 27.7 Opcionais (Campanhas/Doctor/Teimosinha) | Conforme demanda |

**Pedido no chat:** "Implementar Fase 27.X - [item]"

---

## Fase 28: Ideias Novas (pós-Fase 27) — Análise v1→v2 e inspiração Mega/Sorte [Concluído]

**Status da Fase 28:** Concluída no escopo implementável. Itens **28.1, 28.2, 28.3, 28.4, 28.7, 28.8, 28.9 e 28.10** implementados. **28.5** e **28.6** em backlog (esforço alto/muito alto).

**Fontes:** Análise de todo `src/` v1 (controllers, views, admin), `frontend/` (estrutura, páginas, componentes, lib/api), docs/plano-acao-v2-completo.md (Estado Atual, Já existe), .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/ (apenas o que LP v2 ainda NÃO tem).

*Regras: (1) Não sugerir o que já existe no Estado Atual / Já existe. (2) Priorizar por impacto (conversão, SEO, UX) e viabilidade técnica. (3) Priorizar o que já existe na v1 (migração completa). (4) Respeitar .cursor/rules/ e padrões v2.*

### Gaps de migração v1 → v2 (o que a v1 faz e a v2 ainda não)

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 28.1 | **Admin Pedidos crédito: cancelar e reenviar e-mail** | No v1 o admin pode cancelar pedido de crédito (cancelarPagamentoAction), resetar pagamento (resetarPagamentoAction) e reenviar e-mail ao cliente (enviarEmailAction). Na v2 existem apenas aprovar e rejeitar. Adicionar: POST /api/v2/admin/pedidos/{id}/cancelar, POST /api/v2/admin/pedidos/{id}/reenviar-email; botões na tela admin/pedidos/[id]. | v1 GerenciarPedidosCreditoController | Média (operação, suporte) | Baixo | **[x] Implementado:** cancelar, resetar, reenviar-email (API + frontend). |
| 28.2 | **Cron: checar pagamentos MP/PagSeguro/PIX** | No v1 o TarefasCronController executa checarPagamentoMercadoPago, checarPedidosPix, checarPedidosPagSeguro para aprovar créditos automaticamente. Na v2 existe apenas POST /api/v2/cron/conferencia-lote. Documentar no runbook e expor endpoint POST /api/v2/cron/checar-pagamentos. | v1 TarefasCronController | Alta (operação, independência v1) | Alto | **[x] Implementado:** endpoint + runbook atualizado. |
| 28.3 | **Admin Bolões: comprovantes e impressão de volantes** | No v1 o admin pode ver comprovantes (get_comprovantesAction), fazer upload (upload_comprovanteAction) e imprimir volantes (imprimir_volantesAction) em GerenciarBoloesController. Na v2: GET/POST /api/v2/admin/boloes/:id/comprovantes e GET .../imprimir-volantes; seção na página admin/boloes/[id] (comprovantes + imprimir). | v1 GerenciarBoloesController | Baixa (operação interna) | Médio | **[x] Implementado:** API + frontend admin/boloes/[id]. |
| 28.4 | **Confirmação de e-mail no cadastro (opcional)** | Se o v1 exige confirmação de e-mail no cadastro (confirmarAction, validar_codigo_verificacaoAction), replicar na v2: envio de link ou código ao cadastrar; página ou modal para confirmar; ativação da conta. | v1 ClienteController (confirmar, obter_codigo_verificacao) | Média (segurança, paridade) | Médio | **[x] Implementado:** cadastro com `confirmar_email: true` cria conta inativa, envia e-mail com link; GET /api/v2/auth/confirmar-email?token= ativa conta; página /confirmar-email. |

### Ideias de inspiração (Mega Loterias / Sorte Online) que LP v2 ainda NÃO tem

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 28.5 | **Teimosinha: comprar mais concursos (estender)** | Na área "Meus Jogos", permitir estender teimosinha (comprar mais concursos para o mesmo jogo). Já documentado como stub em docs/v2/teimosinha-estender.md. | ideias-melhorias.md §1; Sorte Online (retenção) | Baixa (retenção) | Alto | **Não implementado (backlog).** Stub documentado; implementação completa em fase futura. |
| 28.6 | **Doctor integrado v2** | Páginas Doctor (Erre 4, 5, 7, fechamentos, checkout) na v2 sem redirecionar para v1. Lógica de fechamentos Lotofácil na v2. | v1 Doctor/*; Fase 21.11 | Baixa (produto paralelo) | Muito alto | **Não implementado (backlog).** Esforço muito alto; avaliar ROI em fase futura. |
| 28.7 | **Landing de sorteios especiais com CTA forte** | Reforçar CTAs nas páginas de especiais (Mega da Virada, Dupla de Páscoa, etc.) com contagem regressiva e valor em destaque, no estilo Sorte Online (cards no topo com "R$ X Milhões", "Sorteio: DD/MM"). LP v2 já tem EspeciaisHomeSection e CountdownBadge; avaliar refinamento de copy e layout. | Sorte Online (home — especiais em primeiro) | Baixa (refinamento) | Baixo | **[x] Implementado:** EspeciaisHomeSection com título, subtítulo e valor em destaque (refinamento CTA/copy). |

### Refinamentos e qualidade (ideias-melhorias.md e operação)

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 28.8 | **Relatório de apostas (admin)** | v1 RelatorioController::apostasAction() está vazio. Endpoint GET /api/v2/admin/relatorio/apostas (ano, mes, id_loteria) e seção na página admin/relatorio. | Operação | Baixa | Médio | **[x] Implementado:** endpoint + seção em admin/relatorio. |
| 28.9 | **Testes E2E críticos (smoke)** | Garantir suite E2E cobrindo: login, cadastro, adicionar jogo ao carrinho, finalizar compra (ou até pagamento), área do cliente (saldo, jogos). Referência: tests/e2e-browser.spec.ts e docs/v2/staging-e2e.md. | ideias-melhorias.md §8, §11 | Média (qualidade) | Médio | **[x] Implementado:** testes área do cliente (saldo, jogos) em e2e-browser.spec.ts. |
| 28.10 | **SEO: meta e schema por página de loteria** | Revisar meta title/description e schema (Product/Event) em todas as páginas de loteria e subrotas (como-jogar, resultados, bolões) para maximizar CTR e rich results. | ideias-melhorias.md §3 | Média (SEO) | Baixo | **[x] Implementado:** meta + JSON-LD Product/Event em mega-sena e lotofacil layouts; replicar para demais loterias conforme necessidade. |

### Ordem sugerida de execução (Fase 28)

*Fase concluída. Itens 28.1, 28.2, 28.3, 28.7, 28.8, 28.9 e 28.10 implementados; 28.4, 28.5 e 28.6 não implementados (opcional/backlog).*

| Ordem | Item | Motivo | Status |
|-------|------|--------|--------|
| 1 | 28.2 Cron checar pagamentos | Operação crítica; independência do v1 | [x] |
| 2 | 28.1 Admin cancelar/reenviar e-mail pedido | Operação e suporte | [x] |
| 3 | 28.4 Confirmação e-mail cadastro (se v1 tiver) | Paridade e segurança | [x] |
| 4 | 28.9 Testes E2E críticos | Qualidade antes de mais features | [x] |
| 5 | 28.10 SEO meta/schema | Quick win, conversão orgânica | [x] |
| 6 | 28.3 Admin comprovantes/impressão bolão | Se operação exigir | [x] |
| 7 | 28.7 Landing especiais (refinamento) | Refinamento UX | [x] |
| 8 | 28.5 Teimosinha estender | Retenção (stub já existe) | — backlog |
| 9 | 28.6 Doctor v2 | Avaliar ROI | — backlog |
| 10 | 28.8 Relatório apostas | Se demanda existir | [x] |

**Compatibilidade:** Respeitar .cursor/rules/plataforma-loterias-padroes.mdc, v2-padroes-desenvolvimento.mdc e loterias/*.mdc. Não alterar src/ legado; usar API v2 e Core DAOs.

**Pedido no chat:** "Implementar Fase 28.X - [item]"

---

## Fase 29: Ideias Novas (pós-Fase 28) — Gaps v1→v2 e refinamentos [Concluído]

**Status:** Itens 29.1 a 29.5, 29.7, 29.3, 29.4 e 29.8 implementados; 29.6 e 29.9 já existiam.

**Fontes:** Análise de todo `src/` v1 (controllers, views, admin), `frontend/`, `api/`, docs/plano-acao-v2-completo.md (Estado Atual, Já existe), .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: Mega Loterias, Sorte Online (apenas o que LP v2 ainda NÃO tem).

*Regras: (1) Não sugerir o que já existe no Estado Atual / Já existe. (2) Priorizar por impacto (conversão, SEO, UX) e viabilidade técnica. (3) Priorizar o que já existe na v1 (migração completa). (4) Respeitar .cursor/rules/ e padrões v2. (5) Loteca e Lotogol fora de escopo — não implementar.*

### Gaps de migração v1 → v2 (o que a v1 faz e a v2 ainda não)

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 29.1 | **Admin: Adicionar crédito ao cliente** | No v1 o admin pode adicionar crédito manual a um cliente (GerenciarClientesController::addCreditoAction). Na v2: endpoint POST /api/v2/admin/clientes/{id}/add-credito com valor e observação; registrar no extrato; botão na página admin/clientes/[id]. | v1 GerenciarClientesController | Média (operação, suporte) | Baixo | **[x] Implementado** |
| 29.2 | **Admin: Enviar bônus ao cliente** | No v1 o admin pode enviar bônus a um ou todos os clientes (enviarBonusAction, enviarBonusTodosAction). Na v2: POST /api/v2/admin/clientes/{id}/enviar-bonus (valor, mensagem); opcional: envio em lote por filtro; registrar no extrato como bônus. | v1 GerenciarClientesController | Média (marketing, retenção) | Médio | **[x] Implementado** |
| 29.3 | **Admin: Filtros especiais de clientes** | No v1 existem listagens especiais: inativos (inativosAction), não apostaram (nao_apostaramAction), menos ativos (menos_ativosAction). Na v2: parâmetros ou rotas GET para filtrar clientes por esses critérios na listagem admin/clientes. | v1 GerenciarClientesController | Baixa (operação) | Baixo | **[x] Implementado** (filtros inativos e nao_apostaram) |
| 29.4 | **Admin: Duplicar bolão** | No v1 o admin pode duplicar um bolão (GerenciarBoloesController::duplicarAction), por exemplo para o próximo concurso. Na v2: POST /api/v2/admin/boloes/{id}/duplicar (opcional: id_concurso destino); criar cópia do grupo/bolões; botão na página admin/boloes/[id]. | v1 GerenciarBoloesController | Baixa (operação) | Médio | **[x] Implementado** |
| 29.5 | **SEO: Meta e JSON-LD para demais loterias** | Fase 28.10 implementou meta + JSON-LD (Product/Event) para Mega-Sena e Lotofácil. Replicar o mesmo padrão para Quina (QN), Lotomania (LM), Dupla Sena (DS), Dia de Sorte (ST), Timemania (TM), Super Sete (SS), +Milionária (MM) nas páginas principais e subrotas (como-jogar, resultados, bolões). | ideias-melhorias.md §3; 28.10 | Média (SEO, CTR) | Baixo | **[x] Implementado** |

### Ideias de inspiração (Mega/Sorte e ideias-melhorias) que LP v2 ainda NÃO tem

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 29.6 | **Notificação de premiação (e-mail/push)** | Quando o cliente for premiado (após conferência), enviar e-mail e/ou push informando valor e faixa. v1 pode ter notificar_premiadosAction; na v2: integrar ao fluxo de conferência (ConferenciaService) e envio via fila ou cron. | ideias-melhorias.md §1 (Notificação); Mega/Sorte | Alta (retenção, confiança) | Médio | **Já existia** (ConferenciaService::notificarPremiados + PushSubscriptionService) |
| 29.7 | **Histórico de premiações na conta** | Na área do cliente, seção "Minhas premiações" com valor total recebido e lista de premiações por concurso/bolão. Reforça transparência e sensação de ganho. | ideias-melhorias.md §1 (Histórico premiações) | Média (UX, confiança) | Médio | **[x] Implementado** (total_valor na API + destaque na página /conta/premiacoes) |
| 29.8 | **Carrinho persistido no banco (logados)** | Para clientes logados, persistir itens do carrinho no banco (já existe estrutura em src/?) para recuperar entre sessões e dispositivos. | ideias-melhorias.md §1 (Carrinho persistido) | Média (conversão) | Alto | **[x] Implementado** (CarrinhoService: sync sessão→DB em getItens quando logado; carregar do DB quando sessão vazia; frontend dispara refetch após login) |
| 29.9 | **Expirar itens do carrinho (concurso sorteado)** | Ao exibir o carrinho, remover ou sinalizar itens cujo concurso já foi sorteado; evitar finalizar compra de jogos inválidos. | ideias-melhorias.md §1 (Expirar carrinho) | Média (UX, consistência) | Baixo | **Já existia** (CarrinhoService::getItens remove itens com data_sorteio_ymd &lt; hoje) |

### Backlog (já documentados em fases anteriores)

- **Teimosinha estender** (28.5 / 26.9): comprar mais concursos para o mesmo jogo — stub em docs/v2/teimosinha-estender.md.
- **Doctor integrado v2** (28.6 / 21.11): páginas Doctor na v2 sem redirecionar v1 — esforço muito alto.

### Ordem sugerida de execução (Fase 29)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 29.1 Admin adicionar crédito ao cliente | Paridade v1, operação diária, baixo esforço |
| 2 | 29.5 SEO meta/JSON-LD demais loterias | Quick win, SEO em todas as loterias |
| 3 | 29.6 Notificação de premiação (e-mail/push) | Alta prioridade impacto retenção |
| 4 | 29.2 Admin enviar bônus ao cliente | Marketing e retenção |
| 5 | 29.9 Expirar itens carrinho (concurso sorteado) | UX e consistência, baixo esforço |
| 6 | 29.7 Histórico de premiações na conta | Confiança e transparência |
| 7 | 29.3 Admin filtros especiais clientes | Operação, baixo esforço |
| 8 | 29.4 Admin duplicar bolão | Operação interna |
| 9 | 29.8 Carrinho persistido no banco | Conversão (esforço alto) |

**Compatibilidade:** Respeitar .cursor/rules/plataforma-loterias-padroes.mdc, v2-padroes-desenvolvimento.mdc e loterias/*.mdc. Não alterar src/ legado; usar API v2 e Core DAOs. Não implementar Loteca (LC) nem Lotogol (LG) — regra em nao-implementar-loteca-lotogol.mdc.

**Pedido no chat:** "Implementar Fase 29.X - [item]"

---

## Fase 30: Ideias Novas (pós-Fase 29) — Gaps v1→v2 e inspiração Mega/Sorte [Concluído]

**Fontes:** Análise de todo `src/` v1 (controllers, views, admin), `frontend/` (estrutura, páginas, componentes, lib/api), `api/`, docs/plano-acao-v2-completo.md (Estado Atual, Já existe), .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/ (apenas o que LP v2 ainda NÃO tem).

*Regras: (1) Não sugerir o que já existe no Estado Atual / Já existe. (2) Priorizar por impacto (conversão, SEO, UX) e viabilidade técnica. (3) Priorizar o que já existe na v1 (migração completa). (4) Respeitar .cursor/rules/ e padrões v2. (5) Loteca e Lotogol fora de escopo — não implementar.*

### Gaps de migração v1 → v2 (o que a v1 faz e a v2 ainda não)

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 30.1 | **Admin clientes: filtro "menos ativos"** | No v1 o admin pode listar clientes "menos ativos" (GerenciarClientesController::menos_ativosAction) — clientes sem movimento no extrato nos últimos 2 anos. Fase 29.3 implementou filtros inativos e nao_apostaram; falta este filtro na listagem admin/clientes (parâmetro ou aba "menos_ativos"). | v1 GerenciarClientesController | Baixa (operação) | Baixo | **[x] Implementado** |
| 30.2 | **Admin afiliados: cancelar/rejeitar pedido** | No v1 o admin pode cancelar um pedido de afiliado (GerenciarPedidosAfiliadoController::cancelarPedidoAction), marcando compra_aprovada=0. Na v2 existe apenas aprovar. Útil para correção; atenção: se bônus já foi creditado, definir se desfaz ou apenas marca. | v1 GerenciarPedidosAfiliadoController | Baixa (operação, correção) | Baixo | **[x] Implementado** |
| 30.3 | **Criar bolão 100% na v2** | Fluxo completo de criação de bolão na v2 (POST /api/v2/boloes ou equivalente, wizard no frontend) sem depender do proxy/redirect para v1. Já documentado em 19.2 / 21.8; maior impacto em independência. | v1 GerenciarGruposController, BolaoController | Alta (independência) | Alto | **[x] Implementado** (wizard /criar-bolao; suporte concurso+cotas em todas loterias via useConcursoCotasWizard; FinalizarService cria grupo+bolão 100% v2) |

### Ideias de inspiração (Mega/Sorte e ideias-melhorias) que LP v2 ainda NÃO tem

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 30.4 | **Login / CTA de acesso na home** | Sorte Online exibe bloco "Acesse a sua conta" com formulário de login na home. LP v2 tem link Login no header; adicionar bloco ou modal de login na home pode aumentar conversão de visitantes logados. | Sorte Online (home) | Média (conversão) | Baixo | **[x] Implementado** (LoginCTAHome) |
| 30.5 | **Simulador de divisão do bolão** | Na página de bolão ou no carrinho, exibir: "Se este bolão ganhar R$ X, cada cota recebe R$ Y" (X = prêmio estimado ou valor informado, Y = X / número de cotas). Reforça valor da cota e conversão. | ideias-melhorias.md §1 (Simulador divisão) | Média (conversão) | Baixo | **Já existia** (SimuladorBolao) |
| 30.6 | **Validação e feedback antes de adicionar ao carrinho** | Evitar adicionar jogos inválidos ao carrinho; exibir feedback imediato (ex.: "Marca entre 6 e 20 dezenas") quando o usuário tentar adicionar com quantidade fora do permitido. | ideias-melhorias.md §1 (Validação antes de adicionar) | Média (UX) | Baixo | **Já existia** (Fase 27.6 validarPayloadCarrinho) |
| 30.7 | **Exportar relatório de apostas (CSV)** | O relatório de apostas (Fase 28.8) existe na API e na tela admin/relatorio. Adicionar botão "Exportar CSV" para o relatório de apostas, no mesmo padrão do export de créditos (Fase 26.4). | Fase 26.4 (créditos); operação | Baixa (operação) | Baixo | **[x] Implementado** |
| 30.8 | **Log de auditoria da conferência** | Registrar quem conferiu cada bolão/concurso, quando e resultado (premiado ou não). Facilita suporte e compliance. ideias-melhorias §4. | ideias-melhorias.md §4 (Conferência) | Baixa (operação, compliance) | Médio | **Já existia** (Fase 23.5 conferencia_audit_log) |
| 30.9 | **PWA / modo offline para resultados** | Permitir consulta a resultados e histórico de jogos em modo offline (service worker, cache de dados recentes). Aumenta retenção em conexões instáveis. | ideias-melhorias.md §7 (PWA) | Baixa (UX) | Médio | **[x] Implementado** (next-pwa com cache NetworkFirst para resultados, jogos e concursos; expiração ampliada) |
| 30.10 | **Integração API Caixa (resultados oficiais)** | Se a Caixa disponibilizar API de resultados, consumir para popular/atualizar concursos automaticamente e reduzir digitação manual. | ideias-melhorias.md §6 (Integrações) | Média (operação) | Alto (depende de API) | **Documentado** (docs/v2/api-caixa-stub.md; aguarda API oficial) |

### Backlog (já documentados em fases anteriores)

- **Teimosinha estender** (28.5 / 26.9): comprar mais concursos para o mesmo jogo — stub em docs/v2/teimosinha-estender.md.
- **Doctor integrado v2** (28.6 / 21.11): páginas Doctor na v2 sem redirecionar v1 — esforço muito alto.

### Ordem sugerida de execução (Fase 30)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 30.3 Criar bolão 100% na v2 | Maior impacto em independência (já priorizado em 19.2) |
| 2 | 30.5 Simulador de divisão do bolão | Conversão, baixo esforço |
| 3 | 30.6 Validação antes de adicionar ao carrinho | UX, baixo esforço |
| 4 | 30.4 Login/CTA na home | Conversão |
| 5 | 30.1 Admin filtro menos ativos | Paridade v1, operação |
| 6 | 30.7 Exportar relatório apostas CSV | Operação |
| 7 | 30.2 Admin afiliados cancelar pedido | Operação (se necessário) |
| 8 | 30.8 Log auditoria conferência | Compliance |
| 9 | 30.9 PWA modo offline | UX (esforço médio) |
| 10 | 30.10 API Caixa resultados | Operação (esforço alto, depende de API) |

**Compatibilidade:** Respeitar .cursor/rules/plataforma-loterias-padroes.mdc, v2-padroes-desenvolvimento.mdc e loterias/*.mdc. Não alterar src/ legado; usar API v2 e Core DAOs. Não implementar Loteca (LC) nem Lotogol (LG).

**Pedido no chat:** "Implementar Fase 30.X - [item]"

---

## Fase 31: Ideias Novas (pós-Fase 30) — Gaps v1→v2 e inspiração Mega/Sorte

**Fontes:** Análise de todo `src/` v1 (controllers, views, admin), `frontend/`, `api/`, docs/plano-acao-v2-completo.md (Estado Atual, Já existe), .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/ (apenas o que LP v2 ainda NÃO tem).

*Regras: (1) Não sugerir o que já existe no Estado Atual / Já existe. (2) Priorizar por impacto (conversão, SEO, UX) e viabilidade técnica. (3) Priorizar o que já existe na v1 (migração completa). (4) Respeitar .cursor/rules/ e padrões v2. (5) Loteca e Lotogol fora de escopo — não implementar.*

### Gaps de migração v1 → v2 (o que a v1 faz e a v2 ainda não)

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 31.1 | **Admin Campanhas: enviar campanha (e-mail)** | No v1 o admin pode disparar campanhas por e-mail (CampanhaController::mailAction, sendAtivos, sendAindaNaoApostaram, emailAction). Na v2 existe CRUD e tipos de campanha; falta funcionalidade de envio/disparo para segmentos (ativos, ainda não apostaram, etc.). | v1 CampanhaController | Média (marketing) | Médio | [x] Implementado (POST /admin/campanhas/{id}/enviar, segmento ativos/nao_apostaram, limite; frontend botão por campanha) |
| 31.2 | **Admin: excluir cliente** | No v1 o admin pode excluir definitivamente um cliente (GerenciarClientesController::deleteAction). Na v2 existe bloquear/desbloquear; falta exclusão definitiva. Atenção: LGPD, dependências (extrato, jogos, resgates). | v1 GerenciarClientesController | Baixa (operação, compliance) | Médio | [x] Implementado (soft delete _deleted=1; POST /admin/clientes/{id}/excluir; frontend botão na ficha do cliente) |
| 31.3 | **Admin: enviar bônus em lote** | No v1 o admin pode enviar bônus para todos os clientes ou por filtro (enviarBonusTodosAction). Na v2 existe enviar-bonus por cliente individual; falta envio em lote. | v1 GerenciarClientesController | Baixa (operação, marketing) | Médio | [x] Implementado (POST /admin/clientes/enviar-bonus-lote, valor + filtro todos/com_compra; frontend modal na listagem) |
| 31.4 | **Admin: listagem "clientes loteria online"** | No v1 existem listagens específicas clientes_loteria_onlineAction e formclientes_loteria_onlineAction. Na v2 existem filtros inativos, nao_apostaram, menos_ativos; falta este filtro/listagem específica. | v1 GerenciarClientesController | Baixa (operação) | Baixo | [x] Implementado (filtro loteria_online em GET /admin/clientes; lista da tabela clientes_tb; frontend opção no select) |
| 31.5 | **Admin: enviar spam / spam acumulada** | No v1 o admin pode enviar spam ou spam acumulada (enviarSpamAction, enviarSpamAcumuladaAction). Envio em massa de e-mails para segmentos. | v1 GerenciarClientesController | Baixa (marketing, operação) | Alto | [x] Implementado (POST /admin/clientes/enviar-spam-acumulada, segmento ativos/loteria_online, limite; frontend botão/modal em admin/clientes) |

### Backlog (já documentados em fases anteriores)

| # | Item | Descrição | Prioridade | Esforço | Status |
|---|------|-----------|------------|---------|--------|
| 31.B1 | **Teimosinha: estender concursos** | Na área "Meus Jogos", permitir comprar mais concursos para o mesmo jogo. v1: modalViewTeimosinhaAction. | Baixa (retenção) | Alto | **[x] Implementado** (POST /conta/estender-teimosinha; botão "Comprar mais concursos" + modal em Meus Jogos) |
| 31.B2 | **Doctor integrado 100% na v2** | Páginas Doctor (Erre 4, 5, 7, fechamentos, checkout, pagamento) na v2 sem redirecionar para v1. | Baixa (produto paralelo) | Muito alto | Backlog (avaliar ROI) |
| 31.B3 | **Admin Campanhas: refinamento** | Métricas de visualização avançadas, criação de campanha com segmentação. Tipos já existem. | Baixa | Médio | **[x] Implementado** (segmento_sugerido na criação; métrica enviados/destinatários %; tag na descrição) |

### Ideias de inspiração (Mega/Sorte e ideias-melhorias) que LP v2 ainda NÃO tem

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 31.6 | **Boletim diário / newsletter com resultados** | Mega Loterias: "Receba resultados, próximos sorteios e premiações em primeira mão". LP v2 tem newsletter (POST /api/v2/newsletter); avaliar envio automático de boletim com resultados e próximos sorteios. | Mega Loterias (home) | Média (retenção) | Médio | [x] Implementado (BoletimNewsletterService; POST /cron/boletim-newsletter e POST /admin/newsletter/enviar-boletim; frontend admin/newsletter) |
| 31.7 | **Conferência: extrair serviços por sigla** | ideias-melhorias.md §4: ConcursoController com ~5.900 linhas; considerar extrair ConferenciaLotofacilService, ConferenciaMegaSenaService, etc. Facilita manutenção e testes. | ideias-melhorias.md §4 | Baixa (manutenção) | Alto | [x] Implementado (ConferenciaPorSiglaService em api/src/Service/Conferencia/; facade por sigla delegando ao ConferenciaService) |
| 31.8 | **Cache Redis para sessões** | ideias-melhorias.md §11: Redis para sessões em v2.0. Melhora performance e escalabilidade. | ideias-melhorias.md §11 | Baixa (performance) | Médio | [x] Implementado (REDIS_DSN em api/public/index.php; docs/v2/redis-sessoes.md) |

### Ordem sugerida de execução (Fase 31)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 31.1 Admin Campanhas enviar e-mail | Único gap de prioridade média; marketing |
| 2 | 31.4 Admin clientes loteria online | Baixo esforço, paridade v1 |
| 3 | 31.2 Admin excluir cliente | Compliance, operação |
| 4 | 31.3 Admin enviar bônus em lote | Operação, marketing |
| 5 | 31.6 Boletim diário / newsletter resultados | Retenção, inspiração Mega |
| 6 | 31.5 Admin enviar spam | Se demanda operacional |
| 7 | 31.7 Conferência serviços por sigla | Refatoração, manutenção |
| 8 | 31.8 Cache Redis sessões | Performance |
| — | 31.B1 Teimosinha estender | **[x] Implementado** |
| — | 31.B2 Doctor 100% v2 | Backlog (avaliar ROI) |
| — | 31.B3 Admin Campanhas refinamento | **[x] Implementado** |

**Compatibilidade:** Respeitar .cursor/rules/plataforma-loterias-padroes.mdc, v2-padroes-desenvolvimento.mdc e loterias/*.mdc. Não alterar src/ legado; usar API v2 e Core DAOs. Não implementar Loteca (LC) nem Lotogol (LG).

**Pedido no chat:** "Implementar Fase 31.X - [item]"

---

## Fase 32: Ideias Novas (pós-Fase 31) — Gaps v1→v2 e inspiração Mega/Sorte

**Fontes:** Análise de todo `src/` v1 (controllers, views, admin), `frontend/`, `api/`, docs/plano-acao-v2-completo.md (Estado Atual, Já existe), .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/ (apenas o que LP v2 ainda NÃO tem).

*Regras: (1) Não sugerir o que já existe no Estado Atual / Já existe. (2) Priorizar por impacto (conversão, SEO, UX) e viabilidade técnica. (3) Priorizar o que já existe na v1 (migração completa). (4) Respeitar .cursor/rules/ e padrões v2. (5) Loteca e Lotogol fora de escopo — não implementar.*

### Gaps de migração v1 → v2 (o que a v1 faz e a v2 ainda não)

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 32.1 | **Admin bolões: filtros avançados na listagem** | No v1 GerenciarBoloesController::indexAction o admin filtra por: id_loteria, individual (sim / fechamentos_individuais / nao), impresso (sim/nao), grupo (nome), feitos_hoje (1), numero_concurso. Na v2 GET /api/v2/admin/boloes tem apenas id_loteria, bloqueado, limit, offset. Adicionar parâmetros opcionais e frontend admin/boloes com filtros equivalentes. | v1 GerenciarBoloesController | Média (operação) | Médio | [x] Implementado |
| 32.2 | **Admin bolões: marcar "impresso" e "passado máquina"** | No v1 o admin pode marcar bolão como impresso (atualizar_impressoAction) e como passado na máquina (atualizar_passado_maquinaAction). Na v2 não existe; útil para controle operacional. API: PATCH /api/v2/admin/boloes/{id} com impresso=1 ou passado=1; botões na página admin/boloes/[id]. | v1 GerenciarBoloesController | Baixa (operação) | Baixo | [x] Implementado |
| 32.3 | **Admin bolões: excluir grupo/bolão** | No v1 GerenciarBoloesController::deleteAction permite excluir grupo. Na v2 não há exclusão. Definir: soft delete (_deleted=1) no grupo para não quebrar histórico; ou apenas ocultar da listagem. Atenção a dependências (cliente_jogo, comprovantes). | v1 GerenciarBoloesController | Baixa (operação) | Médio | [x] Implementado |
| 32.4 | **Admin pedidos: botão "Checar pedidos"** | No v1 o admin pode disparar manualmente verificarTodosPedidosAction (checar pagamentos pendentes). Na v2 existe cron (checar pagamentos); adicionar endpoint POST /api/v2/admin/pedidos/checar (ou /cron/checar-pagamentos) acionável por botão na tela admin/pedidos para execução sob demanda. | v1 GerenciarPedidosCreditoController, TarefasCronController | Baixa (operação) | Baixo | [x] Implementado |

### Ideias de inspiração (Mega/Sorte e ideias-melhorias) que LP v2 ainda NÃO tem

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 32.5 | **Limite de depósito/aposta (jogo responsável)** | Permitir que o cliente defina limite de depósito ou valor máximo de aposta por período (mensal implementado em 23.1; diário/semanal podem ser avaliados futuramente). Exibir na área do cliente e bloquear novas apostas/depósitos ao atingir o limite. ideias-melhorias §13; opcional: autoexclusão temporária. | ideias-melhorias.md §13, Mega Loterias | Média (compliance, jogo responsável) | Médio | [x] Implementado (via Fase 23.1) |
| 32.6 | **Bolões recomendados: número dinâmico "Até X chances"** | Sorte Online exibe "ATÉ 18.066 CHANCES" na home. LP v2 tem GET /api/v2/config/boloes-recomendados e BoloesRecomendadosBanner; calcular e exibir total de chances (soma de cotas ou apostas) nos bolões recomendados e destacar no banner. | Sorte Online (home) | Média (conversão) | Baixo | [x] Implementado |
| 32.7 | **SEO: Schema Product/Event em páginas de loteria** | ideias-melhorias §3: Product para cada tipo de aposta; Event para sorteios com data/hora. Melhora rich results e SEO. Incluir JSON-LD nas páginas de loteria e resultados. | ideias-melhorias.md §3 | Média (SEO) | Baixo | [x] Implementado |
| 32.8 | **Segunda via boleto: link direto na lista de pedidos** | Fase 26.8 implementou GET /conta/pedidos-credito e página conta/creditos com "Seus pedidos". Garantir que pedidos com boleto PagSeguro exibam link "Ver boleto" / "Segunda via" que abre ou gera o link do boleto para reimpressão. | v1 GerenciarPedidosCreditoController (reenviar boleto) | Média (UX, suporte) | Baixo | [x] Implementado |

### Backlog (já documentados em fases anteriores)

| # | Item | Descrição | Prioridade | Esforço | Status |
|---|------|-----------|------------|---------|--------|
| 32.B1 | **Doctor integrado 100% na v2** | Páginas Doctor (Erre 4, 5, 7, fechamentos, checkout, pagamento) na v2 sem redirecionar para v1. | Baixa (produto paralelo) | Muito alto | Backlog (avaliar ROI) |

### Ordem sugerida de execução (Fase 32)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 32.6 Número dinâmico "Até X chances" | Conversão, baixo esforço |
| 2 | 32.7 Schema Product/Event SEO | SEO, baixo esforço |
| 3 | 32.8 Segunda via boleto link direto | UX/suporte, baixo esforço |
| 4 | 32.1 Admin bolões filtros avançados | Paridade v1, operação |
| 5 | 32.5 Limite depósito/aposta | Jogo responsável, compliance |
| 6 | 32.2 Admin bolões impresso/passado | Operação |
| 7 | 32.4 Admin pedidos Checar pedidos | Operação, baixo esforço |
| 8 | 32.3 Admin bolões excluir | Operação (se necessário) |

**Compatibilidade:** Respeitar .cursor/rules/plataforma-loterias-padroes.mdc, v2-padroes-desenvolvimento.mdc e loterias/*.mdc. Não alterar src/ legado; usar API v2 e Core DAOs. Não implementar Loteca (LC) nem Lotogol (LG).

**Pedido no chat:** "Implementar Fase 32.X - [item]"

---

## Próximos Passos (análise v1→v2)

**Fontes:** Análise de `src/` v1, `frontend/`, `api/`, docs/plano-acao-v2-completo.md, .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: Mega Loterias, Sorte Online (apenas o que LP v2 ainda NÃO tem).

### Gaps de migração v1 → v2 (priorizados)

| Item | Fase | Prioridade | Esforço | Observação |
|------|------|------------|---------|------------|
| Criar bolão 100% na v2 (sem proxy v1) | 19.2 / 21.8 / 30.3 | Alta | Alto | **[x] Implementado** |
| Admin Campanhas: enviar campanha (e-mail) | 31.1 | Média | Médio | **[x] Implementado** |
| Admin: excluir cliente | 31.2 | Baixa | Médio | **[x] Implementado** (soft delete) |
| Admin: enviar bônus em lote | 31.3 | Baixa | Médio | **[x] Implementado** |
| Admin: clientes loteria online | 31.4 | Baixa | Baixo | **[x] Implementado** |
| Admin: enviar spam / spam acumulada | 31.5 | Baixa | Alto | **[x] Implementado** |
| Doctor integrado v2 (sem redirecionar v1) | 21.11 / 31.B2 | Baixa | Muito alto | Backlog; avaliar ROI |
| Teimosinha estender | 26.9 / 28.5 / 31.B1 | Baixa | Alto | **[x] Implementado** |

### O que já foi migrado (v1 → v2)

- Indique um amigo (22.1), Histórico indicações (22.8)
- Admin: Afiliados (22.3), Matrizes (22.4), Usuários (22.5), Loterias (22.6), Resgates (25.1), Relatório, Configurações, Pedidos, Clientes, Bolões, Concursos, Depoimentos, Notícias, **Campanhas (CRUD + enviar por segmento 31.1), Newsletter (enviar boletim 31.6)**
- Cron/tarefas (22.7, 23.2): CronController, runbook-cron.md; **cron boletim-newsletter (31.6)**
- Conta: limites (23.1), alterar senha (25.2), excluir conta (26.5), lembretes (26.2), pedidos crédito (26.8)
- Admin clientes: bloquear/desbloquear, extrato, add crédito, enviar bônus (29.1–29.2), filtros especiais (29.3), **excluir cliente (31.2), bônus em lote (31.3), filtro loteria online (31.4), spam acumulada (31.5)**
- **Conferência:** ConferenciaPorSiglaService (31.7). **Sessões:** Redis opcional (31.8, REDIS_DSN).
- Frontend: /minha-conta (22.10), badge Acumulou! em LoteriasHomeCards (22.9), FAQ (26.1), compartilhar bolão (26.3), filtro Sorteio hoje (26.6), alto contraste (26.10)

### Ordem sugerida para próximas implementações

1. **Fase 35 (prioridade por impacto):** 35.1 (carrinho persistido), 35.2 (carrinho expirar), 35.3 (admin parceiros), 35.4 (cron PIX esquecidos), 35.5 (loterias especiais), 35.6 (comparação resultados). Ver **Fase 35**.
2. **Backlog:** Doctor 100% v2 (34.B1). Avaliar ROI; esforço muito alto.
3. Refinamentos opcionais em fases já concluídas (SEO, UX, testes E2E adicionais).

4. Ver **"Fase 35"**, **"Fase 36"**, **"Fase 39"** e **"O que falta implementar"** (backlog 36.8, 36.9) para detalhes.

---

## O que falta implementar (resumo atual)

Itens **pendentes** ou em **backlog** após conclusão das Fases 0–40:

| Tipo | Item | Fase | Prioridade | Observação |
|------|------|------|------------|------------|
| **Backlog** | Doctor integrado 100% na v2 | 36.8 / 34.B1 / 37.5 | Baixa | Avaliar ROI; esforço muito alto |
| **Backlog** | API Caixa (resultados oficiais) | 36.9 / 34.B2 / 37.6 | Baixa | Depende da API |
| **Implementado** | Pagamento cartão direto no carrinho | 37.1 | Alta | [x] PagamentoCartaoModal + Cielo no carrinho |
| **Implementado** | Admin criar bolão por loteria | 37.2 | Média | [x] /admin/boloes/criar |
| **Implementado** | Admin filtros clientes (ativos, inativos) | 37.3 | Média | [x] Já existe |
| **Parcial** | Landing parceiros com cashbacks | 37.7 / 41.1 | Média | Inspiração Sorte Online; expandir benefícios por canal |
| **Implementado** | OpenAPI completo | 37.11 | Média | [x] 39.11 |
| **Implementado** | E2E expandidos | 37.12 | Média | [x] 39.8, 39.9, 39.10 |
| **Implementado** | Segunda via boleto | 37.4 / 39.1 | Baixa | [x] Pedidos sem link_boleto podem gerar via PagSeguro |
| **Implementado** | Admin Database backup | 39.2 | Baixa | [x] /admin/database |
| **Implementado** | Notificação push sorteio próximo | 41.4 | Média | LembreteSorteioService + cron |
| **Implementado** | Simulador "apostar X por mês" | 41.7 | Média | /ajuda/simulador-investimento |
| **Implementado** | Comparador de loterias | 41.8 | Média | /ajuda/comparador-loterias |
| **Implementado** | E2E fluxo cartão carrinho | 41.9 | Média | tests/e2e-browser.spec.ts |

**Fase 36 concluída (36.1–36.7):** Teimosinha visual, Teimosinha estender, Filtro concurso bolões, Validação backend, Notificação premiação, Log auditoria conferência, Suite E2E.

**Fases 31–41 concluídas.** Ver seção **Fase 42** para próximos passos detalhados.

---

## Comparativo Detalhado Mega Loterias vs LP v2 (2025-03)

| Recurso | Mega Loterias | LP v2 | Ação |
|---------|---------------|-------|------|
| Hero + 3 passos | Sim | Sim | — |
| Estatísticas globais (prêmios pagos) | Sim | Sim | — |
| Estatísticas por loteria (números mais sorteados) | Sim | Sim | [x] |
| Testador de Palpite | Sim | Sim | [x] |
| Tabela probabilidades | Sim | Sim | [x] |
| Surpresinha (quentes/frios) | Parcial | Sim | — |
| Simulador bolão | Parcial | Sim | — |
| Teimosinha visual | Sim | Sim | — |
| Link Ver Jogo premiações | Sim | Sim | — |
| Notícias | Sim | Sim | — |
| Categorias: Promoções, Curiosidades | Sim | Sim | [x] |
| Atendimento WhatsApp | Sim | Sim | [x] |
| Atendimento chat | Sim | Sim | [x] ChatWidget (Tawk.to) |
| Login social (Google, Facebook) | Sim | Sim | [x] |
| Cashback / Mega Turbinada | Sim | Sim | [x] |
| Instantâneas (raspadinha) | Sim (Sorte Online) | Protótipo | [x] /instantaneas |

---

## Referências Rápidas

| Documento | Conteúdo |
|----------|----------|
| docs/v2/01-visao-geral.md | Objetivo, decisões |
| docs/v2/02-stack-tecnologica.md | PHP, Next.js, MySQL |
| docs/v2/03-estrategia-coexistencia.md | v1 vs v2, rollback |
| docs/v2/04-arquitetura.md | Opção A (thin layer) |
| docs/v2/05-estrutura-pastas.md | Estrutura frontend + api |
| docs/v2/06-layout-ux.md | Mega Loterias, usabilidade |
| docs/referencias/mega-loterias-layout.md | Layout referência, notícias, premiações |
| docs/v2/07-seo.md | URLs, keywords |
| docs/v2/08-cronograma.md | Fases, estimativas |
| docs/v2/15-analise-completa-planos-futuros.md | Análise v1 vs v2, gaps, planos futuros |
| docs/analise-proximos-passos-v2.md | Próximos passos, ideias novas, prompt para análise |
| docs/v2/fase-18-implementacao.md | Detalhes da implementação Fase 18 (Cielo, chat, push, A/B, instantâneas) |
| docs/v2/fase-20-ideias.md | Fase 20 (webhooks, monitoramento, erro padronizado, jogo responsável, etc.) |
| docs/v2/fase-21-ideias.md | Fase 21 (especiais, admin dashboard/relatório/config, countdown, Doctor) |
| docs/v2/fase-22-ideias.md | Fase 22 (indique um amigo, admin afiliados/matrizes/usuários/loterias, cron, badge Acumulou!) |
| docs/v2/fase-23-ideias.md | Fase 23 (limite aposta, cron v2, login modal, número dinâmico chances, log auditoria) |
| docs/plano-acao-v2-completo.md § Fase 24 | Fase 24 (resgate prêmio, admin extrato/compradores, Entenda bolões, premiações filtro) — concluída |
| docs/plano-acao-v2-completo.md § Fase 25 | Fase 25 (admin pedidos de resgate, conta alterar senha, e-mail resgate aprovado) |
| docs/plano-acao-v2-completo.md § Fase 26 | Fase 26 (ideias novas pós-25: FAQ, lembrete, compartilhar bolão, exportar relatório, excluir conta, filtro sorteio hoje, etc.) — concluída |
| docs/plano-acao-v2-completo.md § Ideias Novas (pós-Fase 26) | Gaps v1→v2 priorizados, inspiração Mega/Sorte, ordem de execução pós-Fase 26 |
| docs/plano-acao-v2-completo.md § Fase 27 | Próxima onda: criar bolão 100% v2, admin pendentes, recuperar senha, número dinâmico chances, ideias-melhorias |
| docs/plano-acao-v2-completo.md § Fase 28 | Ideias Novas (pós-Fase 27): **concluída** — admin pedidos cancelar/resetar/reenviar e-mail, cron checar pagamentos, admin comprovantes/impressão, relatório apostas, E2E, SEO, landing especiais; 28.4 opcional e 28.5/28.6 em backlog |
| docs/plano-acao-v2-completo.md § Fase 29 | Ideias Novas (pós-Fase 28): admin adicionar crédito/enviar bônus, filtros clientes, duplicar bolão, SEO demais loterias, notificação premiação, histórico premiações, carrinho persistido/expirar |
| docs/plano-acao-v2-completo.md § Fase 30 | Ideias Novas (pós-Fase 29): admin filtro menos ativos, admin afiliados cancelar, criar bolão 100% v2, login/CTA home, simulador divisão bolão, validação carrinho, exportar relatório apostas CSV, log auditoria, PWA, API Caixa — concluída |
| docs/plano-acao-v2-completo.md § Fase 31 | Ideias Novas (pós-Fase 30): 31.1–31.8 implementados (Admin Campanhas enviar, excluir cliente, bônus lote, clientes loteria online, spam, boletim newsletter, conferência por sigla, Redis); backlog 31.B1–B3 |
| docs/plano-acao-v2-completo.md § Fase 32 | Ideias Novas (pós-Fase 31): 32.1–32.8 implementados; backlog Doctor 32.B1 |
| docs/plano-acao-v2-completo.md § Fase 33 | Ideias Novas (pós-Fase 32): 33.1–33.5 implementados (assinaturas, fidelidade esqueleto, performance, preferências, parceiros); pendem integrações |
| docs/plano-acao-v2-completo.md § Fase 34 | Ideias Novas (pós-Fase 33): 34.1–34.9 implementados; backlog Doctor 34.B1 |
| docs/plano-acao-v2-completo.md § Fase 35 | Ideias Novas (pós-Fase 34): carrinho persistido, admin parceiros, loterias especiais, UX resultados — concluída |
| docs/plano-acao-v2-completo.md § Fase 36 | Ideias Novas (pós-Fase 35): teimosinha visual, filtro concurso, validação backend, notificação premiação, E2E |
| docs/plano-acao-v2-completo.md § Fase 37 | Ideias Novas (pós-Fase 36): análise v1→v2, pagamento cartão carrinho, admin criar bolão, filtros clientes, inspiração Mega/Sorte |
| docs/v2/webhooks-pagamento.md | Webhooks Gerencianet, Mercado Pago, Cielo (Fase 20.1) |
| docs/v2/monitoramento-sentry.md | Sentry e GA4 (Fase 20.2) |
| docs/runbook-backup.md | Backup e restore do banco (Fase 20.5) |
| docs/v2/credenciais-producao.md | Variáveis de ambiente para Cielo, VAPID, Chat (Fase 19.7) |
| docs/v2/staging-e2e.md | Guia staging, dados anonimizados, E2E (Fase 19.6) |
| docs/arquitetura-atual/* | Fluxo v1.0, DAOs, rotas |
| docs/loterias/* | Regras, fluxo, estudo completo |
| .cursor/rules/plataforma-loterias-padroes.mdc | Padrões gerais |
| .cursor/rules/v2-padroes-desenvolvimento.mdc | Padrões v2 |
| .cursor/rules/loterias/*.mdc | Regras por loteria |

---

## Fase 33: Ideias Novas (pós-Fase 32) — Otimizações avançadas de produto

**Fontes:** Análise de `src/` v1, `frontend/`, `api/`, docs/plano-acao-v2-completo.md (Estado Atual, Já existe), .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/ (apenas o que LP v2 ainda NÃO tem).

*Regras: (1) Não sugerir o que já existe no Estado Atual / Já existe. (2) Priorizar por impacto (conversão, SEO, UX) e viabilidade técnica. (3) Priorizar o que já existe na v1 (migração completa) quando aplicável. (4) Respeitar .cursor/rules/ e padrões v2. (5) Loteca e Lotogol fora de escopo — não implementar.*

### Ideias novas (pós-Fase 32)

| Item | Descrição | Inspiração | Prioridade | Esforço estimado | Status |
|------|-----------|------------|------------|------------------|--------|
| 33.1 Assinaturas recorrentes por loteria | Permitir que o cliente crie “assinaturas” de jogos (ex.: Mega-Sena toda semana, Lotofácil diária), com renovação automática de apostas usando saldo/crédito, cancelamento a qualquer momento e resumo na área logada. Foco em retenção de jogadores frequentes. | Sorte Online enfatiza recorrência e facilidade para “não perder sorteios”, além de combos de jogos especiais; LP v2 ainda não possui modelo de assinatura recorrente. | Alta (retenção e LTV) | Alto (backend para agendamentos/renovações, UI de gestão, ajustes em conferência e notificações) | [x] Implementado |
| 33.2 Programa de fidelidade com pontos e níveis | Implementar sistema de pontos acumulados a cada aposta/depósito, com níveis (Bronze/Prata/Ouro) e benefícios (créditos extras, participação em bolões exclusivos, promoções segmentadas). Mostrar progresso em barra gamificada na área do cliente. | Mega Loterias e Sorte Online usam estatísticas globais, depoimentos e provas sociais para reforçar confiança; LP v2 pode ir além com fidelidade própria, recurso ainda inexistente. | Alta (conversão e frequência de jogo) | Muito alto (modelo de pontos, regras de expiração, telas cliente/admin, impactos fiscais/compliance) | [~] Esqueleto (DAOs, Service, Controller, /conta/fidelidade; pendem acúmulo em compras/depósitos) |
| 33.3 Dashboard “Minha performance” e ROI pessoal | Criar painel na área logada com visão de desempenho do cliente: total apostado, total em prêmios, ROI aproximado, distribuição por loteria e histórico de premiações em destaque. Complementa “Minhas premiações” com foco em transparência e jogo responsável. | Mega Loterias mostra “Total em prêmios pagos” e destaques de premiação; LP v2 já tem histórico de pedidos/premiações, mas não um dashboard consolidado de performance pessoal. | Média (UX, confiança, jogo responsável) | Médio (consultas agregadas, gráficos simples no frontend, reaproveitando dados já armazenados) | [x] Implementado |
| 33.4 Central de preferências de comunicação | Unificar e refinar preferências de notificação (e-mail, push, WhatsApp/SMS) em uma tela única: resultados, promoções, especiais, avisos de conferência, alertas de limite de jogo responsável. Permitir granularidade por tipo de comunicação e por loteria. | Mega Loterias destaca boletim diário e contato facilitado; Sorte Online aparece integrado a vários parceiros. LP v2 já envia e-mails/boletins, mas não oferece um hub de preferências fino para o cliente controlar tudo. | Média (LGPD, satisfação) | Médio (ajustes em modelo de notificação, UI de preferências, integração com canais existentes) | [x] Implementado (pendem integração com BoletimNewsletterService/AdminCampanhaService) |
| 33.5 Landing de parceiros e canais oficiais | Criar página dedicada “Onde apostar com a Lotérica Premiada” listando parceiros/canais (similar à seção de parceiros do Sorte Online), explicando benefícios por canal, regras de comissão/afiliados e links rastreáveis (UTM) para conversão. Integra com Admin Afiliados já existente. | Sorte Online tem página “Onde você encontra a Sorte Online” com bancos e programas parceiros; LP v2 já possui afiliados, mas não uma landing unificada de parceiros para SEO e conversão. | Média (SEO e aquisição) | Baixo/Médio (nova página frontend, endpoint simples para listar parceiros existentes, aproveitando estrutura de afiliados atual) | [x] Implementado (pendem popular tabela parceiro) |

**Migration:** `db/migrations/003_schema_fase33.php` — tabelas assinatura, cliente_preferencia_comunicacao, parceiro, fidelidade_saldo, fidelidade_historico. Executada com sucesso.

### Ordem sugerida de execução (Fase 33)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 33.1 Assinaturas recorrentes por loteria | Maior impacto em retenção/LTV e diferenciação frente concorrentes; embora seja complexo, se apoia em fluxos de apostas já maduros na v2 e gera aprendizado para evoluções futuras (ex.: combos e planos). |
| 2 | 33.3 Dashboard “Minha performance” e ROI pessoal | Usa dados já existentes (pedidos, créditos, premiações) e entrega transparência e jogo responsável, melhorando confiança do usuário com esforço médio. |
| 3 | 33.4 Central de preferências de comunicação | Complementa campanhas/newsletter/limites existentes, melhora LGPD e percepção de controle do usuário sobre comunicações, com esforço ainda controlado. |
| 4 | 33.5 Landing de parceiros e canais oficiais | Rápido de implementar e gera ganho em SEO/aquisição, além de reforçar integrações e afiliados já implementados na v2. |
| 5 | 33.2 Programa de fidelidade com pontos e níveis | Alto potencial de conversão/recorrência, mas esforço e complexidade regulatória muito altos; recomendado como projeto dedicado após consolidação das demais iniciativas da Fase 33. |

---

## Fase 34: Ideias Novas (pós-Fase 33) — Integrações e gaps v1→v2

**Fontes:** Análise de `src/` v1, `frontend/`, `api/`, docs/plano-acao-v2-completo.md (Estado Atual, Já existe), .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/ (apenas o que LP v2 ainda NÃO tem).

*Regras: (1) Não sugerir o que já existe no Estado Atual / Já existe. (2) Priorizar por impacto (conversão, SEO, UX) e viabilidade técnica. (3) Priorizar o que já existe na v1 (migração completa) quando aplicável. (4) Respeitar .cursor/rules/ e padrões v2. (5) Loteca e Lotogol fora de escopo — não implementar.*

### Ideias novas (pós-Fase 33)

| Item | Descrição | Inspiração | Prioridade | Esforço estimado |
|------|-----------|------------|------------|------------------|
| 34.1 Integrar fidelidade: acúmulo de pontos | Ligar FinalizarService e CreditoService ao FidelidadeHistoricoCoreDAO e FidelidadeSaldoCoreDAO para acumular pontos em compras e depósitos. Esqueleto já implementado (33.2). | Fase 33.2 | Alta (retenção) | Médio |
| 34.2 Integrar preferências em newsletter/campanhas | Checar ClientePreferenciaComunicacaoCoreDAO::aceita() antes de enviar em BoletimNewsletterService e AdminCampanhaService. Evita envio de comunicações não desejadas (LGPD). | Fase 33.4 | Média (LGPD) | Baixo |
| 34.3 Popular tabela parceiro | Seed ou CRUD admin para parceiros. Landing /parceiros e GET /api/v2/parceiros existem; tabela vazia. | Fase 33.5 | Baixa (SEO) | Baixo |
| 34.4 Pagamento direto do carrinho (PIX/cartão) | v1: pagarApostaComCartao, processarPagamentoCartaoDiretoCarrinho — finaliza aposta com cartão sem criar pedido de crédito separado. v2: fluxo exige 1) criar pedido crédito, 2) pagar, 3) voltar ao carrinho finalizar. Oferecer no carrinho: "Pagar com PIX" ou "Pagar com cartão" quando saldo insuficiente, criando pedido e finalizando em um fluxo unificado. | v1 BolaoController | Alta (conversão, UX) | Alto |
| 34.5 CTA "Comprar créditos" no carrinho quando saldo insuficiente | Quando saldo.total < valorTotal, exibir botão "Adicionar créditos" que leva a /conta/creditos com valor sugerido ou modal de compra. Evita abandono: usuário sabe que pode completar a compra. | ideias-melhorias §1 (UX) | Média (conversão) | Baixo |
| 34.6 PWA (Progressive Web App) | Modo offline para consultar resultados e histórico de jogos. Service worker, manifest.json. | ideias-melhorias §7, Fase 30.10 | Média (UX mobile) | Médio |
| 34.7 Preview de preço em tempo real no volante | Mostrar valor da aposta conforme o usuário marca números (especialmente LF, MG, QN com múltiplas combinações). Evitar surpresas. | ideias-melhorias §1 | Média (UX) | Baixo |
| 34.8 Validação antes de adicionar ao carrinho | Feedback imediato de erro ao tentar adicionar jogo inválido (ex.: MM com dezenas/trevos fora do limite). | ideias-melhorias §1 | Média (UX) | Baixo |
| 34.9 Landing parceiros com cashbacks por canal | Sorte Online: ofertas por parceiro (Méliuz, PicPay, Banco Inter, etc.) com % de cashback. Expandir /parceiros com benefícios por canal, links rastreáveis. | Sorte Online | Média (aquisição) | Médio |

### Backlog (já documentados)

| # | Item | Descrição | Prioridade | Esforço |
|---|------|-----------|------------|---------|
| 34.B1 | Doctor 100% v2 | Páginas Doctor (Erre 4, 5, 7, fechamentos, checkout, pagamento) na v2 sem redirecionar para v1. | Baixa | Muito alto |
| 34.B2 | API Caixa | Se disponível, consumir resultados oficialmente para evitar digitação manual. | Baixa | Depende da API |

### Ordem sugerida de execução (Fase 34)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 34.4 Pagamento direto do carrinho | Maior impacto em conversão; fluxo v1 já existe; reduz fricção para usuário sem saldo |
| 2 | 34.5 CTA "Comprar créditos" no carrinho | Complementa 34.4; baixo esforço; evita abandono |
| 3 | 34.1 Integrar fidelidade (acúmulo) | Esqueleto pronto; completa programa de fidelidade |
| 4 | 34.2 Integrar preferências | LGPD; baixo esforço |
| 5 | 34.3 Popular parceiros | Landing /parceiros; seed ou admin |
| 6 | 34.7 Preview preço no volante | UX; baixo esforço |
| 7 | 34.8 Validação antes de adicionar | UX; baixo esforço |
| 8 | 34.6 PWA | UX mobile; médio esforço |
| 9 | 34.9 Landing parceiros com cashbacks | Expandir /parceiros; inspiração Sorte Online |

**Compatibilidade:** Respeitar .cursor/rules/plataforma-loterias-padroes.mdc, v2-padroes-desenvolvimento.mdc e loterias/*.mdc. Não alterar src/ legado; usar API v2 e Core DAOs. Não implementar Loteca (LC) nem Lotogol (LG).

**Pedido no chat:** "Implementar Fase 34.X - [item]"

---

## Fase 35: Ideias Novas (pós-Fase 34) — Refinamentos e gaps v1→v2

**Fontes:** Análise completa de `src/` v1, `frontend/`, `api/`, docs/plano-acao-v2-completo.md (Estado Atual), .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/ (apenas o que LP v2 ainda NÃO tem).

*Regras: (1) Não sugerir o que já existe no Estado Atual / Já existe. (2) Priorizar fluxo ponta a ponta (jogos individuais → bolões → carrinho → finalizar → email confirmação). (3) Priorizar o que já existe na v1 (migração completa). (4) Respeitar .cursor/rules/ e padrões v2. (5) Loteca e Lotogol fora de escopo.*

### Ideias novas (pós-Fase 34)

| Item | Descrição | Inspiração | Prioridade | Esforço estimado |
|------|-----------|------------|------------|------------------|
| 35.1 Carrinho persistido | [x] Persistir carrinho no banco para usuários logados; evitar perda ao fechar navegador. CarrinhoUtil v1 usa sessão; v2 pode ter tabela carrinho_usuario ou similar. | ideias-melhorias.md §4 | Alta (conversão, UX) | Médio |
| 35.2 Carrinho expirar itens | [x] Expirar/remover itens do carrinho quando o concurso já foi sorteado. Evita tentativa de compra de concurso passado. | ideias-melhorias.md §4 | Média (integridade) | Baixo |
| 35.3 Admin CRUD parceiros | [x] Seed 34.3 popular tabela; falta admin para criar, editar e desativar parceiros. Endpoint GET /api/v2/parceiros existe. | v1 GerenciarClientes; Fase 33.5 | Média (operação) | Baixo |
| 35.4 Cron verificar pedidos PIX esquecidos | [x] v1 TarefasCronController::verificarPedidosPixEsquecidos — checar pedidos PIX pendentes e cancelar/notificar após prazo. Reduz pedidos órfãos. | v1 TarefasCronController | Média (operação) | Médio |
| 35.5 Loterias especiais completas | [x] Quina de São João, Dupla de Páscoa com volante e fluxo completo. Mega da Virada tem página; Lotofácil Independência (LFE) existe. Completar QN São João e DS Páscoa. | v1 quina_de_sao_joao, dupla_de_pascoa | Média (SEO, sazonalidade) | Médio |
| 35.6 Comparação automática em resultados | [x] Ao exibir resultados, destacar quais números da aposta do usuário foram sorteados (ex.: borda verde nos acertos). Melhora UX na conferência. | ideias-melhorias.md §1 | Média (UX) | Baixo |
| 35.7 Schema.org (Product, Event) | [x] Adicionar JSON-LD para Product (apostas) e Event (sorteios) nas páginas. Melhora rich snippets no Google. | ideias-melhorias.md §3 | Baixa (SEO) | Baixo |
| 35.8 Admin imprimir volantes | [x] v1 GerenciarBoloesController::imprimir_volantes — gerar PDF ou view para impressão dos volantes de um bolão. Útil para bolões físicos. | v1 GerenciarBoloes | Baixa (operação) | Médio |

### Backlog (já documentados)

| # | Item | Descrição | Prioridade | Esforço |
|---|------|-----------|------------|---------|
| 34.B1 | Doctor 100% v2 | Páginas Doctor (Erre 4, 5, 7, fechamentos, checkout, pagamento) na v2 sem redirecionar para v1. | Baixa | Muito alto |
| 34.B2 | API Caixa | Se disponível, consumir resultados oficialmente para evitar digitação manual. | Baixa | Depende da API |

### Ordem sugerida de execução (Fase 35)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 35.1 Carrinho persistido | Maior impacto em conversão; evita perda de carrinho; fluxo ponta a ponta mais robusto |
| 2 | 35.2 Carrinho expirar itens | Complementa 35.1; baixo esforço; integridade |
| 3 | 35.3 Admin CRUD parceiros | Seed existe; operação para manter parceiros atualizados |
| 4 | 35.4 Cron PIX esquecidos | Operação; reduz pedidos órfãos |
| 5 | 35.5 Loterias especiais completas | Sazonalidade; paridade v1 |
| 6 | 35.6 Comparação automática resultados | UX; baixo esforço |
| 7 | 35.7 Schema.org | SEO; baixo esforço |
| 8 | 35.8 Admin imprimir volantes | Operação; nicho |

### Fluxo ponta a ponta v2 (verificado)

O fluxo completo **jogos individuais → bolões → carrinho → finalizar → email confirmação** está implementado na v2:

- **Jogos individuais:** Volantes em todas as 9 loterias (MG, LF, QN, LM, DS, TM, ST, SS, MM); add ao carrinho via POST /api/v2/carrinho
- **Bolões:** Listagem, compra de cotas, criar bolão (wizard /criar-bolao)
- **Carrinho:** GET/POST/DELETE /api/v2/carrinho; pagamento direto PIX (34.4), CTA créditos (34.5)
- **Finalizar:** POST /api/v2/carrinho/finalizar; FinalizarService persiste grupo+bolão, desconta saldo, aplica cashback, fidelidade
- **Email confirmação:** FinalizarService::enviarEmailConfirmacao() usa bodyCompraDeJogo (Krypitonite\Mail\Email)
- **Notificação premiados:** ConferenciaService::notificarPremiados; POST /api/v2/conferencia/{id}/notificar

**Compatibilidade:** Respeitar .cursor/rules/plataforma-loterias-padroes.mdc, v2-padroes-desenvolvimento.mdc e loterias/*.mdc. Não alterar src/ legado; usar API v2 e Core DAOs. Não implementar Loteca (LC) nem Lotogol (LG).

**Pedido no chat:** "Implementar Fase 35.X - [item]"

---

## Fase 36: Ideias Novas (pós-Fase 35) — Refinamentos e integrações finais

**Fontes:** Análise completa de `src/` v1, `frontend/`, `api/`, docs/plano-acao-v2-completo.md (Estado Atual), .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/ (apenas o que LP v2 ainda NÃO tem).

*Regras: (1) Não sugerir o que já existe no Estado Atual / Já existe. (2) Priorizar por impacto (conversão, SEO, UX) e viabilidade técnica. (3) Priorizar o que já existe na v1 (migração completa). (4) Respeitar .cursor/rules/ e padrões v2. (5) Loteca e Lotogol fora de escopo.*

### Análise v1→v2 (resumo)

- **Fluxo ponta a ponta:** Implementado (jogos individuais → bolões → carrinho → finalizar → email confirmação).
- **Integrações 34.1 e 34.2:** Fidelidade (acúmulo em compras/depósitos) e preferências (newsletter/campanhas) já integrados.
- **Admin v2:** Cobre v1 e adiciona Newsletter, Parceiros, Notícias.
- **Gaps restantes:** Doctor 100% v2, API Caixa, refinamentos UX, testes E2E.

### Ideias novas (pós-Fase 35)

| Item | Descrição | Inspiração | Prioridade | Esforço estimado | Status |
|------|-----------|------------|------------|------------------|--------|
| 36.1 Teimosinha visual | Indicador claro de quantos concursos restam quando o usuário usa Teimosinha (área Meus Jogos). | ideias-melhorias.md §1; Mega Loterias | Média (UX) | Baixo | [x] |
| 36.2 Teimosinha estender | Na área "Meus Jogos", permitir comprar mais concursos para o mesmo jogo (estender teimosinha). | ideias-melhorias.md §1; retenção | Baixa | Alto | [x] (31.B1) |
| 36.3 Filtro por concurso em bolões | Na listagem de bolões, filtrar pelo próximo concurso específico (ex.: "Concurso 2750"). | ideias-melhorias.md §1 | Média (UX) | Baixo | [x] |
| 36.4 Validação backend antes de adicionar | Validar limites de marcação (MM dezenas/trevos, LF 15-20, etc.) no backend ao adicionar ao carrinho; retornar erro estruturado. | ideias-melhorias.md §2 | Média (integridade) | Baixo | [x] |
| 36.5 Notificação de premiação (push/e-mail) | E-mail ou push quando o usuário for premiado (após conferência). Complementa notificarPremiados. | ideias-melhorias.md §1 | Média (retenção) | Médio | [x] |
| 36.6 Log de auditoria de conferência | Registrar quem conferiu, quando e resultado (tabela ou log estruturado). | ideias-melhorias.md §4 | Baixa (compliance) | Médio | [x] |
| 36.7 Suite E2E completa | Playwright ou similar: fluxo cadastro → aposta → finalizar → conferir. Ambiente staging. | docs/v2/staging-e2e.md; ideias-melhorias §8 | Média (qualidade) | Alto | [x] |
| 36.8 Doctor 100% v2 | Páginas Doctor (Erre 4, 5, 7, fechamentos, checkout, pagamento) na v2 sem redirecionar para v1. | v1 Doctor/*; Fase 34.B1 | Baixa (produto paralelo) | Muito alto | [ ] backlog |
| 36.9 API Caixa | Se disponível, consumir resultados oficialmente para evitar digitação manual. | ideias-melhorias.md §6; Fase 34.B2 | Baixa | Depende da API | [ ] backlog |

### Backlog (já documentados)

| # | Item | Descrição | Prioridade | Esforço |
|---|------|-----------|------------|---------|
| 34.B1 | Doctor 100% v2 | Páginas Doctor na v2 sem redirecionar para v1. | Baixa | Muito alto |
| 34.B2 | API Caixa | Consumir resultados oficiais (se disponível). | Baixa | Depende da API |

### Ordem sugerida de execução (Fase 36)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 36.1 Teimosinha visual | Quick win; UX na área do cliente |
| 2 | 36.3 Filtro por concurso em bolões | Quick win; melhora descoberta |
| 3 | 36.4 Validação backend | Integridade; evita jogos inválidos |
| 4 | 36.5 Notificação de premiação | Retenção; complementa conferência |
| 5 | 36.7 Suite E2E | Qualidade; detectar regressões |
| 6 | 36.6 Log auditoria conferência | Compliance; rastreabilidade |
| 7 | 36.2 Teimosinha estender | Retenção; esforço alto |
| 8 | 36.8 Doctor v2 | Avaliar ROI |
| 9 | 36.9 API Caixa | Se API disponível |

### O que já existe (não duplicar)

- **Fase 36 implementada (36.1–36.7):** Teimosinha visual (badge concursos restantes em Meus Jogos); Teimosinha estender (POST /conta/estender-teimosinha, botão "Comprar mais concursos" + modal); Filtro por concurso em bolões (BolaoLista); Validação backend (PrecoService::validarNumerosComMensagem, CarrinhoController retorna code VALIDATION_ERROR); Notificação premiação (ConferenciaService::notificarPremiados); Log auditoria conferência (conferencia_audit_log com detalhe JSON); Suite E2E (Playwright: cadastro, admin concursos, fluxo ponta a ponta).
- **Fidelidade acúmulo (34.1):** FinalizarService::acumularFidelidadeCompra; CreditoService, Webhooks, AdminPedidoService acumulam em depósitos.
- **Preferências em newsletter/campanhas (34.2):** BoletimNewsletterService e AdminCampanhaService checam ClientePreferenciaComunicacaoCoreDAO::aceita() antes de enviar.
- **Surpresinha quentes/frios:** useSurpresinhaInteligente; SurpresinhaButtons.
- **Simulador divisão bolão:** BolaoCard ou similar.
- **Preview preço em tempo real:** PrecoPreview.
- **Indicador cotas restantes:** BolaoCard com cotas_disponiveis.

**Compatibilidade:** Respeitar .cursor/rules/plataforma-loterias-padroes.mdc, v2-padroes-desenvolvimento.mdc e loterias/*.mdc. Não alterar src/ legado; usar API v2 e Core DAOs. Não implementar Loteca (LC) nem Lotogol (LG).

**Pedido no chat:** "Implementar Fase 36.X - [item]"

---

## Fase 37: Ideias Novas (pós-Fase 36) — Análise v1→v2 e inspiração Mega/Sorte

**Fontes:** Análise completa de `src/` v1 (controllers, views, admin), `frontend/` (estrutura, páginas, componentes, lib/api), docs/plano-acao-v2-completo.md (Estado Atual, Já existe), .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/ (apenas o que LP v2 ainda NÃO tem).

*Regras: (1) Não sugerir o que já existe no Estado Atual / Já existe. (2) Priorizar por impacto (conversão, SEO, UX) e viabilidade técnica. (3) Priorizar o que já existe na v1 (migração completa). (4) Respeitar .cursor/rules/ e padrões v2. (5) Loteca e Lotogol fora de escopo.*

### Fluxo ponta a ponta v2 (verificado)

O fluxo **jogos individuais → bolões → carrinho → finalizar → email confirmação** está implementado:

- **Jogos individuais:** Volantes em MG, LF, QN, LM, DS, TM, ST, SS, MM; POST /api/v2/carrinho
- **Bolões:** Listagem, compra de cotas, wizard /criar-bolao
- **Carrinho:** PIX direto (handlePagarComPix), CTA "Adicionar créditos" com valor sugerido, persistido para logados
- **Finalizar:** POST /api/v2/carrinho/finalizar; FinalizarService persiste grupo+bolão, desconta saldo
- **Email confirmação:** FinalizarService::enviarEmailConfirmacao() usa bodyCompraDeJogo

### Gaps de migração v1 → v2 (o que a v1 faz e a v2 ainda não)

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 37.1 | **Pagamento direto com cartão no carrinho** | v1: BolaoController::processarPagamentoCartaoDiretoCarrinhoAction, pagarApostaComCartaoAction — finaliza aposta com cartão sem criar pedido de crédito separado. v2: só PIX direto no carrinho; cartão exige ir a /conta/creditos. | v1 BolaoController | Alta (conversão) | Alto | [ ] pendente |
| 37.2 | **Admin: criar bolão por loteria (interface admin)** | v1: GerenciarGruposController::create com sigla (MG, LF, MGE, DSE, etc.) — admin cria bolões diretamente. v2: wizard /criar-bolao é para cliente; admin v2 não tem tela equivalente para criar bolão como admin. | v1 menu_padrao_admin (create por sigla) | Média (operação) | Médio | [ ] pendente |
| 37.3 | **Admin Clientes: filtros especiais** | v1: GerenciarClientesController — ativos (Mais Frequentes), menos_ativos, nao_apostaram, inativos. v2 admin/clientes tem esses filtros. | v1 menu admin | Média (operação) | Baixo | [x] Implementado |
| 37.4 | **Segunda via boleto** | v1 ou ideias-melhorias: permitir reimpressão de boleto para pedidos pendentes. | ideias-melhorias.md §1 (Fase 26) | Baixa (suporte) | Médio | [x] implementado (39.1) |
| 37.5 | **Doctor 100% v2** | Páginas Doctor (Erre 4, 5, 7, fechamentos, checkout) na v2 sem redirecionar para v1. | v1 Doctor/*; Fase 34.B1 | Baixa (produto paralelo) | Muito alto | [ ] backlog |
| 37.6 | **API Caixa** | Consumir resultados oficiais para evitar digitação manual. | ideias-melhorias.md §6; Fase 34.B2 | Baixa | Depende da API | [ ] backlog |

### Ideias de inspiração (Mega Loterias / Sorte Online) que LP v2 ainda NÃO tem

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 37.7 | **Landing parceiros com cashbacks por canal** | Sorte Online: ofertas por parceiro (Méliuz, PicPay, Banco Inter) com % de cashback. Expandir /parceiros com benefícios por canal, links rastreáveis. | Sorte Online (lp.sorteonline.com.br/ofertas-de-parceiros) | Média (aquisição) | Médio | [ ] pendente (34.9) |
| 37.8 | **Fidelidade: acúmulo completo** | 33.2 esqueleto existe; 34.1 integrou compras/depósitos. Verificar se níveis (Bronze/Prata/Ouro) e benefícios estão implementados. | ideias-melhorias.md; Fase 33.2 | Média (retenção) | Alto | [~] parcial |
| 37.9 | **PWA modo offline** | Consultar resultados e histórico de jogos offline. Service worker, cache. | ideias-melhorias.md §7; Fase 34.6 | Média (UX mobile) | Médio | [~] manifest existe |
| 37.10 | **Contagem regressiva em destaque (especiais)** | Sorte Online: cards no topo com "Sorteio: DD/MM", valor em destaque. LP v2 tem EspeciaisHomeSection e CountdownBadge; avaliar refinamento. | Sorte Online (home) | Baixa (refinamento) | Baixo | [x] parcial |
| 37.11 | **OpenAPI completo e atualizado** | Garantir que api/docs/openapi.yaml cubra todos os endpoints atuais (conta, admin, cron, etc.). | ideias-melhorias.md §9 | Média (manutenção) | Médio | [x] implementado (39.11) |
| 37.12 | **Testes E2E expandidos** | Suite atual cobre cadastro, admin concursos, fluxo ponta a ponta. Adicionar: fluxo PIX no carrinho, compra de cotas bolão, criar bolão wizard. | docs/v2/staging-e2e.md | Média (qualidade) | Médio | [x] implementado (39.8, 39.9, 39.10) |

### Ordem sugerida de execução (Fase 37)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 37.1 Pagamento cartão direto no carrinho | Maior impacto em conversão; paridade com v1 |
| 2 | 37.2 Admin criar bolão por loteria | Operação; paridade com v1 admin |
| 3 | 37.7 Landing parceiros cashbacks | Aquisição; inspiração Sorte Online |
| 4 | 37.11 OpenAPI completo | Manutenção; documentação |
| 5 | 37.12 E2E expandidos | Qualidade; regressão |
| 6 | 37.4 Segunda via boleto | Suporte; se houver demanda |
| 7 | 37.5 Doctor v2 | Avaliar ROI |
| 8 | 37.6 API Caixa | Se API disponível |

### O que já existe (não duplicar)

- **Fluxo ponta a ponta:** Jogos individuais, bolões, carrinho (PIX direto, CTA créditos), finalizar, email confirmação.
- **Carrinho:** Persistido para logados; expira itens de concurso sorteado; PIX direto quando saldo insuficiente; link "Adicionar créditos" com valor sugerido.
- **Admin v2:** Dashboard, relatório, config, pedidos, resgates, afiliados, loterias, matrizes, usuários, clientes, bolões, concursos, campanhas, newsletter, depoimentos, parceiros, notícias.
- **Fase 36:** Teimosinha visual, estender, filtro concurso, validação backend, notificação premiação, log auditoria, suite E2E.

**Compatibilidade:** Respeitar .cursor/rules/plataforma-loterias-padroes.mdc, v2-padroes-desenvolvimento.mdc e loterias/*.mdc. Não alterar src/ legado; usar API v2 e Core DAOs. Não implementar Loteca (LC) nem Lotogol (LG).

**Pedido no chat:** "Implementar Fase 37.X - [item]"

---

## Fase 38: Ideias Novas (pós-Fase 37) — Análise completa v1→v2 e inspiração Mega/Sorte

**Fontes:** Análise completa de `src/` v1 (controllers, views, admin), `frontend/` (estrutura, páginas, componentes, lib/api), docs/plano-acao-v2-completo.md (Estado Atual, Já existe), .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/ (apenas o que LP v2 ainda NÃO tem).

*Regras: (1) Não sugerir o que já existe no Estado Atual / Já existe. (2) Priorizar fluxo ponta a ponta (jogos individuais → bolões → carrinho → finalizar → email confirmação). (3) Priorizar o que já existe na v1 (migração completa). (4) Respeitar .cursor/rules/ e padrões v2. (5) Loteca e Lotogol fora de escopo.*

### Correção: Doctor 100% v2 — JÁ IMPLEMENTADO

O Doctor Lotofácil está **100% na v2** (não é backlog):
- **Erre 4, 5, 7:** DoctorErreForm + API gerarApostasErre, adicionarAoCarrinho
- **Fechamentos:** DoctorFechamentosPage + gerarApostasFechamento
- **Checkout:** DoctorCheckoutPage (landing com links para fechamentos, erre, carrinho)
- Fluxo: gerar apostas → adicionar ao carrinho v2 → finalizar no carrinho v2

### Fluxo ponta a ponta v2 (verificado)

O fluxo **jogos individuais → bolões → carrinho → finalizar → email confirmação** está implementado:
- **Jogos individuais:** Volantes em MG, LF, QN, LM, DS, TM, ST, SS, MM; POST /api/v2/carrinho
- **Bolões:** Listagem, compra de cotas, wizard /criar-bolao, admin criar bolão (37.2)
- **Carrinho:** PIX direto, cartão Cielo (37.1), CTA créditos, persistido para logados
- **Finalizar:** POST /api/v2/carrinho/finalizar; FinalizarService persiste grupo+bolão, desconta saldo
- **Email confirmação:** FinalizarService::enviarEmailConfirmacao() usa bodyCompraDeJogo

### Gaps de migração v1 → v2 (o que a v1 faz e a v2 ainda não)

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 38.1 | **v1 BolaoController: fluxos especiais Mega da Virada / Quina São João** | v1: fazer_meu_fechamento_mega_da_viradaAction, fazer_meu_quina_de_sao_joaoAction — criação de bolão/fechamento com interface específica para especiais. v2 tem páginas /mega-da-virada, /quina-sao-joao; validar se wizard criar-bolão cobre 100% o fluxo. | v1 BolaoController | Baixa (sazonalidade) | Médio | [x] validado |
| 38.2 | **v1 Carrinho: modal de jogos no carrinho** | v1 Carrinho/View/Carrinho/modal_jogos.php — exibe detalhe dos jogos no carrinho. v2 CarrinhoItemCard com expandir/colapsar e formatação por sigla (TM, ST, SS, MM). | v1 CarrinhoController | Baixa (UX) | Baixo | [x] implementado |
| 38.3 | **v1 Admin: verificar pedidos PIX manualmente** | v1 TarefasCronController::verificarTodosPedidosAction — admin dispara checagem de pagamentos. v2 tem POST /cron/checar-pagamentos e botão em admin/pedidos (32.4). | v1 TarefasCron | Média (operação) | Baixo | [x] 32.4 |
| 38.4 | **v1 Afiliado: painel do afiliado** | v1 pode ter painel para afiliado ver seus pedidos/indicados. v2 admin/afiliados existe; verificar se afiliado tem área própria ou só admin. | v1 Afiliado | Baixa | Médio | [x] validado |

### Ideias de inspiração (Mega Loterias / Sorte Online) que LP v2 ainda NÃO tem

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 38.5 | **Boletim diário na home (formulário)** | Mega Loterias: "Receba resultados, próximos sorteios e premiações em primeira mão" — bloco de newsletter na home. LP v2 NewsletterForm em destaque (acima da dobra). | Mega Loterias (home) | Média (retenção) | Baixo | [x] implementado |
| 38.6 | **"Acesse a sua conta" na home** | Sorte Online: bloco "Acesse a sua conta" com formulário de login na home. LP v2 tem LoginCTAHome (30.4); validar se está em destaque. | Sorte Online (home) | Média (conversão) | Baixo | [x] 30.4 |
| 38.7 | **Estatísticas dinâmicas na home** | Mega Loterias: "R$ --- Total em Prêmios Pagos", "Maior Prêmio Pago". LP v2 EstatisticasSection usa GET /config/estatisticas na home. | Mega Loterias | Média (confiança) | Baixo | [x] implementado |
| 38.8 | **URLs amigáveis apostar-na-[loteria]** | v1 usa /apostar-na-mega-sena. v2 next.config.js redirect 301 para /mega-sena, /lotofacil, etc. | v1 .htaccess | Baixa (SEO) | Baixo | [x] implementado |
| 38.9 | **Surpresinha "números quentes/frios"** | Surpresinha inteligente com números mais/menos sorteados. LP v2 useSurpresinhaInteligente + SurpresinhaButtons usam getResultados (API real). | ideias-melhorias.md §1 | Média (UX) | Médio | [x] validado |
| 38.10 | **Comparação automática em resultados** | Ao ver resultados, destacar números da aposta do usuário que foram sorteados. LP v2 ResultadosLista + ResultadoCard (ring em acertos). | ideias-melhorias.md §1 | Média (UX) | Baixo | [x] 35.6 |

### Refinamentos e qualidade

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 38.11 | **Fidelidade: níveis e benefícios** | 37.8: Níveis Bronze/Prata/Ouro (500/2000 pts), cashback extra Prata 0,5% Ouro 1%, benefícios na /conta/fidelidade. | ideias-melhorias.md; Fase 33.2 | Média (retenção) | Alto | [x] implementado |
| 38.12 | **PWA: cache ampliado** | 37.9: Manifest + service worker; cache resultados, jogos, concursos, loterias, config/estatisticas. | ideias-melhorias.md §7 | Média (UX mobile) | Médio | [x] implementado |
| 38.13 | **Monitoramento: Sentry ou similar** | ideias-melhorias §10: Frontend @sentry/nextjs configurado (NEXT_PUBLIC_SENTRY_DSN). API PHP: docs/v2/13-monitoramento.md. | ideias-melhorias.md §10 | Média (observabilidade) | Médio | [x] configurado |
| 38.14 | **Staging e backup documentado** | ideias-melhorias §11: docs/staging-backup.md com staging, backup automático e procedimento restore. | ideias-melhorias.md §11 | Média (confiabilidade) | Alto | [x] documentado |

### Backlog (já documentados)

| # | Item | Descrição | Prioridade | Esforço | Status |
|---|------|-----------|------------|---------|--------|
| 38.B1 | **API Caixa** | Consumir resultados oficiais (se disponível). | Baixa | Depende da API | [ ] backlog |

### Ordem sugerida de execução (Fase 38)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 38.5 Boletim diário na home | Retenção; quick win |
| 2 | 38.7 Estatísticas dinâmicas home | Confiança; validar se já existe |
| 3 | 38.8 URLs apostar-na-* redirect | SEO; links antigos |
| 4 | 38.9 Surpresinha quentes/frios | UX; validar implementação |
| 5 | 38.11 Fidelidade níveis | Retenção; esforço alto |
| 6 | 38.13 Monitoramento Sentry | Observabilidade |
| 7 | ~~38.1–38.4 Validar gaps v1~~ | ✅ Concluído — ver docs/validacao-fase-38-1-2-4.md |
| — | 38.B1 API Caixa | Se API disponível |

### Estado da Fase 38 (atualizado)

**Gaps v1→v2 (38.1–38.4):** ✅ Todos validados/implementados.
- 38.1: Equivalente — wizard inclui concursos especiais (Mega da Virada, Quina São João)
- 38.2: **Implementado** — CarrinhoItemCard com expandir/colapsar e formatação por sigla
- 38.3: 32.4 — botão admin checar PIX
- 38.4: Equivalente — /indique + /conta/indicacoes cobrem painel afiliado

**Implementados (38.5–38.14):**
- 38.5 NewsletterForm | 38.6 LoginCTAHome | 38.7 EstatisticasSection | 38.8 Redirect apostar-na-*
- 38.9 Surpresinha quentes/frios | 38.10 Comparação resultados | 38.11 Fidelidade níveis
- 38.12 PWA cache ampliado | 38.13 Sentry | 38.14 docs/staging-backup.md

**Backlog:** 38.B1 API Caixa (depende da API)

Ver **docs/validacao-fase-38-1-2-4.md** para detalhes da validação 38.1, 38.2, 38.4.

### O que já existe (não duplicar)

- **Fluxo ponta a ponta:** Jogos individuais, bolões, carrinho (PIX, cartão 37.1), finalizar, email confirmação.
- **Doctor 100% v2:** Erre 4/5/7, Fechamentos, Checkout — tudo na v2.
- **Fase 37:** 37.1 cartão, 37.2 admin criar bolão, 37.4 segunda via boleto, 37.7 parceiros cashbacks, 37.11 OpenAPI, 37.12 E2E.
- **Admin v2:** Dashboard, relatório, config, pedidos, resgates, afiliados, loterias, matrizes, usuários, clientes, bolões, concursos, campanhas, newsletter, depoimentos, parceiros, notícias.

**Compatibilidade:** Respeitar .cursor/rules/plataforma-loterias-padroes.mdc, v2-padroes-desenvolvimento.mdc e loterias/*.mdc. Não alterar src/ legado; usar API v2 e Core DAOs. Não implementar Loteca (LC) nem Lotogol (LG).

**Pedido no chat:** "Implementar Fase 38.X - [item]"

---

## Fase 39: Ideias Novas (pós-Fase 38) — Análise completa v1→v2 e inspiração Mega/Sorte

**Fontes:** Análise completa de `src/` v1 (controllers, views, admin), `frontend/` (estrutura, páginas, componentes, lib/api), docs/plano-acao-v2-completo.md (Estado Atual, Já existe), .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/ (apenas o que LP v2 ainda NÃO tem).

*Regras: (1) Não sugerir o que já existe no Estado Atual / Já existe. (2) Priorizar fluxo ponta a ponta (jogos individuais → bolões → carrinho → finalizar → email confirmação). (3) Priorizar o que já existe na v1 (migração completa). (4) Respeitar .cursor/rules/ e padrões v2. (5) Loteca e Lotogol fora de escopo.*

### Fluxo ponta a ponta v2 (verificado)

O fluxo **jogos individuais → bolões → carrinho → finalizar → email confirmação** está implementado:

- **Jogos individuais:** Volantes em MG, LF, QN, LM, DS, TM, ST, SS, MM; POST /api/v2/carrinho
- **Bolões:** Listagem, compra de cotas, wizard /criar-bolao, admin criar bolão (/admin/boloes/criar)
- **Carrinho:** PIX direto, cartão Cielo (37.1), CTA créditos, persistido para logados, expira itens
- **Finalizar:** POST /api/v2/carrinho/finalizar; FinalizarService persiste grupo+bolão, desconta saldo
- **Email confirmação:** FinalizarService::enviarEmailConfirmacao() usa bodyCompraDeJogo

### Gaps de migração v1 → v2 (o que a v1 faz e a v2 ainda não)

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 39.1 | **Segunda via boleto (refinamento)** | v1 GerenciarPedidosCreditoController: reenviar e-mail com link do boleto. v2 tem GET /creditos/pedido/{id}/boleto e link "Ver boleto" em conta/creditos. Validar se pedidos pendentes sem link_boleto podem solicitar nova geração. | v1 GerenciarPedidosCredito | Baixa (suporte) | Baixo | [x] implementado |
| 39.2 | **Admin: Database backup/restore** | v1 DatabaseController — operação de backup/restore do banco. v2 docs/staging-backup.md documenta procedimento; não há interface admin. | v1 DatabaseController | Baixa (operação) | Médio | [x] implementado |
| 39.3 | **Admin: Configurações expandidas** | v1 Admin ContaController — config da plataforma. v2 admin/configuracoes cobre gateways, SMTP, contato. Verificar se falta: horários bloqueio por loteria, valor mínimo resgate, etc. | v1 ContaController | Média (operação) | Baixo | [x] validado |

### Ideias de inspiração (Mega Loterias / Sorte Online) que LP v2 ainda NÃO tem

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 39.4 | **Home: cards de loterias com "Sorteio: DD/MM" em destaque** | Sorte Online: cada card de loteria exibe data do próximo sorteio e valor do prêmio em destaque. LP v2 EspeciaisHomeSection e LoteriasHomeCards existem; avaliar refinamento visual (data mais visível, valor maior). | Sorte Online (home) | Média (conversão) | Baixo | [x] implementado |
| 39.5 | **Filtro "Acumulou!" na listagem de loterias** | Mega Loterias: destaque para loterias acumuladas. LP v2 tem badge "Acumulou!" em LoteriasHomeCards. Adicionar filtro na página /loterias: "Mostrar apenas acumuladas". | Mega Loterias | Baixa (UX) | Baixo | [x] implementado |
| 39.6 | **Landing "Onde você encontra" (parceiros)** | Sorte Online: seção "Onde você encontra a Sorte Online" com logos PicPay, PagBank, Banco Inter, etc. LP v2 ParceirosSection e /parceiros existem; validar se links rastreáveis e benefícios por canal estão completos (37.7). | Sorte Online (lp.sorteonline.com.br/ofertas-de-parceiros) | Média (aquisição) | Médio | [~] 37.7 parcial |
| 39.7 | **Notificação push para sorteio próximo** | Mega/Sorte: lembrete próximo ao sorteio. LP v2 tem lembrete (POST /conta/lembretes) e push (POST /conta/push-subscribe). Validar se fluxo de "notificar X horas antes" está completo. | ideias-melhorias.md §1 | Média (retenção) | Médio | [ ] validar |

### Refinamentos e qualidade

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 39.8 | **E2E: fluxo PIX no carrinho** | Suite E2E atual cobre cadastro, admin concursos, fluxo ponta a ponta. Adicionar cenário: carrinho com saldo insuficiente → PIX direto → finalizar. | Fase 37.12 | Média (qualidade) | Médio | [x] implementado |
| 39.9 | **E2E: compra de cotas bolão** | Cenário E2E: listar bolões → selecionar cota(s) → adicionar ao carrinho → finalizar. | Fase 37.12 | Média (qualidade) | Médio | [x] implementado |
| 39.10 | **E2E: wizard criar bolão** | Cenário E2E: /criar-bolao → selecionar loteria → concurso → preencher volante → criar → finalizar. | Fase 37.12 | Média (qualidade) | Alto | [x] implementado |
| 39.11 | **OpenAPI: cobrir endpoints admin/cron** | Garantir que api/docs/openapi.yaml inclua todos os endpoints de admin (clientes, bolões, resgates, afiliados, config, etc.) e cron. | Fase 37.11 | Média (manutenção) | Médio | [x] implementado |
| 39.12 | **Testes unitários: FinalizarService** | Cobrir cenários de finalização (jogos individuais, bolões, teimosinha, saldo insuficiente, email confirmação). | ideias-melhorias.md §8 | Média (qualidade) | Médio | [x] implementado |

### Backlog (já documentados)

| # | Item | Descrição | Prioridade | Esforço | Status |
|---|------|-----------|------------|---------|--------|
| 39.B1 | **API Caixa** | Consumir resultados oficiais (se disponível). | Baixa | Depende da API | [ ] backlog |
| 39.B2 | **Doctor 100% v2** | Doctor já na v2 (Erre 4/5/7, Fechamentos, Checkout). Pagamento Doctor pode usar fluxo v2 créditos. | Baixa | Médio | [ ] backlog |

### Ordem sugerida de execução (Fase 39)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 39.4 Cards loterias com data/valor em destaque | Conversão; quick win |
| 2 | 39.3 Validar admin configurações | Operação; garantir paridade v1 |
| 3 | 39.8 E2E fluxo PIX carrinho | Qualidade; regressão |
| 4 | 39.11 OpenAPI admin/cron | Manutenção |
| 5 | 39.9 E2E compra cotas bolão | Qualidade |
| 6 | 39.12 Testes FinalizarService | Qualidade |
| 7 | 39.1 Validar segunda via boleto | Suporte |
| 8 | 39.5 Filtro acumuladas | UX |
| 9 | 39.10 E2E wizard criar bolão | Qualidade; esforço alto |
| 10 | 39.2 Admin Database backup | Operação |

### O que já existe (não duplicar)

- **Fluxo ponta a ponta:** Jogos individuais, bolões, carrinho (PIX, cartão), finalizar, email confirmação.
- **Admin v2:** Dashboard, relatório (créditos, apostas), config, pedidos, resgates, afiliados, loterias, matrizes, usuários, clientes (extrato, addCredito, enviarBonus, bloquear, spam acumulada), bolões (comprovantes, compradores, duplicar, imprimir volantes, criar), concursos, campanhas, newsletter, depoimentos, parceiros, notícias.
- **Fases 37–38:** Cartão direto, admin criar bolão, segunda via (link em conta/creditos), parceiros cashbacks, OpenAPI, E2E, fidelidade níveis, PWA, Sentry, staging-backup.

**Compatibilidade:** Respeitar .cursor/rules/plataforma-loterias-padroes.mdc, v2-padroes-desenvolvimento.mdc e loterias/*.mdc. Não alterar src/ legado; usar API v2 e Core DAOs. Não implementar Loteca (LC) nem Lotogol (LG).

### Estado da Fase 39 (atualizado)

**Implementados (39.3–39.12):**
- 39.3: Validado — docs/validacao-fase-39-3-admin-config.md
- 39.4: LoteriasHomeCards — valor text-2xl em md, data "Sorteio: DD/MM" em destaque
- 39.5: Página /loterias — fetch getConcursosHome, filtro "Mostrar apenas acumuladas"
- 39.8: E2E carrinho PIX — saldo insuficiente → Pagar com PIX → exibe QR
- 39.9: E2E compra cotas bolão — listar bolões, Comprar cota(s), carrinho
- 39.11: OpenAPI — admin/auth, clientes, config, relatorio, cron/*
- 39.12: FinalizarServiceTest — cenário saldo insuficiente

**Implementados (39.1, 39.2, 39.10):** Segunda via boleto (pedidos sem link_boleto podem gerar via PagSeguro); Admin Database (página /admin/database com backup e instruções restore); E2E wizard criar bolão (Playwright).

**Pedido no chat:** "Implementar Fase 39.X - [item]"

---

## Fase 40: Ideias Novas (pós-Fase 39) — Gamificação e UX avançada

**Fontes:** Análise completa de `src/` v1 (controllers, views, admin), `frontend/` (estrutura, páginas, componentes, lib/api), `api/`, docs/plano-acao-v2-completo.md (Estado Atual, Já existe, Fases 18–39), .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: `https://www.megaloterias.com.br/`, `https://www.sorteonline.com.br/` (apenas o que LP v2 ainda NÃO tem).

*Regras: (1) Não sugerir o que já existe no Estado Atual / Já existe ou nas Fases 18–39. (2) Priorizar impacto (conversão, UX, retenção) e viabilidade técnica. (3) Manter compatibilidade com .cursor/rules/ e padrões v2. (4) Loteca (LC) e Lotogol (LG) continuam fora de escopo.*

### Ideias novas (pós-Fase 39)

| Item | Descrição | Inspiração | Prioridade | Esforço estimado |
|------|-----------|------------|------------|------------------|
| 40.1 Missões e conquistas para o jogador | Sistema de gamificação na área logada com “missões” configuráveis (ex.: fazer X apostas na semana, experimentar uma nova loteria, concluir um bolão recomendado) e conquistas permanentes (badges/troféus) exibidas no perfil. Recompensas podem ser pontos de fidelidade extras ou participação em bolões promocionais. Não altera regras de jogo nem odds; opera só sobre o programa de fidelidade já existente. | Mega/Sorte usam provas sociais, estatísticas globais e recorrência; aqui a ideia é dar um passo além com gamificação explícita, ainda inexistente na LP v2. | Alta (retenção e engajamento recorrente) | Alto (modelo de missões/conquistas, UI dedicada, integrações com apostas/fidelidade, painel admin para configurar regras) |
| 40.2 Comparador de bolões lado a lado | Ferramenta na página de bolões que permite selecionar 2–3 bolões e comparar lado a lado: preço por cota, número total de apostas/chances, loteria/concurso, nível de risco (mais números x menos cotas), histórico de premiações daquele grupo. Focado em ajudar o usuário a escolher melhor entre várias opções similares, algo que v1/v2 ainda não oferecem. | Sorte Online destaca “bolões recomendados” com número de chances; LP v2 já tem banner de recomendados, mas não um comparador interativo. | Média (conversão em bolões, UX) | Médio (novos endpoints de resumo por bolão, componente de comparação no frontend, reaproveitando dados já existentes de grupos/bolões) |
| 40.3 Assistente “Primeira vez jogando?” | Wizard guiado (landing ou modal acessível da home) que faz poucas perguntas simples (“você prefere apostar sozinho ou em grupo?”, “quer investir pouco ou pode arriscar um pouco mais?”, “prefere sorteios diários ou semanais?”) e sugere 1–3 opções prontas (jogo individual, bolão recomendado, assinatura existente). Usa apenas loterias/modos já implementados, sem criar novas modalidades. | Textos educativos de Mega/Sorte sobre como jogar e quais loterias escolher; LP v2 já tem conteúdo e resultados, mas não um assistente interativo para iniciantes. | Alta (conversão de novos usuários) | Médio (lógica simples de recomendação baseada em regras, componente de UI, integrações com rotas e banners existentes) |
| 40.4 Hub educativo interativo de probabilidades e jogo responsável | Seção dedicada (ex.: `/ajuda/jogo-responsavel` ou `/guia`) combinando artigos, gráficos e pequenos simuladores: visualização das probabilidades por loteria, simulador de “se eu apostar X por mês por Y meses”, testes rápidos de autoconsciência sobre jogo responsável e chamadas claras para os limites já existentes na conta. Reaproveita dados e regras atuais, mas organiza tudo num único hub educacional de alto valor. | Mega Loterias e Sorte Online já têm conteúdo textual e dicas; LP v2 também tem blog/notícias, mas não um hub interativo focado em educação e jogo responsável. | Média (confiança, compliance e SEO de cauda longa) | Médio (novas páginas de conteúdo, alguns componentes de visualização/simulação, sem novas regras de negócio) |
| 40.5 Painel admin de “saúde do funil” | Tela no admin consolidando métricas de funil (visitas → cadastro → primeira aposta → segunda aposta → retenção 30 dias), com filtros por canal/parceiro. Não altera fluxos existentes; consome dados de pedidos, créditos, campanhas e afiliados já implementados, mas oferece visão única para priorizar campanhas e melhorias de UX. | Mega/Sorte não expõem isso ao usuário final, mas operam claramente orientados a funil; LP v2 já tem relatórios financeiros, mas não um painel explícito de funil de conversão/retorno. | Alta (tomada de decisão de produto/marketing) | Médio/Alto (consultas agregadas mais pesadas, event tracking/GA4 já existente, criação de gráficos no admin) |

### Ordem sugerida de execução (Fase 40)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 40.3 Assistente “Primeira vez jogando?” | Impacto direto em conversão de novos usuários com esforço moderado e sem dependências complexas. |
| 2 | 40.2 Comparador de bolões | Aumenta clareza de valor em bolões, área estratégica para receita, reaproveitando dados existentes. |
| 3 | 40.1 Missões e conquistas | Gamificação forte para retenção; depende de modelagem mais cuidadosa, mas pode reutilizar fidelidade. |
| 4 | 40.4 Hub educativo interativo | Fortalece jogo responsável e SEO sem tocar em regras centrais de aposta. |
| 5 | 40.5 Painel admin de “saúde do funil” | Suporta decisões de longo prazo e otimização contínua, ideal após consolidação das demais melhorias. |

**Compatibilidade:** Respeitar `.cursor/rules/plataforma-loterias-padroes.mdc`, `.cursor/rules/v2-padroes-desenvolvimento.mdc` e `.cursor/rules/loterias/*.mdc`. Não alterar `src/` legado; usar somente API v2 e DAOs/Core existentes. Não implementar Loteca (LC) nem Lotogol (LG).

### Status de implementação (40.1–40.5)

| Item | Status | Implementado |
|------|--------|--------------|
| 40.1 Missões e conquistas | [x] | Missão "experimentar 3 loterias"; "concluir bolão recomendado"; conquistas "Explorador de Loterias" e "Bolão em Destaque"; recompensas em pontos de fidelidade (claim); painel admin `/admin/missoes-config`; migration 005 (missao_cliente_claim, missao_config, id_parceiro em cliente). |
| 40.2 Comparador de bolões | [x] | Nível de risco (Baixo/Médio/Alto); histórico de premiações (coluna Premiado/Não premiado/Aguardando) no comparador. |
| 40.3 Assistente "Primeira vez jogando?" | [x] | Wizard em `/ajuda/primeira-aposta` com 3 perguntas; sugestões (jogo individual, bolão recomendado, assinatura); CTA na home. |
| 40.4 Hub educativo jogo responsável | [x] | Quiz de autoconsciência (5 perguntas) em `/ajuda/jogo-responsavel`; pontuação e sugestão de limites. |
| 40.5 Painel admin funil | [x] | Card "Visitas" (placeholder GA4); filtro por canal/parceiro; tabela `por_canal`; coluna `id_parceiro` em cliente (migration 005). |

---

## Fase 41: Ideias Novas (pós-Fase 40) — Análise v1→v2 e inspiração Mega/Sorte

**Fontes:** Análise completa de `src/` v1 (controllers, views, admin), `frontend/` (estrutura, páginas, componentes, lib/api), `api/`, docs/plano-acao-v2-completo.md (Estado Atual, Já existe, Fases 18–40), .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/ (apenas o que LP v2 ainda NÃO tem).

*Regras: (1) Não sugerir o que já existe no Estado Atual / Já existe ou nas Fases 18–40. (2) Priorizar fluxo ponta a ponta (jogos individuais → bolões → carrinho → finalizar → email confirmação). (3) Priorizar o que já existe na v1 (migração completa). (4) Respeitar .cursor/rules/ e padrões v2. (5) Loteca (LC) e Lotogol (LG) continuam fora de escopo.*

### Fluxo ponta a ponta v2 (verificado)

O fluxo **jogos individuais → bolões → carrinho → finalizar → email confirmação** está **100% implementado**:

- **Jogos individuais:** Volantes em MG, LF, QN, LM, DS, TM, ST, SS, MM; POST /api/v2/carrinho
- **Bolões:** Listagem, compra de cotas, wizard /criar-bolao, admin criar bolão (/admin/boloes/criar)
- **Carrinho:** PIX direto, **cartão Cielo direto** (PagamentoCartaoModal cria pedido, paga, chama doFinalizar em onSuccess), CTA créditos, persistido para logados, expira itens
- **Finalizar:** POST /api/v2/carrinho/finalizar; FinalizarService persiste grupo+bolão, desconta saldo
- **Email confirmação:** FinalizarService::enviarEmailConfirmacao() usa bodyCompraDeJogo (Krypitonite\Mail\Email)

### Correção de status (37.1 e 37.2)

| Item | Status anterior | Status atual |
|------|-----------------|--------------|
| 37.1 Pagamento cartão direto no carrinho | [ ] pendente | [x] **Implementado** — PagamentoCartaoModal em carrinho/page.tsx; cria pedido crédito, paga Cielo, onSuccess chama doFinalizar |
| 37.2 Admin criar bolão por loteria | [ ] pendente | [x] **Implementado** — /admin/boloes/criar com seleção de loteria |

### Gaps de migração v1 → v2 (o que a v1 faz e a v2 ainda não)

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 41.1 | **Landing parceiros com cashbacks por canal** | v1/Sorte: ofertas por parceiro (Méliuz, PicPay, Banco Inter) com % de cashback. Expandir /parceiros com benefícios por canal, links rastreáveis. | Sorte Online (lp.sorteonline.com.br/ofertas-de-parceiros) | Média (aquisição) | Médio | [x] implementado |
| 41.2 | **Admin: horários de bloqueio por loteria** | v1 ContaController pode ter config de horários por loteria. v2 GET /config/horarios-bloqueio existe; validar se admin permite editar por loteria. | v1 Admin Conta | Baixa (operação) | Baixo | [x] validado — admin não edita; config em Configuration.php |
| 41.3 | **Admin: valor mínimo resgate** | v1 pode ter config de valor mínimo para resgate de prêmio. v2 admin/configuracoes; validar paridade. | v1 ContaController | Baixa (operação) | Baixo | [x] validado — v1 e v2 usam R$ 5 hardcoded; paridade OK |

### Ideias de inspiração (Mega Loterias / Sorte Online) que LP v2 ainda NÃO tem

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 41.4 | **Notificação push para sorteio próximo** | Lembrete X horas antes do sorteio via Web Push. LP v2 tem lembrete (POST /conta/lembretes) e push (POST /conta/push-subscribe). Validar se fluxo "notificar X horas antes" está completo e integrado. | Mega/Sorte; ideias-melhorias.md §1 | Média (retenção) | Médio | [x] implementado |
| 41.5 | **Cards especiais em destaque na home (Sorte Online)** | Sorte Online: Mega da Virada, Dupla de Páscoa, Quina São João, Lotofácil Independência em cards no topo com valor e data. LP v2 tem EspeciaisHomeSection; avaliar refinamento visual e ordem. | Sorte Online (home) | Média (conversão) | Baixo | [x] implementado |
| 41.6 | **"Acesse a sua conta" em destaque na home** | Sorte Online: bloco de login na home. LP v2 tem LoginCTAHome (30.4); validar se está em destaque e visível. | Sorte Online (home) | Média (conversão) | Baixo | [x] implementado — LoginCTAHome logo após EspeciaisHomeSection |
| 41.7 | **Simulador "Se eu apostar X por mês"** | Hub educativo: simulador interativo "Se eu apostar R$ X por mês por Y meses, quanto terei investido?". Reforça jogo responsável. | ideias-melhorias.md §1; Fase 40.4 | Média (jogo responsável) | Médio | [x] implementado |
| 41.8 | **Comparador de loterias (qual apostar?)** | Ferramenta que compara loterias por: probabilidade de acerto, valor do prêmio, frequência de sorteios. Ajuda iniciantes a escolher. | Mega/Sorte (conteúdo); LP v2 tem tabela probabilidades | Média (conversão, SEO) | Médio | [x] implementado |

### Refinamentos e qualidade

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 41.9 | **E2E: fluxo cartão no carrinho** | Suite E2E cobre PIX; adicionar cenário: saldo insuficiente → Pagar com cartão → preencher Cielo → finalizar. | Fase 39.8 | Média (qualidade) | Médio | [x] implementado |
| 41.10 | **PWA: notificação push em background** | Service worker para receber push mesmo com app fechado. Requer VAPID e integração com backend. | ideias-melhorias.md §7 | Média (retenção) | Alto | [x] implementado — worker/index.js com push + notificationclick |
| 41.11 | **Admin: exportar relatório apostas CSV** | v1 ou ideias: exportar lista de apostas por período em CSV. Admin relatório já existe. | Fase 26; ideias-melhorias | Baixa (operação) | Baixo | [x] implementado — exportRelatorioApostasCSV em admin/relatorio |

### Backlog (já documentados)

| # | Item | Descrição | Prioridade | Esforço | Status |
|---|------|-----------|------------|---------|--------|
| 41.B1 | **API Caixa** | Consumir resultados oficiais (se disponível). | Baixa | Depende da API | [ ] backlog |
| 41.B2 | **Doctor: pagamento 100% v2** | Doctor usa fluxo v2 para apostas; pagamento Doctor pode usar créditos v2. | 39.B2 | Baixa | Médio | [ ] backlog |

### Ordem sugerida de execução (Fase 41)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 41.4 Validar notificação push sorteio | Retenção; verificar se já completo |
| 2 | 41.1 Completar landing parceiros cashbacks | Aquisição; inspiração Sorte Online |
| 3 | 41.7 Simulador "apostar X por mês" | Jogo responsável; hub educativo |
| 4 | 41.8 Comparador de loterias | Conversão; SEO |
| 5 | 41.9 E2E fluxo cartão carrinho | Qualidade; regressão |
| 6 | 41.5 Refinamento cards especiais home | Conversão; quick win |
| 7 | 41.2 Validar admin horários bloqueio | Operação |
| 8 | 41.10 PWA push background | Retenção; esforço alto |

### O que já existe (não duplicar)

- **Fluxo ponta a ponta:** Jogos individuais, bolões, carrinho (PIX, **cartão Cielo direto**), finalizar, email confirmação.
- **Admin v2:** Dashboard, relatório, config, pedidos, resgates, afiliados, loterias, matrizes, usuários, clientes, bolões (incl. criar), concursos, campanhas, newsletter, depoimentos, parceiros, notícias, database, missões-config, funil.
- **Fases 37–40:** Cartão direto (37.1), admin criar bolão (37.2), segunda via boleto, parceiros (parcial), OpenAPI, E2E, fidelidade níveis, PWA, Sentry, staging-backup, missões, comparador, assistente, hub educativo, funil admin.

**Compatibilidade:** Respeitar `.cursor/rules/plataforma-loterias-padroes.mdc`, `.cursor/rules/v2-padroes-desenvolvimento.mdc` e `.cursor/rules/loterias/*.mdc`. Não alterar `src/` legado; usar somente API v2 e DAOs/Core existentes. Não implementar Loteca (LC) nem Lotogol (LG).

**Pedido no chat:** "Implementar Fase 41.X - [item]"

---

## Fase 42: Ideias Novas (pós-Fase 41) — Análise v1→v2 e próximos passos

**Fontes:** Análise completa de `src/` v1 (controllers, views, admin), `frontend/`, `api/`, docs/plano-acao-v2-completo.md, .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/.

*Regras: (1) Não sugerir o que já existe. (2) Priorizar fluxo ponta a ponta e migração v1. (3) Priorizar por impacto (conversão, SEO, UX) e viabilidade. (4) Respeitar .cursor/rules/. (5) Loteca (LC) e Lotogol (LG) fora de escopo.*

### Resumo da análise v1 → v2 (2025-03)

**Fluxo ponta a ponta:** 100% implementado — jogos individuais → bolões → carrinho → finalizar → email confirmação. PIX e cartão Cielo direto no carrinho.

**Admin v2 vs v1:** v2 é mais completo. v1 RelatorioController::apostasAction() está vazio; v2 tem relatório apostas + export CSV. v1 admin: Concursos, Bolões, Créditos, Loterias, Usuários, Clientes, Campanha, Relatório (só créditos), Depoimentos, Configurações. v2 adiciona: Resgates, Afiliados, Newsletter, Parceiros, Notícias, Database, Missões, Funil. v2 admin pedidos: aprovar, cancelar, resetar, reenviar e-mail (no detalhe /admin/pedidos/[id]).

**Recuperar senha:** v2 completo — solicitar código → validar → redefinir (RecuperarSenhaService, /recuperar-senha). v1 tem fluxo alternativo (link por e-mail) menos seguro.

**Fidelidade:** v2 acumula pontos em compras (FinalizarService) e depósitos (CreditoService, webhooks, AdminPedidoService). Esqueleto 33.2 + 34.1 implementados.

**Preview preço:** PrecoPreview em todas as loterias (34.7 implementado).

### Gaps de migração v1 → v2 (remanescentes)

| # | Item | Descrição | v1 | Prioridade | Esforço | Status |
|---|------|-----------|-----|------------|---------|--------|
| 42.1 | **Admin pedidos: ações na listagem** | v1 GerenciarPedidosCredito: aprovar/cancelar/resetar/enviar e-mail na lista. v2 tem na listagem apenas aprovar/rejeitar; resetar e reenviar só no detalhe. Adicionar botões rápidos na listagem para resetar e reenviar e-mail. | GerenciarPedidosCreditoController | Baixa (operação) | Baixo | [x] implementado |
| 42.2 | **Admin: config valor mínimo resgate** | v1 e v2 usam R$ 5 hardcoded. Adicionar campo em admin/configuracoes e usar em ResgateService. | PremioResgatarController | Baixa (operação) | Baixo | [x] implementado |
| 42.3 | **Integrar preferências em newsletter/campanhas** | Checar ClientePreferenciaComunicacaoCoreDAO::aceita() antes de enviar em BoletimNewsletterService e AdminCampanhaService. Evita envio indesejado (LGPD). | Fase 34.2 | Média (LGPD) | Baixo | [x] implementado |

### Ideias de inspiração (Mega Loterias / Sorte Online / ideias-melhorias)

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 42.4 | **Surpresinha números quentes/frios** | Além da surpresinha aleatória, oferecer "números quentes" (mais sorteados) ou "números frios" como opção. Usar GET /api/v2/estatisticas/{sigla}/numeros-mais-sorteados. | ideias-melhorias.md §1 | Média (UX) | Médio | [x] implementado |
| 42.5 | **Simulador divisão bolão** | Na listagem de bolões ou ao comprar cota: "Se o bolão ganhar R$ X, cada cota recebe R$ Y." Calcula valor/cota. | ideias-melhorias.md §2; Mega Loterias | Média (conversão) | Baixo | [x] implementado |
| 42.6 | **Indicador cotas disponíveis** | Destaque visual quando restam poucas cotas (ex.: badge "Últimas 3 cotas"). Aumenta urgência. | ideias-melhorias.md §2 | Média (conversão) | Baixo | [x] implementado |
| 42.7 | **Confirmação 18+ no cadastro** | Checkbox obrigatório "Tenho 18 anos ou mais" no cadastro. Reforça jogo responsável e compliance. | ideias-melhorias.md §5 | Média (compliance) | Baixo | [x] implementado |
| 42.8 | **Tela de confirmação antes de finalizar** | Resumo da compra (itens, total) com botão "Confirmar e pagar" antes de ir ao gateway. Reduz abandono por erro. | UX best practice | Média (conversão) | Baixo | [x] implementado |
| 42.9 | **Countdown Mega da Virada no hero** | Quando próximo ao 31/12, exibir countdown "Faltam X dias para a Mega da Virada" no hero ou EspeciaisHomeSection. | Mega Loterias; Sorte Online | Média (conversão) | Baixo | [x] implementado |

### Backlog (já documentados)

| # | Item | Descrição | Prioridade | Esforço | Status |
|---|------|-----------|------------|---------|--------|
| 42.B1 | **API Caixa** | Consumir resultados oficiais (se disponível). | Baixa | Depende da API | [ ] backlog |
| 42.B2 | **Doctor: pagamento 100% v2** | Doctor usa fluxo v2 para apostas; pagamento Doctor pode usar créditos v2. | Baixa | Médio | [ ] backlog |

### Ordem sugerida de execução (Fase 42)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 42.3 Integrar preferências newsletter/campanhas | LGPD; baixo esforço |
| 2 | 42.5 Simulador divisão bolão | Conversão; quick win |
| 3 | 42.6 Indicador cotas disponíveis | Conversão; baixo esforço |
| 4 | 42.7 Confirmação 18+ cadastro | Compliance; baixo esforço |
| 5 | 42.8 Tela confirmação antes de finalizar | Reduz abandono; baixo esforço |
| 6 | 42.4 Surpresinha números quentes/frios | UX; médio esforço |
| 7 | 42.9 Countdown Mega da Virada | Sazonal; baixo esforço |
| 8 | 42.1 Admin pedidos ações na listagem | Operação |
| 9 | 42.2 Admin valor mínimo resgate | Operação |

### O que já existe (não duplicar)

- Fluxo ponta a ponta completo; recuperar senha; fidelidade com acúmulo; PrecoPreview; admin completo; PWA push; relatório apostas CSV; simulador investimento; comparador loterias; etc.

**Compatibilidade:** Respeitar `.cursor/rules/plataforma-loterias-padroes.mdc`, `.cursor/rules/v2-padroes-desenvolvimento.mdc` e `.cursor/rules/loterias/*.mdc`. Não alterar `src/` legado. Não implementar Loteca (LC) nem Lotogol (LG).

**Pedido no chat:** "Implementar Fase 42.X - [item]"

---

## Fase 43: Ideias Novas (pós-Fase 42) — Análise v1→v2 e próximos passos

**Fontes:** Análise completa de `src/` v1 (controllers, views, admin), `frontend/`, `api/`, docs/plano-acao-v2-completo.md, .cursor/rules/, docs/loterias/ideias-melhorias.md. Referências: https://www.megaloterias.com.br/, https://www.sorteonline.com.br/.

*Regras: (1) Não sugerir o que já existe. (2) Priorizar fluxo ponta a ponta e migração v1. (3) Priorizar por impacto (conversão, SEO, UX) e viabilidade. (4) Respeitar .cursor/rules/. (5) Loteca (LC) e Lotogol (LG) fora de escopo.*

### Resumo da análise v1 → v2 (2025-03)

**Fase 42 concluída:** 42.1–42.9 implementados (admin pedidos ações, valor mínimo resgate, preferências newsletter, surpresinha quentes/frios, simulador bolão, indicador cotas, confirmação 18+, tela confirmação finalizar, countdown Mega da Virada).

**Fluxo ponta a ponta:** 100% implementado — jogos individuais → bolões → carrinho → finalizar → email confirmação. PIX e cartão Cielo direto no carrinho.

**Admin v2 vs v1:** v2 é mais completo. v1 RelatorioController::apostasAction estava vazio; v2 tem relatório apostas + export CSV. v2 admin: comprovantes, compradores, duplicar, bloquear, criar bolão, missões-config, funil. Validação de limites no backend: CarrinhoService usa PrecoService::validarNumerosComMensagem. Filtro por concurso na listagem de bolões: BolaoLista com idConcurso. Estatísticas: EstatisticasSection (total e maior prêmio). Teimosinha visual: conta/jogos com concursos_restantes.

### Gaps de migração v1 → v2 (remanescentes)

| # | Item | Descrição | v1 | Prioridade | Esforço | Status |
|---|------|-----------|-----|------------|---------|--------|
| 43.1 | **Admin: horários de bloqueio editáveis** | v2 GET /config/horarios-bloqueio existe; config em Configuration.php. v1 admin não edita. Adicionar em admin/config editável por loteria (individual, bolões, super_sete). | v1 ContaController; 41.2 | Baixa (operação) | Médio | [ ] pendente |
| 43.2 | **Log de auditoria para conferência** | Registrar quem conferiu, quando e resultado (resumo). Tabela conferencia_audit ou log estruturado. Evita disputas e facilita auditoria. | ideias-melhorias.md §4 | Média (confiabilidade) | Médio | [ ] pendente |
| 43.3 | **Link Jogadores Anônimos / jogo responsável** | Na página de ajuda ou atendimento, link para Jogadores Anônimos ou similar (jogadores problemáticos). Reforça compliance e jogo responsável. | ideias-melhorias.md §13 | Média (compliance) | Baixo | [ ] pendente |
| 43.4 | **Admin: vista premiações pendentes** | Relatório ou filtro de premiações aguardando liberação de créditos. Facilita operação e priorização. | v1 admin; operação | Baixa (operação) | Baixo | [ ] pendente |

### Ideias de inspiração (Mega Loterias / Sorte Online / ideias-melhorias)

| # | Item | Descrição | Inspiração | Prioridade | Esforço | Status |
|---|------|-----------|------------|------------|---------|--------|
| 43.5 | **Cache de resultados** | Redis ou similar para cache de resultados de concursos. Reduz carga no banco em consultas frequentes. | ideias-melhorias.md §11 | Baixa (performance) | Médio | [ ] pendente |
| 43.6 | **PWA modo offline** | Modo offline para consultar resultados e histórico de jogos. Service worker com cache de dados essenciais. | ideias-melhorias.md §7 | Média (UX) | Alto | [ ] pendente |
| 43.7 | **Refinamento hero: estatísticas em destaque** | Mover ou reforçar estatísticas (Total em Prêmios Pagos, Maior Prêmio) no hero ou logo acima da dobra, como Mega Loterias. | Mega Loterias | Baixa (conversão) | Baixo | [ ] pendente |

### Backlog (já documentados)

| # | Item | Descrição | Prioridade | Esforço | Status |
|---|------|-----------|------------|---------|--------|
| 43.B1 | **API Caixa** | Consumir resultados oficiais (se disponível). | Baixa | Depende da API | [ ] backlog |
| 43.B2 | **Doctor: pagamento 100% v2** | Doctor usa fluxo v2 para apostas; pagamento Doctor pode usar créditos v2. | Baixa | Médio | [ ] backlog |

### Ordem sugerida de execução (Fase 43)

| Ordem | Item | Motivo |
|-------|------|--------|
| 1 | 43.3 Link Jogadores Anônimos | Compliance; baixo esforço |
| 2 | 43.4 Admin vista premiações pendentes | Operação; quick win |
| 3 | 43.2 Log auditoria conferência | Confiabilidade; auditoria |
| 4 | 43.7 Refinamento hero estatísticas | Conversão; baixo esforço |
| 5 | 43.1 Admin horários bloqueio editáveis | Operação; médio esforço |
| 6 | 43.5 Cache resultados | Performance |
| 7 | 43.6 PWA modo offline | UX; esforço alto |

### O que já existe (não duplicar)

- **Fluxo ponta a ponta:** Jogos individuais, bolões, carrinho (PIX, cartão Cielo), finalizar, email confirmação.
- **Admin v2:** Dashboard, relatório (créditos, apostas, export CSV), config, pedidos (aprovar, rejeitar, resetar, reenviar e-mail na listagem), resgates, afiliados, loterias, matrizes, usuários, clientes (extrato, addCredito, enviarBonus, bloquear, spam acumulada), bolões (comprovantes, compradores, duplicar, imprimir volantes, criar), concursos, campanhas, newsletter, depoimentos, parceiros, notícias, database, missões-config, funil.
- **Validação backend:** CarrinhoService usa PrecoService::validarNumerosComMensagem. AssinaturaService usa validarNumeros.
- **Filtro concurso bolões:** BolaoLista com idConcurso. Estatísticas: EstatisticasSection (total e maior prêmio). Teimosinha visual em conta/jogos. Fase 42 completa.

**Compatibilidade:** Respeitar `.cursor/rules/plataforma-loterias-padroes.mdc`, `.cursor/rules/v2-padroes-desenvolvimento.mdc` e `.cursor/rules/loterias/*.mdc`. Não alterar `src/` legado. Não implementar Loteca (LC) nem Lotogol (LG).

**Pedido no chat:** "Implementar Fase 43.X - [item]"
