Skip to content

Listar Catálogo de Obras

Gerado pelo Writer (Reversa) em 2026-05-11 doc_level: detalhado | Módulo pai: biblioteca

Visão Geral

Caso de uso que exibe ao usuário o catálogo de obras disponíveis, indicando quais estão instaladas, desatualizadas ou ainda não baixadas, com base na comparação de CRC32 remoto vs. local.

Responsabilidades

  • Buscar catálogo remoto de obras via API
  • Consultar exemplares ativos no banco local
  • Calcular SituacaoItemObra para cada obra
  • Exibir lista filtrada (apenas disponivel = true)

Regras de Negócio

  • SituacaoItemObra.ATUALIZADA: obra presente no banco local com CRC32 igual ao remoto 🟢
  • SituacaoItemObra.NAO_BAIXADA: obra sem exemplar local 🟢
  • SituacaoItemObra.NAO_ATUALIZADA: obra com exemplar local mas CRC32 diferente 🟢
  • Obras com disponivel = false são removidas antes da exibição 🟢

Requisitos Funcionais

ID Requisito Prioridade Critério de Aceite
RF-01 Exibir lista de obras disponíveis com situação Must Cada item exibe título, descrição e label de situação
RF-02 Filtrar obras com disponivel = false Must Obras indisponíveis não aparecem na lista
RF-03 Exibir indicador de carregamento durante fetch Should Spinner visível enquanto isLoading = true
RF-04 Exibir estado de erro com botão de retry Should BibliotecaModalErrorState exibido quando isError = true

Critérios de Aceitação

Dado que o usuário abre o modal de obras
Quando o catálogo remoto e os exemplares locais são carregados
Então cada obra aparece com situação correta (ATUALIZADA / NAO_BAIXADA / NAO_ATUALIZADA)

Dado que a API retorna uma obra com disponivel = false
Quando a lista é processada
Então essa obra não aparece para o usuário

Dado que ocorre erro de rede ao carregar o catálogo
Quando a query falha
Então BibliotecaModalErrorState é exibido com botão de retry

Rastreabilidade de Código

Arquivo Função / Classe Cobertura
src/store/Biblioteca/Biblioteca.api.ts getItensObras 🟢
src/repository/BibliotecaRepository.ts findExemplaresAtivos 🟢
src/view/screen/biblioteca/fragment/SelecaoObrasBibliotecaModal.tsx renderização da lista 🟢
src/view/component/list/data/ObraItemListData.ts SituacaoItemObra 🟢