Skip to content

Списать товар #6

Description

@DyaurtM

🟦 TEAM-1 | Movements

Эндпоинт: POST /api/movements/write-off (ADMIN only)

Request

{
  "itemId": 1,
  "quantity": 10
}

Response 200

{
  "itemId": 1,
  "movementId": 102,
  "type": "WRITE_OFF",
  "quantity": 10,
  "stockAfter": 63,
  "createdAt": "2026-05-28T11:30:00"
}

Что сделать

  • @Transactional: проверить остаток (см. Валидация остатков #9) → stock.quantity -= quantityINSERT INTO stock_movements
  • user_id из SecurityContext
  • 404 если товар не найден

⚠️ Kafka LowStockAlertEvent — задача KAFKA-1 (TEAM-2). Здесь без Kafka.

Acceptance criteria

  • stock.quantity уменьшился на N
  • Запись в stock_movements с type=WRITE_OFF
  • Списание > остатка → 422 (логика в Валидация остатков #9)
  • USER токен → 403

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