doc: first docs

This commit is contained in:
2025-06-06 13:59:52 -03:00
parent da59da79ae
commit 99d17db5e6
28 changed files with 3125 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
| 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.