BR 1.11: Меню с версионностью (Франчайзи) — ОТМЕНЕНА

ОТМЕНЕНА

Меню — не отдельная сущность. Меню вычисляется на лету из: каталог (published) + прейскурант − стоп-листы − складские остатки. Версионирование перенесено на каталог (BR 1.7).

Зависит от:

Перед реализацией

Необходимо создать продукт “Админка Франчайзи” в 08-Specs/Админка Франчайзи/ и репозиторий erp-franchisee.

Контекст

Каталог (BR 1.7) — справочник товаров франшизы. Но каталог сам по себе не определяет что продаётся на конкретной ТТ. Для этого нужна сущность Меню.

Меню — набор товаров из каталога, который франчайзи собирает для своих ТТ. Меню версионируется: черновик → публикация → архив.

Фронт: Админка Франчайзи (будущий erp-franchisee). Франшиза видит меню франчайзи в readonly.

Каталог и Меню — разные сущности

Каталог = “что существует” (справочник франшизы, BR 1.7). Меню = “что продаём” (конфигурация франчайзи, эта BR).

Что нужно

1. Сущность “Меню”

Поля:

  • Название (обязательное, например “Основное”, “Летнее”, “Завтрак”)
  • Франчайзи (владелец меню)
  • Статус: draft / published / archived
  • Версия (автоинкремент: 1, 2, 3…)
  • Дата публикации
  • Дата архивирования

2. Позиции меню (MenuItems)

  • Товар из каталога (только из разрешённых для ТТ — доступность, BR 1.9)
  • Порядок отображения
  • Цена не хранится в меню — берётся из прейскуранта ТТ (BR 1.9)

3. Жизненный цикл (версионность)

[Создание] → DRAFT
                ↓
         [Редактирование — свободно]
                ↓
         [Публикация] → PUBLISHED
                            ↓
                  [Нажатие "Редактировать"]
                            ↓
                  Создаётся новый DRAFT (копия текущего PUBLISHED)
                  Старый PUBLISHED продолжает работать
                            ↓
                  [Публикация нового DRAFT]
                            ↓
                  Новый → PUBLISHED
                  Старый → ARCHIVED

Правила:

  • Одновременно 1 PUBLISHED версия на одно меню
  • DRAFT — свободное редактирование (добавление/удаление товаров, порядок)
  • PUBLISHED — нельзя редактировать. Кнопка “Редактировать” → создаёт DRAFT (копия)
  • При публикации DRAFT → текущий PUBLISHED → ARCHIVED
  • ARCHIVED — только просмотр. Кнопка “Восстановить” → создаёт DRAFT (копия)
  • Франчайзи сам апрувит (без цепочки согласования)

4. Привязка к ТТ

  • Каждая ТТ привязана к одному опубликованному меню
  • На MVP: одно меню на франчайзи (все его ТТ используют одно меню)
  • В будущем: несколько параллельных меню (Завтрак, Основное, Летнее), ТТ привязана к нескольким

5. Что видит клиент

Товар виден клиенту на ТТ если:

  1. Товар существует в каталоге и status = active
  2. Товар разрешён для ТТ (доступность, BR 1.9)
  3. Товар включён в опубликованное меню ТТ
  4. Товар не в стоп-листе (BR 1.10)
  5. ТТ опубликована (BR 1.5)

Цена = прейскурант ТТ → базовая цена товара (fallback).

6. Ролевой доступ

РольЧто может
ФраншизаПросмотр всех меню всех франчайзи (без редактирования)
ФранчайзиCRUD своих меню: создание, редактирование draft, публикация, просмотр архива
Менеджер ТТПросмотр опубликованного меню своей ТТ
КассирНет доступа в админке

Структура фронта (Админка Франчайзи)

Sidebar (Админка Франчайзи):
├── Dashboard
├── Мои ТТ
├── Меню                          ← этот раздел
│     ├── /menus                  — Список меню (название, статус, версия, дата)
│     ├── /menus/new              — Создание меню
│     ├── /menus/:id              — Просмотр меню
│     ├── /menus/:id/edit         — Редактор (только draft)
│     └── /menus/:id/versions     — Архив версий
├── Стоп-листы
└── ...

Ключевой экран: Редактор меню

Экран редактирования draft-версии:

  • Левая панель: каталог товаров (дерево категорий, список товаров с поиском). Показываются только разрешённые для ТТ франчайзи.
  • Правая панель: товары в меню (порядок, кнопка удаления). Цены рядом (из прейскуранта, информационно).
  • Действия: чекбоксы или drag-and-drop для добавления из каталога в меню.
  • Статус-бар: “Черновик v3” с кнопками “Сохранить” / “Опубликовать” / “Отменить”.

Франшиза видит меню в readonly

В Админке Франшизы (erp-admin):

  • Раздел “Меню франчайзи” — список всех меню всех франчайзи
  • Просмотр содержимого (какие товары, какая версия, статус)
  • Без возможности редактирования

Что НЕ входит (отложено)

  • Несколько параллельных меню на ТТ — Phase 2 (архитектура готова)
  • Расписание меню (Завтрак до 12:00) — Phase 2
  • A/B тестирование меню — Phase 2+
  • Сохранённые пресеты/наборы (“Летнее”, “Зимнее”) — Phase 2

Ссылки