Flowchart — Módulo: sugestao-repertorio
Gerado pelo Archaeologist (Reversa) em 2026-05-11
Fluxo Geral do Módulo
flowchart TD
A([App inicializa]) --> B[popularSugestoesIniciais]
B --> C{sugestao_repertorio COUNT = 0?}
C -- Sim --> D[ATTACH repertorios.db asset AS seeds]
D --> E[INSERT INTO sugestao_repertorio SELECT FROM seeds]
E --> F[DETACH seeds]
C -- Não --> G([Pular inicialização])
F & G --> H([Sugestões disponíveis offline])
Fluxo: Sincronização de Sugestões
flowchart TD
A([Trigger: usuário acessa sugestões]) --> B[SugestoesRepertorioService.verificarAtualizacao]
B --> C[Api: baixar sugestoes_repertorio.db para cache]
C --> D{downloadEmAndamento?}
D -- Sim --> E([Aguardar — evita concorrência])
D -- Não --> F[BibliotecaSugestoesRepertorioRepository.importarSugestoes]
F --> G[ATTACH cachePath/sugestoes.db AS sugestoesImport]
G --> H[DELETE FROM sugestao_repertorio -- substituição total]
H --> I[INSERT INTO sugestao_repertorio SELECT * FROM sugestoesImport]
I --> J[DETACH sugestoesImport]
J --> K([Sugestões atualizadas])
Fluxo: Busca de Sugestões por Data
flowchart TD
A([Data selecionada]) --> B[CalendarioLiturgicoService.getDiasLiturgicosPorData]
B --> C[DiaLiturgico[]: filtra cache romcal por data]
C --> D{Há dia litúrgico?}
D -- Não --> E([Sem sugestão para este dia])
D -- Sim --> F[Monta chaves: CicloLiturgico:idRomcal]
F --> G[BibliotecaSugestoesRepertorioRepository.findBy chaves]
G --> H[SELECT * FROM sugestao_repertorio WHERE id_romcal IN ... AND ano_liturgico IN ...]
H --> I[Enriquece com CorLiturgica do dia]
I --> J([Sugestões exibidas na tela])
Fluxo: Converter Sugestão em Repertório
flowchart TD
A([Usuário clica em 'Usar sugestão']) --> B[createRepertorio a partir da sugestão]
B --> C[Para cada ItemSugestaoRepertorio não ignorado]
C --> D{metadata.ignorar = true?}
D -- Sim --> E([Pular item])
D -- Não --> F[createItemRepertorio com id_musica + momento]
F --> G([Repertório criado com itens da sugestão])