Repository navigation
v0.1.4
📦 Catalogue API — Release Notes
🧾 Versão 0.1.4 — 14 de agosto de 2025
🔖 Resumo
Lançamento com melhorias na infraestrutura de catálogo e estoque: adição de exclusão em cascata entre products e stocks, novos endpoints públicos e protegidos para brands, categories, products e stocks, além de validações e regras de negócio reforçadas. Ideal para integrar catálogos com controle de estoque mais consistente.
🚀 Principais mudanças
- ✅ Exclusão em cascata: ao remover um produto, o estoque relacionado também é removido automaticamente (efeito cascata no schema).
- 🆕 Endpoints novos e padronizados para Brands e Categories (CRUD).
- 🔒 Regras de acesso aplicadas aos endpoints de marca, categoria e estoque (apenas perfis dono ou estoque podem criar/alterar/remover).
- 🔎 Filtros avançados para products e stocks via query params (
brands,categories,warehouse,is_active).
📚 Endpoints (resumo)
Observação: rotas listadas com as principais validações e permissões.
Brands (acesso: dono | estoque)
POST /brands— Criar marca- Verifica se já existe; aplica regras de negócio.
GET /brands— Listar todas as marcas- Rota pública (sem verificação de token).
GET /brands/:id— Obter marca por id- Valida se existe.
PATCH /brands/:id— Atualizar marca- Valida id; exige token com nível adequado.
DELETE /brands/:id— Remover marca- Valida id; exige token com nível adequado.
Categories (acesso: dono | estoque)
POST /categories— Criar categoria- Verifica duplicidade; aplica regras de negócio.
GET /categories— Listar categorias (pública)GET /categories/:id— Obter categoria por id- Valida se existe.
PATCH /categories/:id— Atualizar categoria- Valida id; exige nível de acesso.
DELETE /categories/:id— Remover categoria- Valida id; exige nível de acesso.
Products / Catálogo (acesso: público leitura)
GET /products— Listar produtosGET /products/:id— Obter produto por idGET /products/filter— Filtrar porbrandsecategories(searchParams)- Retorna aviso se não houver produtos com o filtro.
Stocks / Gestão de estoque (acesso: dono | estoque)
POST /stocks— Criar produto + estoque (inclui preços: compra, custo, etc.)- Valida token, existência de almoxarifado, marca, categoria, produto e unicidade de código de barras.
GET /stocks— Listar todos os produtos com estoque (requer permissão)GET /stocks/:id— Obter estoque por id do produto (requer permissão)GET /stocks/filters— Filtrar porbrands,categories,warehouse,is_active(requer permissão)PATCH /stocks/:id— Atualizar produto + estoque (requer permissão + validações iguais ao POST)DELETE /stocks/:id— Remover produto + estoque (requer permissão; valida existência)
⚠️ Breaking changes / Atenção
- A exclusão em cascata altera o comportamento anterior de remoção — verifique integrações que esperavam que
stockpermanecesse após apagarproduct. - Mudanças nas permissões: endpoints de criação/alteração/remoção exigem token com nível dono ou estoque.
🛠️ Notas técnicas (para desenvolvedores)
- Schema: adicionar
ON DELETE CASCADEou equivalente na relaçãoproduct -> stock(dependendo do ORM/DB). - Validar entradas em todos os endpoints (id, código de barras, existence checks).
- Logs: adicionar evento de auditoria para
DELETEem cascata (quem deletou, quando, id).
👤 Autor
Equipe de Desenvolvimento — LogcHub API
Data: 14 de agosto de 2025