Skip to content

Biblioteca — Tarefas de Implementação

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

Pré-requisitos

  • [ ] Schema SQLite com tabelas exemplar_biblioteca, musica, livro, editora, edicao_livro, cantico_livro, secao_edicao_livro, cantico_secao disponíveis
  • [ ] Banco.attachFromCache e Banco.detach implementados
  • [ ] baixarArquivo e cachePath implementados em src/arch/util/fs
  • [ ] URL base Api.APP_BIBLIOTECA e Api.APP_BIBLIOTECA_OBRAS_SQLITE configuradas

Tarefas

  • [ ] T-01 — Implementar BibliotecaApi.getItensObras com queryFn combinando API + banco local
  • Origem no legado: src/store/Biblioteca/Biblioteca.api.tsgetItensObras
  • Critério de pronto: Retorna ObraItemListData[] com situacao correta para cada obra; obras disponivel=false filtradas
  • Confiança: 🟢

  • [ ] T-02 — Implementar ObraService.baixarObra com mutex estático downloadEmAndamento

  • Origem no legado: src/service/ObraService.ts
  • Critério de pronto: Lança erro se download em andamento; downloadEmAndamento = false em finally; retorna path do arquivo baixado
  • Confiança: 🟢

  • [ ] T-03 — Implementar BibliotecaRepository.importarObra com ATTACH/DETACH

  • Origem no legado: src/repository/BibliotecaRepository.tsimportarObra
  • Critério de pronto: Músicas, livros e índices importados corretamente; exemplar anterior desativado; DETACH em finally
  • Confiança: 🟢

  • [ ] T-04 — Implementar BibliotecaAction.baixarObras com batch e progress notification

  • Origem no legado: src/store/Biblioteca/Biblioteca.action.tsbaixarObras
  • Critério de pronto: Progress notification atualizada por obra; delay de 2s entre downloads; erro agregado ao final
  • Confiança: 🟢

  • [ ] T-05 — Implementar SelecaoObrasBibliotecaModal com seleção e confirmação

  • Origem no legado: src/view/screen/biblioteca/fragment/SelecaoObrasBibliotecaModal.tsx
  • Critério de pronto: Checkboxes por obra não baixada; obras desatualizadas adicionadas automaticamente ao confirmar
  • Confiança: 🟢

  • [ ] T-06 — Implementar BibliotecaScreen com atalhos e links externos

  • Origem no legado: src/view/screen/biblioteca/BibliotecaScreen.tsx
  • Critério de pronto: Botão abre modal de obras; cards CNBB abrem URLs corretas no browser
  • Confiança: 🟢

Tarefas de Teste

  • [ ] TT-01 — Download de obra: arquivo baixado, músicas importadas, exemplar registrado
  • [ ] TT-02 — Mutex: segunda chamada baixarObra durante download em andamento lança erro
  • [ ] TT-03 — CRC32: obra com CRC32 igual não é incluída no batch de obras desatualizadas
  • [ ] TT-04 — DETACH garantido: erro durante importação não deixa banco em estado corrompido

Ordem Sugerida

  1. T-02 (service de download — independente)
  2. T-03 (repository de importação)
  3. T-01 (API query)
  4. T-04 (action de batch)
  5. T-05 + T-06 (UI)

Lacunas Pendentes (🔴)

  • atualizar thunk não analisado completamente — verificar comportamento
  • Sem verificação de espaço em disco — comportamento em disco cheio não mapeado
  • Mutex estático não sobrevive a restart do app — considerar persistência do estado de download