48 lines
2.0 KiB
Plaintext
48 lines
2.0 KiB
Plaintext
@startuml Процесс создания и жизненный цикл заказа
|
||
|
||
state "Заказ не создан" as start
|
||
|
||
state "НОВЫЙ" as new_order
|
||
|
||
state "ЗАБРОНИРОВАН" as booked {
|
||
state "Таймер брони (3 дня)" as reserve_timer
|
||
}
|
||
|
||
state "Оформление..." as processing_payment
|
||
state "В РАБОТЕ" as in_progress
|
||
state "ОТМЕНЕН" as cancelled
|
||
|
||
state "Товар в закупке" as purchasing
|
||
|
||
start --> new_order : Создать заказ
|
||
|
||
new_order --> cancelled : Кнопка "Отменить заказ"\n(Ручная отмена)
|
||
|
||
new_order --> booked : Кнопка "Забронировать"\n(Синхронный запрос во Втис)
|
||
|
||
booked --> booked : **Успех:** Товары зарезервированы
|
||
|
||
booked --> new_order : Кнопка "Отменить бронирование"\n(Таймер брони продолжает идти)"
|
||
|
||
reserve_timer --> cancelled : Истек 3 дня\n(Автоотмена брони)
|
||
|
||
booked --> cancelled : Кнопка "Отменить заказ"\n(Ручная отмена)
|
||
|
||
new_order --> processing_payment : Кнопка "Оформить"
|
||
booked --> processing_payment : Кнопка "Оформить"
|
||
|
||
processing_payment --> in_progress : **Успех:** Товары доступны\nЗаказ передан в системы товародвижения
|
||
|
||
processing_payment --> purchasing : **Неудача:** Товара нет в наличии\n(Запуск процесса закупки)
|
||
purchasing --> in_progress : Товар закуплен
|
||
|
||
state in_progress {
|
||
state "Заказ выполняется" as active
|
||
state "Резерв продлен" as extended
|
||
active --> extended : Кнопка "Продлить резерв"\n(Правила: 1 раз если не оплачен,\n∞ раз (Ст. менеджер) если оплачен)
|
||
extended --> active
|
||
}
|
||
|
||
in_progress --> cancelled : Кнопка "Отменить заказ"
|
||
|
||
@enduml |