@startuml
scale 1300x1300
mainframe AS IS обмен по созданию заказа на сайте
Actor USER
participant SITE
database SITE_database
queue kafka_1
participant WTIS
database WTIS_database
queue kafka_2
participant OMS
database OMS_database
'-------------------------------------------action-------------------
autonumber

USER -> SITE: Нажимает кнопку оформить заказ
SITE -> SITE_database: Проводит внутренние проверки\nи сохраняет в БД
SITE_database -> SITE: Заказ успешно сохранен

autonumber 4.1
alt Тип доставки в заказе: Самовывоз
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.pickup.created
else Тип доставки в заказе: Курьером
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.courier.created
else Тип доставки в заказе: ТК
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.transport_company.created
end

autonumber 5
WTIS -> kafka_1: Читает сообщения из топика
WTIS -> WTIS_database: Сохраняет заказ
WTIS_database -> WTIS: Заказ успешно сохранен
WTIS -> WTIS: Проверяет условия для MVP\nсогласно настроек в wtis_settings

autonumber 9.1
alt Заказ подходит под условия OMS
WTIS -> kafka_2: Записывает заказ в топик: wtis.order_oms.created
else Заказ не подходит под условия OMS
WTIS -> WTIS: Продолжает процедуру автооформления\nзаказа и обогащения данными
WTIS -> WTIS: Конец процесса
end

autonumber 10
OMS -> kafka_2: Читает событие из топика
OMS -> OMS_database: Сохраняет заказ в БД
OMS_database -> OMS: Заказ успешно сохранен

OMS -> OMS: Проводит бизнес проверки
OMS -> WTIS: Резервирует товары

autonumber 15.1
alt Успешно зарезервировано
WTIS -> OMS: Товары в заказе успешно зарезервированы
else Не успешно зарезервировано
WTIS -> WTIS: Ставит задачу на менеджера, меняет мастер-систему
WTIS -> WTIS: Конец процесса
end

@enduml