@startuml scale 800*800 mainframe Взаимодействие с историей изменения заказ actor Пользователь as user participant ARM as ARM participant OMS as OMS participant History as History autonumber user -> ARM: Нажимает кнопку "История изменений" ARM -> OMS: REST GET /order-history OMS -> History: REST GET api/v1/order_history_short/ History --> OMS: answer OMS --> ARM: answer ARM --> user: Рендерит страницу "История изменений" user -> ARM: Нажимает кнопку "Подробнее" в корректировке ARM -> OMS: REST GET /order-history-event OMS -> History: REST GET api/v1/event_changed/ History --> OMS: answer OMS --> ARM: answer ARM --> user: Отображает полную информацию о корректировке user -> ARM: Выбирает фильтр по дате или по типу корректировки ARM -> OMS: REST GET /order-history-filters OMS -> History: REST GET api/v1/events_from_entity/ History --> OMS: answer OMS --> ARM: answer ARM --> user: Отображает корректировки по заданным условиям user -> ARM: Вводит идентификатор корректировки и нажимает Enter ARM -> OMS: REST GET /order-history-event OMS -> History: REST GET api/v1/event_changed/ History --> OMS: answer OMS --> ARM: answer ARM --> user: Отображает корректировки по заданным условиям @enduml @startuml scale 1000*1000 mainframe Взаимодействие с историей изменения заказа actor Пользователь as user participant ARM as ARM participant Gateway as Gateway participant History as History participant Bifrost as Bifrost autonumber user -> ARM: Нажимает кнопку "История изменений" ARM -> Gateway: REST GET /history/v1/order/{orderID} Gateway -> History: gRPC GetChangesByOrderIDAndParameters() History --> Gateway: EventsByOrderIDResponse Gateway -> Bifrost: gRPC GetUsersByIDs() [для получения имен менеджеров] Bifrost --> Gateway: UserInfo[] Gateway --> ARM: Таблица истории изменений с именами менеджеров ARM --> user: Рендерит модальное окно "История изменений" user -> ARM: Нажимает кнопку "Подробнее" в корректировке ARM -> Gateway: REST GET /history/v1/events?eventIDs=[eventID] Gateway -> History: gRPC GetEventChangesByIDs() History --> Gateway: EventChangesByIDResponse[] Gateway -> Bifrost: gRPC GetUserByIDV2() [для получения имени менеджера] Bifrost --> Gateway: UserInfo Gateway --> ARM: Таблица истории изменений с именами менеджеров ARM --> user: Отображает полную информацию о корректировке user -> ARM: Выбирает фильтр по дате или по типу корректировки ARM -> Gateway: REST GET /history/v1/order/{orderID}?eventCorrectionType=...&createdAts=... Gateway -> History: gRPC GetChangesByOrderIDAndParameters() [с фильтрами] History --> Gateway: EventsByOrderIDResponse Gateway -> Bifrost: gRPC GetUsersByIDs() [для получения имен менеджеров] Bifrost --> Gateway: UserInfo[] Gateway --> ARM: Таблица истории изменений с именами менеджеров ARM --> user: Отображает корректировки по заданным условиям user -> ARM: Вводит идентификатор корректировки и нажимает Enter ARM -> Gateway: REST GET /history/v1/events?eventIDs=[eventID] Gateway -> History: gRPC GetEventChangesByIDs() History --> Gateway: EventChangesByIDResponse[] Gateway -> Bifrost: gRPC GetUserByIDV2() [для получения имени менеджера] Bifrost --> Gateway: UserInfo Gateway --> ARM: История изменений с именами менеджеров ARM --> user: Отображает корректировки по заданным условиям @enduml @startuml scale 1200*1200 mainframe Взаимодействие с историей изменения заказа actor Пользователь as user participant ARM as ARM participant Gateway as Gateway participant History as History participant Bifrost as Bifrost autonumber user -> ARM: Нажимает кнопку "История изменений" ARM -> Gateway: REST GET /history/v1/filters Gateway -> History: gRPC GetTypesOfEvents() History --> Gateway: AvailableActions (список типов событий) Gateway --> ARM: HistoryFiltersList (eventCorrectionType[]) ARM -> Gateway: REST GET /history/v1/order/{orderID} Gateway -> History: gRPC GetChangesByOrderIDAndParameters() History --> Gateway: EventsByOrderIDResponse Gateway -> Bifrost: gRPC GetUsersByIDs() [для получения имен менеджеров] Bifrost --> Gateway: UserInfo[] Gateway --> ARM: HistoryList (события с именами менеджеров) ARM --> user: Рендерит модальное окно "История изменений" с фильтрами user -> ARM: Нажимает кнопку "Подробнее" в корректировке ARM -> Gateway: REST GET /history/v1/events?eventIDs=[eventID] Gateway -> History: gRPC GetEventChangesByIDs() History --> Gateway: EventChangesByIDResponse[] Gateway -> Bifrost: gRPC GetUserByIDV2() [для получения имени менеджера] Bifrost --> Gateway: UserInfo Gateway --> ARM: HistoryEvent (с полными изменениями) ARM --> user: Отображает полную информацию о корректировке alt Первый тип поиска по дате и/или типу корректировки user -> ARM: Выбирает фильтр по дате или по типу корректировки ARM -> Gateway: REST GET /history/v1/order/{orderID}?eventCorrectionType=...&createdAts=... Gateway -> History: gRPC GetChangesByOrderIDAndParameters() [с фильтрами] History --> Gateway: EventsByOrderIDResponse Gateway -> Bifrost: gRPC GetUsersByIDs() [для получения имен менеджеров] Bifrost --> Gateway: UserInfo[] Gateway --> ARM: HistoryList (отфильтрованные события) ARM --> user: Отображает корректировки по заданным условиям else Второй тип поиска по идентификатору корректировки user -> ARM: Вводит идентификатор корректировки и нажимает Enter ARM -> Gateway: REST GET /history/v1/events?eventIDs=[eventID] Gateway -> History: gRPC GetEventChangesByIDs() History --> Gateway: EventChangesByIDResponse[] Gateway -> Bifrost: gRPC GetUserByIDV2() [для получения имени менеджера] Bifrost --> Gateway: UserInfo Gateway --> ARM: HistoryEvent (с полными изменениями) ARM --> user: Отображает корректировки по заданным условиям end @enduml