Skip to content

Зарегистрировать поступление #5

Description

@DyaurtM

🟦 TEAM-1 | Movements

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

Request

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

Response 200

{
  "itemId": 1,
  "movementId": 101,
  "type": "RECEIVE",
  "quantity": 50,
  "stockAfter": 73,
  "createdAt": "2026-05-28T11:00:00"
}

Что сделать

  • @Transactional: stock.quantity += quantity + INSERT INTO stock_movements
  • user_id берётся из SecurityContext (текущий авторизованный пользователь)
  • 404 если товар не найден или is_active = false

⚠️ Kafka LowStockAlertEvent и инвалидация кэша — задачи KAFKA-1 и CACHE-3 (TEAM-2).

Acceptance criteria

  • stock.quantity увеличился на N
  • Запись в stock_movements с type=RECEIVE
  • user_id привязан к текущему пользователю
  • USER токен → 403

Metadata

Metadata

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