Gerar Folheto — Requisitos
Gerado pelo Writer (Reversa) em 2026-05-11 Caso de uso do módulo
repertorios
Visão Geral
Gera um folheto PDF do repertório em livreto.canta.app usando uma de três estratégias: com autenticação e slug (qualidade completa), sem autenticação via Base64 (acesso imediato), ou noop (fallback seguro).
Regras de Negócio
GerarFolhetoComSlugStrategyrequer autenticação Google; falha de auth aborta o fluxo 🟢GerarFolhetoBase64Strategynão requer autenticação; URL pode ser longa para repertórios grandes 🟡GerarFolhetoNoopStrategynão faz nada — é um fallback seguro 🟢- Evento
gerar_folhetoregistrado no Sentry após abertura do link 🟢
Requisitos Funcionais
| ID | Requisito | Prioridade | Critério de Aceite |
|---|---|---|---|
| RF-01 | Gerar folheto via slug (com autenticação) | Should | Link livreto.canta.app/?{conta}:{slug} abre no browser; PDF disponível |
| RF-02 | Gerar folheto via Base64 (sem autenticação) | Should | Link livreto.canta.app/?repertorio=<base64> abre com os dados do repertório |
| RF-03 | Selecionar estratégia correta em runtime | Must | Estratégia aplicada conforme contexto (usuário logado, slug disponível) |
| RF-04 | Registrar métrica de geração de folheto | Should | Metricas.gerarFolheto() chamado após abertura do link |
Critérios de Aceitação
Dado que o usuário está logado e o repertório tem slug
Quando solicita geração de folheto
Então o app autentica, envia para API, e abre livreto.canta.app/?conta:slug
Dado que o usuário não está logado ou o repertório não tem slug
Quando solicita geração de folheto
Então o app serializa o repertório para Base64 e abre livreto.canta.app/?repertorio=<base64>