Skip to content

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 🟢