Livros — Design Técnico
Gerado pelo Writer (Reversa) em 2026-05-11
doc_level: detalhado
Interface
Redux Store
| Símbolo |
Assinatura |
Retorno |
Observação |
carregarLivros |
() |
ThunkAction |
Busca todos os livros; armazena no EntityAdapter |
selecionarLivro |
(id_edicao_livro: number \| undefined) |
Action |
Define filtro de livro no store |
Repository (src/repository/LivrosRepository.ts)
| Símbolo |
Assinatura |
Retorno |
Confiança |
findAll |
() |
Promise<EdicaoLivro[]> |
🟢 |
findById |
(id: number) |
Promise<EdicaoLivro> |
🟢 |
Esquema de Dados (SQL inferido)
livro (
id_livro INTEGER PRIMARY KEY,
titulo TEXT NOT NULL
)
editora (
id_editora INTEGER PRIMARY KEY,
nome TEXT NOT NULL,
site TEXT
)
edicao_livro (
id_edicao_livro INTEGER PRIMARY KEY,
id_livro INTEGER REFERENCES livro(id_livro),
id_editora INTEGER REFERENCES editora(id_editora),
edicao TEXT,
ano INTEGER,
descricao TEXT,
site TEXT,
detalhes TEXT -- JSON: { "sigla": "CE", ... }
)
cantico_livro (
id_musica INTEGER,
id_edicao_livro INTEGER,
indice TEXT, -- pode ser alfanumérico ("23a")
ordem INTEGER
)
🟡 Schema inferido das queries; não confirmado por DDL explícito.
Fluxo Principal: Listagem de Livros
carregarLivros()
→ LivrosRepository.findAll()
→ SELECT edicao_livro.*, livro.titulo, editora.nome,
edicao_livro.detalhes ->> 'sigla' AS sigla
FROM edicao_livro
JOIN livro ON edicao_livro.id_livro = livro.id_livro
JOIN editora ON edicao_livro.id_editora = editora.id_editora
ORDER BY livro.titulo, edicao_livro.edicao
→ Dispatch: setAll no EntityAdapter
→ Componente renderiza lista de EdicaoLivro com sigla
Fluxo: Seleção de Livro como Filtro
Usuário seleciona EdicaoLivro
→ selecionarLivro(id_edicao_livro) → Redux state: { livroSelecionado: id }
→ Módulo de Músicas lê livroSelecionado no store
→ Adiciona WHERE cantico_livro.id_edicao_livro = ? em todas as strategies de busca
Dependências
| Módulo |
Papel |
Módulo Músicas |
Consome id_edicao_livro como filtro de busca |
Módulo Biblioteca |
Atualiza livros via importação de obras |
| Redux EntityAdapter |
Cache in-memory das EdicaoLivro |