Skip to content

feat: add router update stock#2

Open
ismaelalvesgit wants to merge 1 commit into
mainfrom
feat/update-order
Open

feat: add router update stock#2
ismaelalvesgit wants to merge 1 commit into
mainfrom
feat/update-order

Conversation

@ismaelalvesgit

Copy link
Copy Markdown
Owner

Adicionado uma rota de atualização do estoque para melhorar o fluxo de faturamento caso alguma informação referente ao item esteja errada

@ismaelalvesgit ismaelalvesgit self-assigned this Jun 8, 2026
@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown

🤖 PR Insights

📋 Resumo da Mudança

  • Adicionada rota PATCH /orders/stock para atualização de estoque por productId, retornando todos os pedidos afetados.
  • Nova DTO UpdateStockDto (productId e stock) com validação mínima (@min(1) para stock).
  • Adicionada validação @min(1) no campo price de OrderItemDto.
  • Implementado OrdersService.updateStock para atualizar item.stock em todos os pedidos que contenham o productId informado.
  • Testes atualizados: unitários no OrdersController e novo teste e2e para /orders/stock.

🔍 Mudanças Relevantes

  • OrdersService.updateStock(productId, stock): busca pedidos com o productId, atualiza item.stock e retorna a lista de pedidos atualizados.
  • OrdersController: novo endpoint PATCH /orders/stock consumindo UpdateStockDto.
  • DTOs:
    • OrderItemDto.price agora com @min(1).
    • Nova UpdateStockDto com productId (string) e stock (number, @min(1)).
  • Testes:
    • Ajustes no orders.controller.spec.ts para reutilizar um pedido base e validar update de estoque.
    • Novo teste e2e para PATCH /orders/stock.

🎯 Impactos Identificados

  • Possibilidade de corrigir o estoque de itens após a criação do pedido, afetando o fluxo de faturamento (ex.: evitar “Insufficient stock” ao faturar).
  • Expansão do contrato da API: novo endpoint PATCH /orders/stock que retorna Order[].
  • Anotações de validação adicionadas nas DTOs (price e stock com mínimo 1 nas respectivas DTOs).

⚠️ Possíveis Riscos

  • Atualização de estoque afeta todos os pedidos com o productId, independentemente do status (PENDING/CANCELED/INVOICED), o que pode gerar alterações indesejadas em pedidos já cancelados ou faturados.
  • Endpoint retorna 200 com array vazio quando nenhum pedido é atualizado; pode gerar “no-op” silencioso para clientes.
  • Inconsistência de validação: CreateOrderDto permite stock sem @min, enquanto UpdateStockDto exige stock >= 1 (comportamentos diferentes para o mesmo campo).

✅ Checklist de Validação

  • Criar um pedido, executar PATCH /orders/stock e confirmar via GET /orders/:id que item.stock foi atualizado.
  • Atualizar estoque para productId inexistente e verificar se a resposta é 200 com array vazio (comportamento esperado?).
  • Faturar um pedido após atualizar o estoque e confirmar que o faturamento ocorre sem “Insufficient stock”.
  • Enviar price=0 na criação do pedido e stock=0 no PATCH /orders/stock para verificar a aplicação das validações.
  • Tentar atualizar estoque de produto presente em pedido CANCELED/INVOICED e confirmar se a atualização deve ou não ocorrer.

❓ Pontos para Atenção

  • A atualização deve afetar pedidos CANCELED/INVOICED ou apenas PENDING?
  • O retorno 200 com array vazio em “nenhuma atualização” é o comportamento desejado para clientes?
  • A exigência de @min(1) para UpdateStockDto.stock e para OrderItemDto.price é compatível com cenários de preço/estoque zero? A ausência de @min em stock na criação é intencional?

🚦 Classificação de Risco

🟡 Médio

Justificativa: inclusão de endpoint que altera múltiplos pedidos simultaneamente e mudanças de validação nos DTOs podem impactar fluxos e integrações existentes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant