Перейти к содержанию

Спецификация 02. Ключевые процессы (последовательности)

Статус: ревизия №2 по итогам аудита корпуса · 10.10.2026. Числовые факты сопровождаются ссылками; канонические перечисления — в «Модели данных», §0.

Схемы сценариев «от заказа до отзыва» и поддерживающих контуров. Каждый сценарий = один вертикальный срез платформы. Момент списания по ТТК во всех сценариях один: перевод кухонного тикета в ready (а не пробитие чека) — каноническое правило в ../components/12-data-model.md, §0.

1. Заказ в зале: официант → кухня → оплата → чек

sequenceDiagram
    participant Гость
    participant Официант (планшет)
    participant Касса
    participant Кухня (КДС)
    participant Склад
    participant ККТ/ОФД

    Гость->>Официант (планшет): делает заказ
    Официант (планшет)->>Касса: заказ (позиции, модификаторы)
    Касса->>Кухня (КДС): тикеты по станциям
    Кухня (КДС)->>Кухня (КДС): статусы: готовится → готов
    Кухня (КДС)->>Склад: списание ингредиентов по ТТК (триггер — статус «готов»)
    Кухня (КДС)->>Касса: блюдо подано
    Гость->>Касса: оплата (карта + бонусы по телефону)
    Касса->>ККТ/ОФД: фискальный чек (ФФД 1.2)
    ККТ/ОФД-->>Гость: чек (бумажный/электронный)
    Касса->>Гость: бонусы + запрос отзыва

2. Онлайн-заказ с доставкой

sequenceDiagram
    participant Гость
    participant Витрина (сайт/мини-апп)
    participant Сервис заказов
    participant Облачная касса
    participant Кухня
    participant Диспетчер доставки
    participant Курьер

    Гость->>Витрина (сайт/мини-апп): корзина + адрес
    Витрина (сайт/мини-апп)->>Сервис заказов: заказ (зона, обещание времени)
    Гость->>Облачная касса: онлайн-оплата → чек
    Сервис заказов->>Кухня: тикеты
    Кухня->>Диспетчер доставки: упакован
    Диспетчер доставки->>Курьер: назначение (пуш)
    Курьер->>Диспетчер доставки: забрал → в пути → вручил (фото)
    Диспетчер доставки-->>Гость: статусы в реальном времени
    Сервис заказов->>Гость: запрос отзыва (через 1 час)

3. Заказ из агрегатора в общую очередь

sequenceDiagram
    participant Агрегатор
    participant Сервис заказов
    participant Кухня
    participant Склад

    Агрегатор->>Сервис заказов: вебхук нового заказа
    Сервис заказов->>Сервис заказов: маппинг позиций агрегатора на меню точки
    alt позиция в стоп-листе
        Сервис заказов-->>Агрегатор: отклонение с причиной
    else позиции доступны
        Сервис заказов->>Кухня: тикеты (как для прямого заказа)
        Кухня->>Склад: списание по ТТК (при статусе «готов»)
        Сервис заказов->>Агрегатор: статусы готовности
    end

4. Закупки: прогноз → автозаказ → приёмка → себестоимость

sequenceDiagram
    participant Планировщик
    participant Закупщик
    participant Поставщик (ЭДО)
    participant Склад
    participant ТТК

    Планировщик->>Закупщик: автозаказ (прогноз продаж + остатки)
    Закупщик->>Поставщик (ЭДО): заказ поставщику
    Поставщик (ЭДО)->>Склад: поставка + УПД (ЭДО)
    Склад->>Склад: приёмка со сверкой (план/факт)
    Склад->>ТТК: пересчёт себестоимости (партии/ФИФО)
    Note over Планировщик,ТТК: расхождения приёмки > порога → задача управляющему

5. Офлайн-режим кассы и кухни

sequenceDiagram
    participant Касса
    participant Локальный журнал
    participant Облако

    Note over Касса,Облако: связь с облаком потеряна
    Касса->>Локальный журнал: продажи, смены, тикеты
    Касса->>Касса: фискальные чеки (ФН работает автономно)
    Note over Касса,Облако: связь восстановлена
    Локальный журнал->>Облако: пакетная отправка событий
    Облако->>Облако: идемпотентное применение (по ключам)
    Облако-->>Касса: подтверждение + обновления справочников

6. Отзыв и сервис-рекавери

sequenceDiagram
    participant Гость
    participant Сервис гостей
    participant Менеджер точки
    participant Операции

    Сервис гостей->>Гость: запрос оценки (СМС/мессенджер)
    Гость->>Сервис гостей: оценка + комментарий
    Сервис гостей->>Сервис гостей: привязка к заказу: блюда, смена, курьер
    alt оценка низкая
        Сервис гостей->>Менеджер точки: задача с дедлайном
        Менеджер точки->>Гость: ответ + компенсация баллами
        Менеджер точки->>Операции: причина → действие (ТТК/обучение/зона)
    else оценка высокая
        Сервис гостей->>Гость: благодарность + персональный оффер
    end

7. Роялти: от фискальных данных к счёту

sequenceDiagram
    participant ККТ точек
    participant Финансовый сервис
    participant Кабинет франчайзи
    participant ЭДО

    ККТ точек->>Финансовый сервис: фискальная выручка за период
    Финансовый сервис->>Финансовый сервис: роялти = % договора + маркетинговый сбор
    Финансовый сервис->>Кабинет франчайзи: счёт с детализацией по чекам
    Кабинет франчайзи->>Финансовый сервис: подтверждение/спор
    Финансовый сервис->>ЭДО: акт для юр. значимости

8. Инвентаризация (слепая)

sequenceDiagram
    participant Товаровед
    participant Приложение инвентаризации
    participant Склад
    participant Управляющий

    Товаровед->>Приложение инвентаризации: пересчёт по зонам (без учётных остатков)
    Приложение инвентаризации->>Склад: фактические количества
    Склад->>Склад: отклонения = факт − учёт
    alt отклонения > порога
        Склад->>Управляющий: задача на разбор причин
    else отклонения в норме
        Склад->>Склад: движение типа inventory_adjust
    end