Catalog Service — Phase 5A KDS

Что сделано

InternalCatalogMenuController.mapProduct — расширен

Добавлены поля для каждого продукта в /internal/catalog/menu:

m.put("requires_kitchen", Boolean.TRUE.equals(p.getRequiresKitchen()));
m.put("kitchen_station_id", p.getKitchenStationId());

POS BFF проксирует это в Product-DTO для desktop-pos. Используется на KitchenQueueScreen для разделения позиций по станциям.

NEW InternalKitchenStationController

@GetMapping("/internal/kitchen-stations/by-franchise/{franchiseId}")
public ResponseEntity<...> listByFranchise(@PathVariable UUID franchiseId)

Возвращает список активных (не deleted) kitchen-stations франшизы. Используется POS BFF для отдачи списка станций десктоп-кассе (/api/v1/pos/kitchen-stations).

Не трогали

  • KitchenStation entity / migration — таблица уже была (BR 2.5)
  • Public KitchenStationController (CRUD под JWT) — без изменений
  • KitchenStationService — без изменений (используем findByFranchiseIdAndDeletedAtIsNull напрямую через repository)

Файлы

  • src/main/java/com/erp/catalog/controller/InternalCatalogMenuController.java — extended mapProduct
  • src/main/java/com/erp/catalog/controller/InternalKitchenStationController.java (NEW)