Skip to content

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])