ImageVault
sequenceDiagram actor User participant ImageVault participant FileSystem User->>ImageVault: フォルダを開く ImageVault->>FileSystem: フォルダ内容取得 FileSystem-->>ImageVault: フォルダ内容返送 ImageVault->>User: フォルダ内容表示 User->>ImageVault: 画像をBinに移動 ImageVault->>FileSystem: 画像の一時保存場所変更 FileSystem-->>ImageVault: 変更完了通知 ImageVault->>User: Bin内容更新表示 User->>ImageVault: 画像を平置き表示に切り替え ImageVault->>User: 平置きビュー表示
classDiagram class ImageVault { -FolderManager folderManager -BinSystem binSystem -FlatViewSystem flatViewSystem -ImageManager imageManager +openFolder(folderPath) +switchView(viewType) +moveImageToBin(imageId) +restoreImageFromBin(imageId) +deleteImage(imageId) } class FolderManager { -List~Folder~ folders +createFolder(name) +deleteFolder(folderId) +moveFolder(folderId, newParentId) +getFolderContents(folderId) } class Folder { -string id -string name -List~Image~ images -List~Folder~ subfolders } class BinSystem { -List~Image~ deletedImages +addToBin(image) +restoreFromBin(imageId) +emptyBin() } class FlatViewSystem { -List~Image~ allImages +getAllImages() +sortImages(criteria) +filterImages(filters) } class ImageManager { -Map~string, Image~ images +addImage(image) +getImage(imageId) +updateImage(imageId, newData) +deleteImage(imageId) } class Image { -string id -string filename -string path -Date createdDate -List~string~ tags } ImageVault "1" *-- "1" FolderManager ImageVault "1" *-- "1" BinSystem ImageVault "1" *-- "1" FlatViewSystem ImageVault "1" *-- "1" ImageManager FolderManager "1" *-- "*" Folder Folder "1" *-- "*" Image ImageManager "1" *-- "*" Image BinSystem "1" *-- "*" Image FlatViewSystem "1" --> "*" Image