Warehouse Service — Events
(Обновлено в BR 1.9)
Статус реализации
События ниже спланированы, но в текущем коде
kafkaTemplate.send(...)не вызывается. Consumer’ы (дляstore.created,catalog.product.updated) также ещё не реализованы. При добавлении потребителей — включить публикацию в TechCardService / ReceiptActService / WriteOffActService.
Публикует (planned)
warehouse.tech-card.updated
Публикуется при создании, обновлении или удалении техкарты.
Topic: warehouse.tech-card.updated
Consumer group: для будущих потребителей (авто-стоп-лист, BFF кэш)
{
"event_id": "uuid",
"timestamp": "datetime",
"version": 1,
"payload": {
"tech_card_id": "uuid",
"product_id": "uuid",
"modifier_option_id": "uuid | null",
"action": "created | updated | deleted",
"franchise_id": "uuid"
}
}warehouse.receipt-act.posted
(BR 1.14)
Публикуется при проводке акта приёмки.
Topic: warehouse.receipt-act.posted
{
"event_id": "uuid",
"timestamp": "datetime",
"version": 1,
"payload": {
"receipt_act_id": "uuid",
"warehouse_id": "uuid",
"store_id": "uuid",
"franchise_id": "uuid",
"total_amount": "decimal",
"line_count": "integer"
}
}warehouse.write-off-act.posted
(BR 1.14)
Публикуется при проводке акта списания.
Topic: warehouse.write-off-act.posted
{
"event_id": "uuid",
"timestamp": "datetime",
"version": 1,
"payload": {
"write_off_act_id": "uuid",
"warehouse_id": "uuid",
"store_id": "uuid",
"franchise_id": "uuid",
"total_cost": "decimal",
"line_count": "integer"
}
}Потребляет
catalog.product.updated
Источник: Catalog Service. Используется для инвалидации кэша названий продуктов/ингредиентов.
Consumer group: warehouse-service-group
На MVP
Warehouse Service не кэширует названия продуктов — lookup при каждом запросе. Событие подготовлено для будущей оптимизации.
store.created
(BR 1.14)
Источник: Store Service. При создании ТТ — автоматически создаётся склад.
Consumer group: warehouse-service-group
{
"event_id": "uuid",
"timestamp": "datetime",
"version": 1,
"payload": {
"store_id": "uuid",
"franchise_id": "uuid",
"name": "string"
}
}Обработка: WarehouseService.createForStore(store_id, franchise_id, name) — создаёт запись в warehouses.