71 lines
6.0 KiB
Markdown
71 lines
6.0 KiB
Markdown
# Сценарии работы приложения
|
||
|
||
## 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 не найден в системе. Обратитесь к администратору.»
|