package ru.forbion.f7cloud.feature.files

data class OfficeEditorLaunch(
    val url: String,
    val title: String,
    val username: String,
    val password: String,
    val trustAllCerts: Boolean,
    val serverUrl: String = "",
    val collaboraBaseUrl: String = "",
)

data class FilesUiState(
    val loading: Boolean = false,
    val items: List<FileItem> = emptyList(),
    val currentPath: String = "",
    val browseMode: FilesBrowseMode = FilesBrowseMode.AllFiles,
    val error: String? = null,
    val unauthorized: Boolean = false,
    val openingFile: String? = null,
    val editorLaunch: OfficeEditorLaunch? = null,
    val openAction: FileOpenAction? = null,
    val searchQuery: String = "",
    val searchResults: List<FilesSearchHit> = emptyList(),
    val searchActive: Boolean = false,
    val selectedPaths: Set<String> = emptySet(),
    val sortColumn: FilesSortColumn = FilesSortColumn.Name,
    val sortDirection: FilesSortDirection = FilesSortDirection.Asc,
    val userConfig: FilesUserConfig = FilesUserConfig(),
    val storageStats: FilesStorageStats = FilesStorageStats(),
    val folderTree: List<FilesFolderTreeNode> = emptyList(),
    val expandedTreePaths: Set<String> = emptySet(),
    val expandedSidebarSections: Set<String> = setOf("sharing"),
    val detailsItem: FileItem? = null,
    val detailsTab: FileDetailsTab = FileDetailsTab.Sharing,
    val fileDetails: FileDetailsData? = null,
    val detailsLoading: Boolean = false,
    val renameItem: FileItem? = null,
    val snackbar: String? = null,
)
