BR 2.1 — Admin Franchise (Заказы)

Shared Types

  • Создать Order тип (id, franchise_id, store_id, order_number, order_type, status, total, payment_method, paid_amount, rrn, card_last4, comment, cancel_reason, created_by, paid_at, completed_at, cancelled_at, created_at, updated_at, items)
  • Создать OrderItem тип (id, product_id, product_name, quantity, unit_price, total_price, modifiers, notes, created_at)
  • Создать OrderListItem тип (id, store_id, order_number, order_type, status, total, payment_method, paid_amount, created_by, created_at, paid_at, completed_at, cancelled_at)
  • Создать OrderModifier тип (group_name, option_name, price)

API Functions

  • getOrders(params) — GET /api/v1/admin/orders (с фильтрами: store_id, status, date_from, date_to, page, per_page)
  • getOrder(id) — GET /api/v1/admin/orders/:id

BFF Proxy Routes

  • GET /api/v1/admin/orders Order Service GET /api/v1/orders
  • GET /api/v1/admin/orders/:id Order Service GET /api/v1/orders/:id

Read-only

Админка не создаёт и не изменяет заказы. Только просмотр. Мутации — через POS BFF.

Страницы

ActiveOrdersPage (/orders/active)

  • Store selector (дропдаун по роли, как в стоп-листах)
  • Таблица активных заказов: №, Время (относительное), Тип, Статус badge, Сумма, Оплата badge, Кассир
  • Auto-refresh каждые 30 секунд
  • Клик по строке OrderDetailPage
  • Фильтр: status=new,in_progress,ready
  • Empty state: “Нет активных заказов”

OrderHistoryPage (/orders/history)

  • Store selector (дропдаун по роли)
  • Фильтр: диапазон дат (date_from, date_to), статус (closed, cancelled, все)
  • Таблица: №, Дата, Тип, Статус badge, Сумма, Оплата badge, Кассир
  • Пагинация (20 per page)
  • Клик по строке OrderDetailPage
  • Empty state: “Нет заказов за выбранный период”

OrderDetailPage (/orders/:id)

  • Header: номер заказа, статус badge, ТТ, дата, кассир, тип
  • Таблица позиций: Товар, Кол-во, Цена, Модификаторы, Стоимость, Комментарий
  • Итого (total)
  • Секция оплаты: способ, сумма, RRN, карта, дата оплаты (если оплачен)
  • Секция отмены: причина, дата (если отменён)
  • Read-only
  • Добавить группу “Заказы” в навигацию (после “Склад”)
  • Пункты: “Активные” (/orders/active), “История” (/orders/history)
  • Скрыть для роли Кассир

Routing

  • /orders/active ActiveOrdersPage
  • /orders/history OrderHistoryPage
  • /orders/:id OrderDetailPage

Ссылки