mirror of
https://github.com/welton89/RRBEC.git
synced 2026-04-05 13:35:42 +00:00
56 lines
3.8 KiB
Markdown
56 lines
3.8 KiB
Markdown
|
|
| Atributo | Tipo de Dado | Restrições/Observações |
|
|
| ---------------- | -------------- | --------------------------------------------------------- |
|
|
| `id_produto` | UUID | PK |
|
|
| `nome` | VARCHAR(255) | NOT NULL |
|
|
| `descricao` | TEXT | NULLABLE |
|
|
| `preco` | DECIMAL(10, 2) | NOT NULL |
|
|
| `custo_unitario` | DECIMAL(10, 2) | NULLABLE (Para cálculo de lucratividade) |
|
|
| `estoque_atual` | INTEGER | NOT NULL, DEFAULT 0 |
|
|
| `estoque_minimo` | INTEGER | DEFAULT 0 (Para alertas de estoque baixo) |
|
|
| `url_imagem` | VARCHAR(255) | NULLABLE |
|
|
| `disponivel` | BOOLEAN | NOT NULL, DEFAULT TRUE (Indica se está no cardápio ativo) |
|
|
| `id_categoria` | UUID | FK para `CategoriasProduto` |
|
|
|
|
| Atributo | Tipo | Modificadores |
|
|
| ----------- | ------------ | --------------------------------------- |
|
|
| id | AutoField | primary_key=True |
|
|
| name | CharField | max_length=100 |
|
|
| description | TextField | null=True, blank=True |
|
|
| image | ImageField | null=True, blank=True |
|
|
| price | DecimalField | max_digits=10, decimal_places=2 |
|
|
| quantity | IntegerField | null=False, default=0 |
|
|
| category | ForeignKey | on_delete=models.CASCADE ([[Category]]) |
|
|
| cuisine | BooleanField | default=False |
|
|
| active | BooleanField | default=True |
|
|
|
|
|
|
**Modelo: `Product`**
|
|
|
|
Este modelo representa um produto no sistema. Cada produto possui os seguintes atributos:
|
|
|
|
* `id`: Um identificador único para cada produto (chave primária). Este campo é preenchido automaticamente.
|
|
* `name`: O nome do produto (texto curto, máximo de 100 caracteres).
|
|
* `description`: Uma descrição detalhada do produto (texto longo). Pode ser deixada em branco.
|
|
* `image`: Uma imagem associada ao produto. Pode ser deixada em branco.
|
|
* `price`: O preço do produto (valor decimal com um total de 10 dígitos, incluindo 2 casas decimais).
|
|
* `quantity`: A quantidade disponível em estoque (número inteiro). Por padrão, é 0.
|
|
* `category`: A categoria à qual o produto pertence. É uma chave estrangeira que se relaciona ao modelo [[Category]]. Se uma categoria for excluída, todos os produtos associados a essa categoria também serão excluídos (`on_delete=models.CASCADE`).
|
|
* `cuisine`: Um campo booleano que indica se o produto é preparado na cozinha. O valor padrão é `False`.
|
|
* `active`: Um campo booleano que indica se o produto está ativo e disponível para venda. O valor padrão é `True`.
|
|
|
|
**Modelo: `Category`**
|
|
|
|
Este modelo representa uma categoria de produto. Cada categoria possui os seguintes atributos:
|
|
|
|
* `id`: Um identificador único para cada categoria (chave primária). Este campo é preenchido automaticamente.
|
|
* `name`: O nome da categoria (texto curto, máximo de 255 caracteres).
|
|
|
|
**Relacionamento:**
|
|
|
|
Os modelos `Product` e `Category` estão relacionados por meio de uma chave estrangeira. Cada produto pertence a uma categoria, e uma categoria pode ter vários produtos associados a ela.
|
|
|
|
**Uso:**
|
|
|
|
Esses modelos são usados para definir a estrutura do banco de dados e facilitar a criação, leitura, atualização e exclusão (CRUD) de produtos e categorias no sistema. Eles são componentes essenciais para gerenciar o catálogo de produtos.
|