8.1 KiB
8.1 KiB
Сценарии работы приложения
1. Оператор входит в систему
- Оператор (логист, водитель или админ) открывает
/loginи вводит email. - Система отправляет одноразовый код на почту. На экране подсказка: «Проверьте входящие и папку Спам».
- Если email не найден в системе, показывается: «Email не найден в системе. Обратитесь к администратору.»
- После ввода верного кода оператор попадает в дашборд согласно роли.
2. Логист открывает рабочее пространство доставки
- Логист видит LogisticsReadinessBoard — доску с наборами доставки, сгруппированными по статусам:
- На подходе: не все заказы набора прошли контроль качества.
- Готово к запуску: все заказы приняты, можно запускать доставку.
- Ожидает клиента: отправлено приглашение, ждём ответа.
- Нужна ручная работа: передано логисту, платное хранение, проблема.
- Согласовано: клиент подтвердил слот.
- Завершено: все заказы доставлены.
- Клик по набору открывает DeliverySetDetailPanel с:
- Перечнем заказов набора, их 1С-номерами и шагами производства (раскрой, склейка, криволинейные, контроль качества, отгрузка).
- Телефоном и email клиента, городом, связанными счетами.
- Текущим статусом слота.
3. Согласование доставки с клиентом
- Когда набор доставки готов, логист запускает отправку приглашения клиенту.
- Клиент получает ссылку на
/delivery/:token. - На странице клиент видит вкладки 🚚 Доставка и 🏪 Самовывоз.
- На вкладке «Доставка» — DeliverySlotsPicker с доступными датами и половинами дня.
- На вкладке «Самовывоз» — PickupSlotsPicker с датами (сегодня до 12:00, завтра, послезавтра, без выходных) и половинами дня, а также информационный блок: «Бесплатное хранение — 2 рабочих дня. С 3-го рабочего дня — 300₽/день.»
- Клиент выбирает тип получения, слот и подтверждает. Статус набора переходит в «Ожидает клиента» → «Согласовано» или «Самовывоз».
- Если клиент не отвечает, система или логист переводит набор в «Нужна ручная работа».
4. Перенос доставки
- Клиент нажимает «Запросить новую ссылку», логист получает уведомление.
- Логист может переназначить слот или отправить новое приглашение.
- Выбранный слот сохраняется в
delivery_slots.
5. Исключение
- Если клиент не отвечает в течение SLA, система создаёт исключение.
- Набор переходит в «Нужна ручная работа».
- Логист может снова отправить приглашение, перевести в платное хранение или отменить.
- Администратор видит инцидент в панели аудита.
6. Водитель выполняет доставку
- Водитель видит назначенные доставки с адресом, городом, интервалом и составом заказа.
- Переводит статус: Загружен → В пути → Доставлен.
- При проблеме переводит в «Проблема доставки».
7. Завершение доставки
- Статус «Доставлен» подтверждает физическую передачу заказа клиенту.
- После закрытия всех заказов набора он переходит в «Завершено».
- В истории появляется финальная запись, а чат закрывается для активных действий.
8. Самовывоз
Клиентский сценарий
- Клиент открывает ссылку
/delivery/:token. - Выбирает вкладку 🏪 Самовывоз.
- Видит доступные даты: сегодня (если до 12:00 текущего дня готовности), завтра, послезавтра (выходные пропускаются).
- Выбирает дату и половину дня: «До обеда» или «После обеда».
- Видит информационный блок: «Бесплатное хранение — 2 рабочих дня. С 3-го рабочего дня — 300₽/день.»
- Подтверждает выбор.
- В БД устанавливаются:
delivery_type = 'pickup',delivery_status = 'pickup',pickup_date,pickup_time_slot.
Сценарий менеджера/логиста
- В карточке заказа (OrderDetailPanel) менеджер видит вкладки Доставка/Самовывоз.
- При выборе «Самовывоз» — поля даты и половины дня для самовывоза.
- Кнопка статуса «Самовывоз» доступна для менеджера, логиста и администратора.
- Менеджер может переключить тип доставки в любой момент до передачи водителю.
Статусы самовывоза
pickup— заказ ожидает самовывоза клиентом.- Переходы:
pending_confirmation→pickup,manual_confirmation_required→pickup,pickup→assigned_to_driver,pickup→delivered,pickup→cancelled.
Сценарий показа заказчику
- Зайти под логистом.
- На дашборде увидеть
LogisticsReadinessBoardс наборами:- Волкова М.А. — «На подходе» (кухня готова, столешница ещё в производстве).
- Савин А.П. — «Готово к запуску» (все заказы прошли контроль качества).
- Тарасова Е.И. — «Ожидает клиента» (приглашение отправлено).
- Фролова И.Д. — «Нужна ручная работа» (платное хранение).
- Орлова Н.С. — «Завершено».
- Кликнуть по набору Савина — увидеть source-поля, production-шаги, готовность к запуску.
- Перейти на публичную страницу приглашения — увидеть вкладки «Доставка» и «Самовывоз» с выбором даты и половины дня.
- Зайти под водителем — увидеть назначенные доставки с адресами и быстрыми действиями.
- Зайти под несуществующим email — увидеть «Email не найден в системе. Обратитесь к администратору.»