Skip to content

Валидация остатков #9

Description

@DyaurtM

🟦 TEAM-1 | Movements

Валидация в StockService.writeOff() — нельзя списать больше чем есть на складе.

Что сделать

  • InsufficientStockException(itemId, available, requested)
  • Проверка в сервисе:
if (stock.getQuantity() < quantity) {
    throw new InsufficientStockException(itemId, stock.getQuantity(), quantity);
}
  • GlobalExceptionHandler: InsufficientStockException → 422 Unprocessable Entity

Error response

{
  "error": "INSUFFICIENT_STOCK",
  "message": "Cannot write off 20. Available: 5",
  "itemId": 1
}

Acceptance criteria

  • quantity=20, stock=5 → 422
  • Запись в stock_movements не создаётся
  • stock.quantity не изменяется (транзакция откатилась)

Metadata

Metadata

Assignees

Labels

movementsДвижение товараteam-1Месяц 1 — Core

Type

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions