Modelagem do Banco de Dados - 98Lanches/dotlanche-database GitHub Wiki
O banco de dados em MongoDB foi elaborado para conter as informações das entidades do negócio como descrita a seguir.
Modelo Entidade-Relacionamento
1. Combo
- Id: Identificador único do combo.
- Lanche (nullable): Produto que é o lanche.
- Acompanhamento (nullable): Produto que é o acompanhamento.
- Bebida (nullable): Produto que é a bebida.
- Sobremesa (nullable): Produto que é a sobremesa.
Lanche, Acompanhamento, Bebida, e Sobremesa são itens de Produto e são opcionais (nullable), permitindo a flexibilidade de criação de combos com diferentes combinações. Combo possui vários Produtos. (1-N) Combo pertence a um Pedido. (N-1)
2. Pedido
- Id: Identificador único do pedido.
- CreatedAt: Data e hora em que o pedido foi criado.
- TotalPrice: Preço total do pedido.
- QueueKey: Senha para retirada do pedido pelo cliente.
- AddedToQueueAt: Data e hora em que o pedido foi adicionado à fila.
- Status: Status atual do pedido.
- Cpf (nullable): CPF do cliente que fez o pedido.
- Combos: Array de Combo
- Pagamentos: Array de Pagamento
Pedido possui vários Combos. (1-N) Pedido possui vários Pagamentos (1-N)¹
3. Pagamento
- Id: Identificador único do pagamento.
- IsAccepted: Booleano indicando se o pagamento foi aceito.
- RegisteredAt: Data e hora em que o pagamento foi registrado.
4. Produto
- Id: Identificador único do pagamento.
- Nome: Nome do produto.
- Description: Breve descrição do produto.
- Price: Preço do produto.
- Categoria: Nome da categoria que o produto pertence.
Um Combo contém um Produto de cada categoria (1-N).
¹ No caso de falha no pagamento, um novo pagamento é gerado para o mesmo pedido.