Update Blocks To Latest Service Spec
1. Назначение и граница сервиса
Функция:
-
обновляет
BlockRefвыбранной composition до latest published versions; -
не переписывает содержание блоков;
-
публикует новую composition version только через explicit update path.
2. Потребители и зависимости
Потребитель:
-
CompositionsViewModel
Зависимости:
-
Engine.LoadComposition -
Engine.GetLatestBlockVersion -
Engine.UpdateComposition -
CompositionDraftBuilder
3. Методы и точки вызова
Основная точка входа:
-
CompositionsViewModel::updateBlocksToLatest()
Используемые engine methods:
-
LoadComposition -
GetLatestBlockVersion -
UpdateComposition
4. Входной контракт
Пользовательские входы:
-
selected_composition_id -
selected_version
Внутренний контекст:
-
loaded
Composition -
block refs and local params
5. Выходной контракт
Результат:
-
новая published composition version при наличии изменений;
-
explicit status text, если изменений нет или произошла ошибка.
6. Правила доменного контракта
Функция обязана:
-
обновлять только block version references;
-
сохранять order, static text, separators и local params;
-
не публиковать новую version, если ничего не изменилось;
-
использовать обычный composition update lifecycle.
7. Ошибки и fallback behavior
Ошибки:
-
composition not selected;
-
invalid version;
-
composition loading failure;
-
latest block version lookup failure;
-
update failure.
Fallback:
-
no-op with explicit status when everything already latest.