Visão Geral#
A entidade Produtos representa os produtos/serviços oferecidos pela empresa. Cada produto é vinculado a uma empresa específica e pode ter categorias associadasEstrutura da Entidade#
Campos Principais#
Campo | Tipo | Descrição | Obrigatório |
---|
id | number | Identificador único do produto | ✅ (auto) |
name | string | Nome do produto | ✅ |
description | text | Descrição detalhada do produto | ❌ |
price | decimal | Preço do produto | ❌ |
sku | string | Código SKU único do produto | ❌ |
urlImage | string | URL da imagem principal do produto | ❌ |
urlThumbnail | string | URL da imagem thumbnail do produto | ❌ |
status | enum | Status do produto (active/inactive) | ✅ |
companyId | number | ID da empresa proprietária | ✅ |
createdAt | DateTime | Data/hora de criação | ✅ (auto) |
updatedAt | DateTime | Data/hora da última atualização | ✅ (auto) |
Relacionamentos#
Empresa: Vinculado à empresa proprietária.
Categoria: Relacionamento many-to-many com categorias.
Negociação: Pode ser associado a negociações.
Status Disponíveis#
Status | Descrição |
---|
active | Produto ativo e disponível |
inactive | Produto desabilitado |
Casos de Uso Detalhados#
1. Catálogo de Produtos#
Cenário: Uma empresa deseja gerenciar seu catálogo de produtos/serviços para usar em negociações.O usuário cria produtos com informações detalhadas.
Associa categorias para organização.
Vincula produtos às propostas e negociações.
Benefícios: Padronização de produtos e facilidade na criação de propostas.Regras de Negócio#
Criação de Produtos#
Produtos são únicos por empresa.
SKU deve ser único quando informado.
Status padrão é definido na criação.
Controle de Acesso#
Usuários só podem gerenciar produtos de sua empresa.
Isolamento por empresa (multi-tenancy).
Produtos inativos não aparecem em listas ativas.
Tracking de Empresa#
Primeiro produto criado atualiza firstProductCreated
da empresa.
Último produto criado atualiza lastProductCreated
da empresa.
Operações Disponíveis#
Operação | Descrição | Método HTTP |
---|
Listar | Recupera produtos com filtros e paginação | GET |
Criar | Cria um novo produto | POST |
Visualizar | Exibe detalhes de um produto específico | GET |
Atualizar | Modifica produto e reorganiza imagens | PUT/PATCH |
Excluir | Remove um produto | DELETE |
Fluxo de Uso#
Segurança e Boas Práticas#
Para Desenvolvedores#
Validar SKU único por empresa antes de salvar.
Usar transações para operações que envolvem múltiplas tabelas.
Para Usuários#
Usar SKUs únicos para facilitar identificação.
Categorizar produtos adequadamente para facilitar busca.
Limitações e Restrições#
Produtos são específicos por empresa.
SKU deve ser único dentro da empresa.
Modificado em 2025-06-16 16:50:17