🟦 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
🟦 TEAM-1 | Movements
Валидация в
StockService.writeOff()— нельзя списать больше чем есть на складе.Что сделать
InsufficientStockException(itemId, available, requested)GlobalExceptionHandler:InsufficientStockException→ 422 Unprocessable EntityError response
{ "error": "INSUFFICIENT_STOCK", "message": "Cannot write off 20. Available: 5", "itemId": 1 }Acceptance criteria
quantity=20,stock=5→ 422stock_movementsне создаётсяstock.quantityне изменяется (транзакция откатилась)