Visão Geral#
A entidade Categoria representa categorias utilizadas para organizar produtos dentro do sistema. Cada categoria é vinculada a uma empresa específica, permitindo a associação com produtos e garantindo isolamento por empresa (multi-tenancy).Estrutura da Entidade#
Campos Principais#
Campo | Tipo | Descrição | Obrigatório |
---|
id | number | Identificador único da categoria | ✅ (auto) |
name | string | Nome descritivo da categoria | ✅ |
companyId | number | ID da empresa proprietária | ✅ (auto) |
status | enum | Status da categoria (active ou deactivated ) | ✅ |
createdAt | DateTime | Data/hora de criação | ✅ (auto) |
updatedAt | DateTime | Data/hora da última atualização | ✅ (auto) |
Relacionamentos#
Empresa: Vinculada à empresa do usuário.
Produtos: Relaciona-se com múltiplos produtos pertencentes à categoria.
Status Disponíveis#
Status | Descrição |
---|
active | Categoria ativa e funcional |
deactivated | Categoria desabilitada |
Casos de Uso Detalhados#
1. Organização de Produtos#
Cenário: Uma empresa deseja categorizar seus produtos para facilitar a gestão no CRM.O usuário acessa o painel de categorias.
Cria uma nova categoria com nome descritivo, como "Eletrônicos".
Associa produtos à categoria criada.
Visualiza os produtos filtrados por categoria no sistema.
Benefícios: Organização eficiente de produtos e facilidade na busca e gestão.Regras de Negócio#
Criação de Categorias#
Cada categoria é única por empresa.
Vinculação automática à empresa do usuário autenticado.
Status inicial definido como active
.
Controle de Acesso#
Usuários só podem gerenciar categorias de sua própria empresa.
Isolamento por empresa (multi-tenancy).
Categorias desativadas não são exibidas em fluxos ativos, mas permanecem acessíveis para relatórios.
Segurança#
Exclusão de categorias não remove produtos associados, que passam a não ter categoria.
Validação de integridade em todas as operações.
Operações Disponíveis#
Operação | Descrição | Método HTTP |
---|
Listar | Recupera categorias com paginação | GET |
Criar | Cria uma nova categoria | POST |
Visualizar | Exibe detalhes de uma categoria específica | GET |
Atualizar | Modifica nome ou status da categoria | PUT/PATCH |
Excluir | Remove uma categoria | DELETE |
Fluxo de Uso#
Segurança e Boas Práticas#
Para Desenvolvedores#
Validar entrada de dados para evitar nomes de categorias duplicados.
Usar transações para garantir consistência ao associar produtos.
Para Usuários#
Usar nomes descritivos para facilitar identificação.
Desativar categorias não utilizadas em vez de excluí-las.
Revisar produtos associados antes de excluir uma categoria.
Limitações e Restrições#
Categorias são específicas por empresa.
Não é permitido criar categorias sem vinculação a uma empresa.
Modificado em 2025-06-16 14:36:40