Skip to content

v0.1.4

Choose a tag to compare

@TiaguinhoCode TiaguinhoCode released this 14 Aug 17:54
· 44 commits to main since this release

📦 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 produtos
  • GET /products/:id — Obter produto por id
  • GET /products/filter — Filtrar por brands e categories (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 por brands, 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 stock permanecesse após apagar product.
  • 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 CASCADE ou equivalente na relação product -> stock (dependendo do ORM/DB).
  • Validar entradas em todos os endpoints (id, código de barras, existence checks).
  • Logs: adicionar evento de auditoria para DELETE em cascata (quem deletou, quando, id).

👤 Autor

Equipe de Desenvolvimento — LogcHub API
Data: 14 de agosto de 2025