- Tabela:
Biblioteca
- Descrição: Representa uma biblioteca.
- Campos:
id
: Identificador único da biblioteca (tipo: Inteiro).nome
: Nome da biblioteca (tipo: String).status
: Status da biblioteca, com valores "ATIVO" ou "INATIVO" (tipo: EnumStatusDefault
).createdAt
: Data de criação do registro (tipo: DateTime).updatedAt
: Data de atualização do registro (tipo: DateTime).contatoId
: Identificador único do contato associado à biblioteca (tipo: Inteiro).enderecoId
: Identificador único do endereço associado à biblioteca (tipo: Inteiro).
- Relações:
Contato
: Relação com o modeloContato
, associada ao campocontatoId
.Endereco
: Relação com o modeloEndereco
, associada ao campoenderecoId
.configBiblioteca
: Relação com o modeloconfigBiblioteca
, associada ao campoconfigBibliotecaId
.Autor
: Relação com o modeloAutor
, representando os autores associados à biblioteca.Lingua
: Relação com o modeloLingua
, representando as línguas associadas à biblioteca.Categoria
: Relação com o modeloCategoria
, representando as categorias associadas à biblioteca.Estoque
: Relação com o modeloEstoque
, representando os estoques associados à biblioteca.Emprestimo
: Relação com o modeloEmprestimo
, representando os empréstimos associados à biblioteca.Notificacao
: Relação com o modeloNotificacao
, representando as notificações associadas à biblioteca.Multas
: Relação com o modeloMultas
, representando as multas associadas à biblioteca.livros
: Relação com o modeloLivro
, representando os livros associados à biblioteca.usuarios
: Relação com o modeloUsuario
, representando os usuários associados à biblioteca.
- Tabela:
configBiblioteca
- Descrição: Representa a configuração de uma biblioteca.
- Campos:
id
: Identificador único da configuração da biblioteca (tipo: Inteiro).createdAt
: Data de criação do registro (tipo: DateTime).updatedAt
: Data de atualização do registro (tipo: DateTime).valorMulta
: Valor da multa associada à biblioteca (tipo: Inteiro).bibliotecaId
: Identificador único da biblioteca associada à configuração (tipo: Inteiro).
- Relações:
Biblioteca
: Relação com o modeloBiblioteca
, associada ao campobibliotecaId
.
- Tabela:
Livro
- Descrição: Representa um livro.
- Campos:
id
: Identificador único do livro (tipo: Inteiro).createdAt
: Data de criação do registro (tipo: DateTime).updatedAt
: Data de
atualização do registro (tipo: DateTime).
idInterno
: Identificador interno do livro (tipo: Inteiro).titulo
: Título do livro (tipo: String).isbn
: ISBN do livro (tipo: String).ano_pub
: Ano de publicação do livro (tipo: Inteiro).tombo
: Tombo do livro (tipo: String).posicao
: Posição do livro na biblioteca (tipo: String).cdd
: Classificação Decimal de Dewey (CDD) do livro (tipo: String).status
: Status do livro, com valores "ATIVO" ou "INATIVO" (tipo: EnumStatusDefault
).edicao
: Edição do livro (tipo: String).estoqueId
: Identificador único do estoque associado ao livro (tipo: Inteiro).bibliotecaId
: Identificador único da biblioteca associada ao livro (tipo: Inteiro).categoriaId
: Identificador único da categoria associada ao livro (tipo: Inteiro, opcional).linguaId
: Identificador único da língua associada ao livro (tipo: Inteiro, opcional).autorId
: Identificador único do autor associado ao livro (tipo: Inteiro, opcional).- Relações:
biblioteca
: Relação com o modeloBiblioteca
, associada ao campobibliotecaId
.Estoque
: Relação com o modeloEstoque
, associada ao campoestoqueId
.Categoria
: Relação com o modeloCategoria
, associada ao campocategoriaId
.Lingua
: Relação com o modeloLingua
, associada ao campolinguaId
.Autor
: Relação com o modeloAutor
, associada ao campoautorId
.Multas
: Relação com o modeloMultas
, representando as multas associadas ao livro.Emprestimo
: Relação com o modeloEmprestimo
, representando os empréstimos associados ao livro.Reservas
: Relação com o modeloReservas
, representando as reservas associadas ao livro.
- Tabela:
Autor
- Descrição: Representa um autor.
- Campos:
id
: Identificador único do autor (tipo: Inteiro).createdAt
: Data de criação do registro (tipo: DateTime).updatedAt
: Data de atualização do registro (tipo: DateTime).nome
: Nome do autor (tipo: String).bibliotecaId
: Identificador único da biblioteca associada ao autor (tipo: Inteiro).
- Relações:
biblioteca
: Relação com o modeloBiblioteca
, associada ao campobibliotecaId
.Livro
: Relação com o modeloLivro
, representando os livros associados ao autor.
- Tabela:
Lingua
- Descrição: Representa uma língua.
- Campos:
id
: Identificador único da língua (tipo: Inteiro).createdAt
: Data de criação do registro (tipo: DateTime).updatedAt
: Data de atualização do registro (tipo: DateTime).nome
: Nome da língua (tipo: String).
bibliotecaId
: Identificador único da biblioteca associada à língua (tipo: Inteiro).
- Relações:
biblioteca
: Relação com o modeloBiblioteca
, associada ao campobibliotecaId
.Livro
: Relação com o modeloLivro
, representando os livros associados à língua.
- Tabela:
Categoria
- Descrição: Representa uma categoria.
- Campos:
id
: Identificador único da categoria (tipo: Inteiro).createdAt
: Data de criação do registro (tipo: DateTime).updatedAt
: Data de atualização do registro (tipo: DateTime).nome
: Nome da categoria (tipo: String).bibliotecaId
: Identificador único da biblioteca associada à categoria (tipo: Inteiro).
- Relações:
biblioteca
: Relação com o modeloBiblioteca
, associada ao campobibliotecaId
.Livro
: Relação com o modeloLivro
, representando os livros associados à categoria.
- Tabela:
Estoque
- Descrição: Representa o estoque de livros em uma biblioteca.
- Campos:
id
: Identificador único do estoque (tipo: Inteiro).createdAt
: Data de criação do registro (tipo: DateTime).updatedAt
: Data de atualização do registro (tipo: DateTime).quantidadeTotal
: Quantidade total de livros no estoque (tipo: Inteiro).quantidadeDisponivel
: Quantidade de livros disponíveis no estoque (tipo: Inteiro).quantidadeEmprestada
: Quantidade de livros emprestados do estoque (tipo: Inteiro).bibliotecaId
: Identificador único da biblioteca associada ao estoque (tipo: Inteiro).
- Relações:
biblioteca
: Relação com o modeloBiblioteca
, associada ao campobibliotecaId
.Livro
: Relação com o modeloLivro
, representando o livro associado ao estoque (opcional).
- Tabela:
Emprestimo
- Descrição: Representa um empréstimo de livro feito por um usuário em uma biblioteca.
- Campos:
id
: Identificador único do empréstimo (tipo: Inteiro).createdAt
: Data de criação do registro (tipo: DateTime).updatedAt
: Data de atualização do registro (tipo: DateTime).data_dev
: Data de devolução do livro (tipo: DateTime).status
: Status do empréstimo, com valores "DEVOLVIDO", "NAO_DEVOLVIDO" ou "ATRASADO" (tipo: EnumEmprestimoStatus
).usuarioId
: Identificador único do usuário que realizou o empréstimo (tipo: Inteiro).LivroId
: Identificador único do livro emprestado (tipo: Inteiro).bibliotecarioId
: Identificador único do bibliotecário responsável pelo empréstimo (tipo: Inteiro).bibliotecaId
: Identificador único da biblioteca associada ao empréstimo (tipo: Inteiro).
- Relações:
Usuario
: Rel
ação com o modelo Usuario
, associada ao campo usuarioId
.
Livro
: Relação com o modeloLivro
, associada ao campoLivroId
.bibliotecario
: Relação com o modeloUsuario
, representando o bibliotecário responsável pelo empréstimo.biblioteca
: Relação com o modeloBiblioteca
, associada ao campobibliotecaId
.
- Tabela:
Notificacao
- Descrição: Representa uma notificação enviada aos usuários de uma biblioteca.
- Campos:
id
: Identificador único da notificação (tipo: Inteiro).createdAt
: Data de criação do registro (tipo: DateTime).updatedAt
: Data de atualização do registro (tipo: DateTime).mensagem
: Mensagem da notificação (tipo: String).data_envio
: Data de envio da notificação (tipo: DateTime).bibliotecaId
: Identificador único da biblioteca associada à notificação (tipo: Inteiro).
- Relações:
biblioteca
: Relação com o modeloBiblioteca
, associada ao campobibliotecaId
.
- Tabela:
Multas
- Descrição: Representa as multas aplicadas aos usuários de uma biblioteca.
- Campos:
id
: Identificador único da multa (tipo: Inteiro).createdAt
: Data de criação do registro (tipo: DateTime).updatedAt
: Data de atualização do registro (tipo: DateTime).valor
: Valor da multa (tipo: Float).status
: Status da multa, com valores "PENDENTE" ou "PAGO" (tipo: EnumMultaStatus
).usuarioId
: Identificador único do usuário associado à multa (tipo: Inteiro).bibliotecaId
: Identificador único da biblioteca associada à multa (tipo: Inteiro).
- Relações:
Usuario
: Relação com o modeloUsuario
, associada ao campousuarioId
.biblioteca
: Relação com o modeloBiblioteca
, associada ao campobibliotecaId
.
- Tabela:
Usuario
- Descrição: Representa um usuário registrado em uma biblioteca.
- Campos:
id
: Identificador único do usuário (tipo: Inteiro).createdAt
: Data de criação do registro (tipo: DateTime).updatedAt
: Data de atualização do registro (tipo: DateTime).nome
: Nome do usuário (tipo: String).email
: E-mail do usuário (tipo: String).senha
: Senha do usuário (tipo: String).tipo
: Tipo de usuário, com valores "ALUNO", "PROFESSOR" ou "COMUNIDADE" (tipo: EnumUsuarioTipo
).status
: Status do usuário, com valores "ATIVO" ou "INATIVO" (tipo: EnumStatusDefault
).bibliotecaId
: Identificador único da biblioteca associada ao usuário (tipo: Inteiro).
- Relações:
biblioteca
: Relação com o modeloBiblioteca
, associada ao campobibliotecaId
.Emprestimo
: Relação com o modeloEmprestimo
, representando os empr
éstimos realizados pelo usuário.
Multas
: Relação com o modeloMultas
, representando as multas aplicadas ao usuário.Notificacao
: Relação com o modeloNotificacao
, representando as notificações enviadas ao usuário.
Esses são os modelos e suas relações básicas para um sistema de biblioteca. Lembre-se de que essa é apenas uma sugestão e você pode personalizar e adicionar mais campos e relações de acordo com as necessidades do seu projeto.