@startuml fig_02_vault_lifecycle
scale 3
title
Wallenc — жизненный цикл storage (IStorage)
внутри IVault; журнал синхронизации
end title

skinparam defaultFontName "DejaVu Sans"
skinparam state {
  BackgroundColor #F8F8F8
  BorderColor #333333
}
skinparam noteBackgroundColor #E3F2FD
skinparam noteBorderColor #1565C0

state "(Б) Список storage (LocalVault / VaultBrowser)" as List

List --> Create : Создать storage (FAB)
Create --> List : Storage создан

List --> EncryptDlg : Включить шифрование storage
EncryptDlg --> Encrypting : Подтверждение, ключ
state Encrypting {
  state "Шифрование + метаданные Room" as EncWork
}
Encrypting --> List : Готово

note right of Encrypting
  Запись в журнал sync (проект):
  UUID **storage** → очередь
  группы DbStorageSyncGroup
end note

List --> OpenDlg : Открыть зашифрованный storage
OpenDlg --> Opened : Ключ верный
OpenDlg --> List : Отмена / неверный ключ

state Opened {
  state "Файлы, секреты, 2FA (StorageHome)" as Browse
}
Opened --> List : Закрыть / заблокировать storage

List --> RenameDel : Переименовать / удалить storage
RenameDel --> List : Подтверждение

note bottom of List
  **Синхронизация:** изменения в **storage**
  пишутся в журнал; StorageSyncEngine
  согласует группы storage по ревизиям
  (зашифрованное содержимое, без ключей).
end note

@enduml
