supersam/docs/scenarios.md

6.0 KiB
Raw Blame History

Сценарии работы приложения

1. Оператор входит в систему

  1. Оператор (логист, водитель или админ) открывает /login и вводит email.
  2. Система отправляет одноразовый код на почту. На экране подсказка: «Проверьте входящие и папку Спам».
  3. Если email не найден в системе, показывается: «Email не найден в системе. Обратитесь к администратору.»
  4. После ввода верного кода оператор попадает в дашборд согласно роли.

2. Логист открывает рабочее пространство доставки

  1. Логист видит LogisticsReadinessBoard — доску с наборами доставки, сгруппированными по статусам:
    • На подходе: не все заказы набора прошли контроль качества.
    • Готово к запуску: все заказы приняты, можно запускать доставку.
    • Ожидает клиента: отправлено приглашение, ждём ответа.
    • Нужна ручная работа: передано логисту, платное хранение, проблема.
    • Согласовано: клиент подтвердил слот.
    • Завершено: все заказы доставлены.
  2. Клик по набору открывает DeliverySetDetailPanel с:
    • Перечнем заказов набора, их 1С-номерами и шагами производства (раскрой, склейка, криволинейные, контроль качества, отгрузка).
    • Телефоном и email клиента, городом, связанными счетами.
    • Текущим статусом слота.
  3. Логист может запустить приглашение, назначить водителя или перейти к ручной обработке.

3. Согласование доставки с клиентом

  1. Когда набор доставки готов, логист запускает отправку приглашения клиенту.
  2. Клиент получает ссылку на /delivery/:token.
  3. На странице клиент видит DeliverySlotsPicker с доступными датами и половинами дня.
  4. Клиент выбирает слот и подтверждает. Статус набора переходит в «Ожидает клиента» → «Согласовано».
  5. Если клиент не отвечает, система или логист переводит набор в «Нужна ручная работа».

4. Перенос доставки

  1. Клиент нажимает «Запросить новую ссылку», логист получает уведомление.
  2. Логист может переназначить слот или отправить новое приглашение.
  3. Выбранный слот сохраняется в delivery_slots.

5. Исключение

  1. Если клиент не отвечает в течение SLA, система создаёт исключение.
  2. Набор переходит в «Нужна ручная работа».
  3. Логист может снова отправить приглашение, перевести в платное хранение или отменить.
  4. Администратор видит инцидент в панели аудита.

6. Водитель выполняет доставку

  1. Водитель видит назначенные доставки с адресом, городом, интервалом и составом заказа.
  2. Переводит статус: Загружен → В пути → Доставлен.
  3. При проблеме переводит в «Проблема доставки».

7. Завершение доставки

  1. Статус «Доставлен» подтверждает физическую передачу заказа клиенту.
  2. После закрытия всех заказов набора он переходит в «Завершено».
  3. В истории появляется финальная запись, а чат закрывается для активных действий.

Сценарий показа заказчику

  1. Зайти под логистом.
  2. На дашборде увидеть LogisticsReadinessBoard с наборами:
    • Волкова М.А. — «На подходе» (кухня готова, столешница ещё в производстве).
    • Савин А.П. — «Готово к запуску» (все заказы прошли контроль качества).
    • Тарасова Е.И. — «Ожидает клиента» (приглашение отправлено).
    • Фролова И.Д. — «Нужна ручная работа» (платное хранение).
    • Орлова Н.С. — «Завершено».
  3. Кликнуть по набору Савина — увидеть source-поля, production-шаги, готовность к запуску.
  4. Перейти на публичную страницу приглашения — увидеть DeliverySlotsPicker с выбором даты и половины дня.
  5. Зайти под водителем — увидеть назначенные доставки с адресами и быстрыми действиями.
  6. Зайти под несуществующим email — увидеть «Email не найден в системе. Обратитесь к администратору.»