BR 2.5 — Admin Franchise web
Источники
Задачи
Новая страница «Кухонные станции»
-
web/src/api/kitchenStations.ts— HTTP-клиент (list, create, update, delete) -
web/src/pages/catalog/KitchenStationsPage.tsx— список + модалка - Модалка
KitchenStationModal.tsx— форма создания/редактирования - Диалог удаления с обработкой
STATION_IN_USE(показ списка ссылающихся товаров) - Роутинг
/catalog/kitchen-stations - Sidebar — добавить пункт «Кухонные станции» в группу «Каталог»
Обновление формы товара
-
web/src/pages/catalog/products/ProductForm.tsx:- Добавить секцию «Кухня»
- Чекбокс «Требует приготовления» (
requires_kitchen) - Dropdown «Кухонная станция» (появляется по чекбоксу), fetch через
GET /kitchen-stations - Валидация: если чекбокс + станция не выбрана → inline-ошибка
-
web/src/pages/catalog/products/ProductDetailPage.tsx— секция просмотра с теми же данными
Обновление страниц заказов
-
ActiveOrdersPage.tsx:ACTIVE_STATUSESрасширить:['new', 'accepted', 'ready', 'handed_over', 'in_delivery', 'delivered'](добавлены последние 3)- Badge-mapping для новых статусов:
const STATUS_LABEL = { new: 'Новый', accepted: 'Готовится', ready: 'Готов', handed_over: 'У курьера', in_delivery: 'В пути', delivered: 'Доставлен', closed: 'Закрыт', cancelled: 'Отменён' }; const STATUS_COLOR = { new: 'gray', accepted: 'yellow', ready: 'green', handed_over: 'cyan', in_delivery: 'blue', delivered: 'purple', closed: 'slate', cancelled: 'red' }; - Колонка «Курьер» — показывать для
order_type=delivery(lookup поcourier_idчерез Admin BFF user-service proxy)
-
OrderHistoryPage.tsx— badge дляdelivered(история доставки) -
OrderDetailPage.tsx— показывать timestamp’ыaccepted_at,ready_at,handed_over_at,in_delivery_at,delivered_atв таймлайне -
KitchenQueuePage.tsx(если существует) — убедиться что корректно обрабатывает все новые статусы, не крашится на unknown
Массовый импорт товаров — Excel
- Распознавать столбцы
requires_kitchen(да/нет/true/false) иkitchen_station_name(строка) - На бэке Catalog Service — резолвить
kitchen_station_name→kitchen_station_id(см. отдельное обсуждение, если не реализуется — вычеркнуть)
Verification
pnpm build(web) зелёныйpnpm lintиpnpm typecheckзелёный- Dev-сервер стартует, в браузере:
/catalog/kitchen-stations— список, создание, редактирование, удаление работают/catalog/products/:id/edit— галочка + dropdown станции функционируют, валидация срабатывает/orders/active— бейджи новых статусов отображаются корректно/orders/:id— таймлайн показывает все новые timestamp’ы
- Smoke пробить: создать станцию → создать товар с
requires_kitchen=true+ станция → удалить станцию → ошибкаSTATION_IN_USE→ расшифровка