@startuml autonumber boundary LT_trigger queue logistic_tracker.logistic_order_changes as kafka_lt participant DDC participant OMS_Order queue touch.events as Touch database db loop LT_trigger -> kafka_lt: Событие изменения лог заказа DDC -> kafka_lt: Читает сообщение end alt customer_shipment.now > customer_shipment.before is False DDC -> DDC: пропускает сообщение else customer_shipment.now > customer_shipment.before is True DDC -> OMS_Order: Ожидает подтверждение\nпереноса ДД от OMS через wf alt Сигнал с подтверждением переноса ДД не пришло DDC -> DDC: Прекращает ожидание события else Сигнал с подтверждением переноса ДД пришло OMS_Order -> DDC: Сигнал с подтверждением переноса ДД DDC -> DDC: Проверяет что не было уведомлений\nпо заказу в течении этих суток alt Было уведомление в последние сутки DDC -> DDC: Пропускает данное изменение else Не было уведомлений в последние сутки DDC -> DDC: Проверяет заказ робота или клиента? alt Заказ робота DDC -> CRM: Отправка сообщения в топик CRM DDC -> db: Записывает данные о поставленной задаче в БД else Заказ клиента DDC -> OMS_Order: Получить данные по заказу OMS_Order -> DDC: Вернуть данные по заказу DDC -> DDC: Подготовить данные для\nотправки в топик Touch DDC -> Touch: Отправить нотификацию в топик Touch (b2c смс, b2b email) DDC -> db: Записывает данные о нотификации клиента в БД end end end end @enduml @startuml start :DDC читает топик LT; if (customer_shipment.now > customer_shipment.before is False) then :Пропускает сообщение; kill else :DDC Ожидает подтверждение\nпереноса ДД от OMS через wf; endif if (Сигнал с подтверждением переноса ДД пришел?) then (нет) :Прекращает ожидание события\nничего не делает; kill else (да) if (Событие уведомления по заказу было в течении суток?) then (да) :Пропускает событие; kill else (нет) endif if (Заказ назначен на менеджера?) then (да) :Отправка сообщения в топик CRM; :Записывает данные о поставленной задаче в БД; else (нет (заказ робота)) :Отправить нотификацию в топик Touch (b2c смс, b2b email); :Записывает данные о нотификации клиента в БД; endif stop @enduml