@startuml mainframe TO BE применение акций и скидок в заказе B2C scale 1500x1500 actor user as user participant ARM participant Sherlock participant Gateway participant Order participant PDM participant Druz participant SCROOGE participant Promo autonumber user -> ARM: Нажимает кнопку "Применить скидки" ARM -> ARM: Рендерит модальное окно ARM -> ARM: Акции сайта - чекбокс активен ARM -> ARM: Скидки, выбрано: Без скидки autonumber 5.1 alt Выбирает только скидки уровня ОПТ user -> ARM: Выбирает тип ОПТа для клиента user -> ARM: Снимает чекбокс "Акции сайта" user -> ARM: Нажимает кнопку "Применить" ARM -> Gateway: Передает запрос Gateway -> Gateway: Получает название региона из кэша Gateway -> SCROOGE: Запрашивает цены из SCROOGE согласно уровню ОПТа SCROOGE --> Gateway: answer autonumber 6.1 else Выбирает только акции сайта user -> ARM: Оставляет чекбокс "Акции сайта" user -> ARM: Оставляет скидку с типом "Без скидки" user -> ARM: Нажимает кнопку "Применить" ARM -> Gateway: Передает запрос Gateway -> Gateway: Получает название региона из кэша Gateway -> Gateway: Готовит запрос в promo Gateway -> Promo: Запрашивает акции и цены по товарам из Promo Promo --> Gateway: answer autonumber 7.1 else Выбирает акции и скидки ОПТ user -> ARM: Выбирает тип ОПТа для клиента user -> ARM: Оставляет чекбокс "Акции сайта" user -> ARM: Нажимает кнопку "Применить" ARM -> Gateway: Передает запрос Gateway -> Gateway: Получает название региона из кэша Gateway -> Gateway: Готовит запрос в promo Gateway -> Promo: Запрашивает акции и цены по товарам из Promo Promo --> Gateway: answer Gateway -> SCROOGE: Запрашивает цены из SCROOGE согласно уровню ОПТа SCROOGE --> Gateway: answer Gateway -> Gateway: Применяет наименьшие цены\nк каждому из товаров end autonumber 8 Gateway -> Order: Записывает изменения в модель Order --> Gateway: Изменения успешно применены Gateway -> Gateway: Собирает ответ для frontend Gateway --> ARM: Answer ARM -> user: Отображает примененные акции @enduml