Gerar Folheto — Design Técnico
Gerado pelo Writer (Reversa) em 2026-05-11
Seleção de Estratégia (Strategy Pattern)
gerarFolheto(id_repertorio)
→ FolhetoService.gerarFolheto(repertorio)
→ Seleciona estratégia:
[GerarFolhetoComSlugStrategy]
→ Auth.autenticar() → Bearer JWT
→ Api.compartilharRepertorio(bearer, { repertorio, itens })
→ openLink(`https://livreto.canta.app/?${contaSlug}:${repertorioSlug}`)
[GerarFolhetoBase64Strategy]
→ RepertorioService.convertToQuery(repertorio, itens)
→ Base64Unicode.encode(query)
→ openLink(`https://livreto.canta.app/?repertorio=${base64}`)
[GerarFolhetoNoopStrategy]
→ (sem ação)
→ Metricas.gerarFolheto()
Critério de Seleção
🔴 LACUNA — a lógica de seleção entre as estratégias não está completamente mapeada no código estático. Provavelmente baseada na presença de slug_corrente ou no estado de autenticação. Requer validação humana.
Dependências
| Dependência | Papel | Confiança |
|---|---|---|
FolhetoService |
Orquestrador das estratégias | 🟢 |
Auth.autenticar |
JWT para estratégia ComSlug | 🟢 |
Api.compartilharRepertorio |
Sincroniza repertório para gerar slug | 🟢 |
Base64Unicode.encode |
Serialização para estratégia Base64 | 🟢 |
openLink (arch/util/linking) |
Abre livreto.canta.app no browser |
🟢 |
Metricas.gerarFolheto |
Sentry Metrics | 🟢 |