Skip to content

Sugestão de Repertório — Tarefas de Implementação

Gerado pelo Writer (Reversa) em 2026-05-11 doc_level: detalhado

Pré-requisitos

  • [ ] Schema SQLite com tabela sugestao_repertorio (migration v13)
  • [ ] CalendarioLiturgicoService implementado e disponível
  • [ ] Asset AssetBanco.REPERTORIOS disponível em android/app/src/main/assets/ e iOS equivalente
  • [ ] RepertoriosAction.criarPorSugestao implementado

Tarefas

  • [ ] T-01 — Implementar popularSugestoesIniciais com guard de contagem e ATTACH de asset
  • Origem: src/repository/BibliotecaSugestoesRepertorioRepository.tspopularSugestoesIniciais
  • Critério: Sugestões disponíveis após primeira instalação sem download remoto
  • Confiança: 🟢

  • [ ] T-02 — Implementar findAll com SQL json_group_array + JOIN músicas, excluindo ignorar = true

  • Origem: BibliotecaSugestoesRepertorioRepository.tsfindAll
  • Critério: SugestaoRepertorio[] com itens[] montados corretamente; itens ignorar excluídos
  • Confiança: 🟢

  • [ ] T-03 — Implementar findBy com enriquecimento de calendário, filtro de data futura e fuzzy search

  • Origem: BibliotecaSugestoesRepertorioRepository.tsfindBy
  • Critério: Sugestões passadas excluídas; busca por título funcional; filtro por tempo litúrgico funcional
  • Confiança: 🟢

  • [ ] T-04 — Implementar SugestoesRepertorioListaScreen com busca debounced e chip de filtro

  • Origem: src/view/screen/sugestaoRepertorio/SugestoesRepertorioListaScreen.tsx
  • Critério: Busca com 500ms debounce; chip altera resultado; lista atualiza em tempo real
  • Confiança: 🟢

  • [ ] T-05 — Implementar SugestaoRepertorioDetalhesScreen com modo seleção e criação de repertório

  • Origem: src/view/screen/sugestaoRepertorio/SugestaoRepertorioDetalhesScreen.tsx
  • Critério: Seleção de itens; validação de mínimo 1 item; repertório criado com toast; navegação ao novo repertório
  • Confiança: 🟢

  • [ ] T-06 — Implementar importarSugestoes com ATTACH/DELETE total/INSERT/DETACH

  • Origem: BibliotecaSugestoesRepertorioRepository.tsimportarSugestoes + upsertSugestoes
  • Critério: Sugestões antigas substituídas; DETACH em finally
  • Confiança: 🟢

  • [ ] T-07 — Implementar SugestoesRepertorioService.baixarSugestoes com mutex e download

  • Origem: src/service/SugestoesRepertorioService.ts
  • Critério: Mutex bloqueia downloads simultâneos; false em finally; retorna path
  • Confiança: 🟢

Tarefas de Teste

  • [ ] TT-01 — Seeds: banco vazio → popularSugestoesIniciais → sugestões disponíveis
  • [ ] TT-02 — Listagem: sugestões passadas excluídas; ordenação por data ASC
  • [ ] TT-03 — Conversão: sugestão com 3 itens → seleciona 2 → repertório com 2 itens criado
  • [ ] TT-04 — Validação: 0 itens selecionados → toast "Selecione ao menos um item"

Ordem Sugerida

  1. T-01 (seeds — base da instalação)
  2. T-02 + T-03 (repository — dados)
  3. T-07 + T-06 (sincronização remota)
  4. T-04 (listagem)
  5. T-05 (detalhes + criação)

Lacunas Pendentes (🔴)

  • Sugestões sem chave_ciclo_liturgico são omitidas silenciosamente — avaliar se devem aparecer com data vazia
  • Performance de fuseSearch em memória com catálogo grande não mapeada