using System; using System.Collections.Generic; using System.Linq; using MediaBrowser.Model.System; namespace Jellyfin.Api.Models.SystemInfoDtos; /// /// Contains informations about the systems storage. /// public record SystemStorageDto { /// /// Gets or sets the Storage information of the program data folder. /// public required FolderStorageDto ProgramDataFolder { get; set; } /// /// Gets or sets the Storage information of the web UI resources folder. /// public required FolderStorageDto WebFolder { get; set; } /// /// Gets or sets the Storage information of the folder where images are cached. /// public required FolderStorageDto ImageCacheFolder { get; set; } /// /// Gets or sets the Storage information of the cache folder. /// public required FolderStorageDto CacheFolder { get; set; } /// /// Gets or sets the Storage information of the folder where logfiles are saved to. /// public required FolderStorageDto LogFolder { get; set; } /// /// Gets or sets the Storage information of the folder where metadata is stored. /// public required FolderStorageDto InternalMetadataFolder { get; set; } /// /// Gets or sets the Storage information of the transcoding cache. /// public required FolderStorageDto TranscodingTempFolder { get; set; } /// /// Gets or sets the storage informations of all libraries. /// public required IReadOnlyCollection Libraries { get; set; } internal static SystemStorageDto FromSystemStorageInfo(SystemStorageInfo model) { return new SystemStorageDto() { ProgramDataFolder = FolderStorageDto.FromFolderStorageInfo(model.ProgramDataFolder), WebFolder = FolderStorageDto.FromFolderStorageInfo(model.WebFolder), ImageCacheFolder = FolderStorageDto.FromFolderStorageInfo(model.ImageCacheFolder), CacheFolder = FolderStorageDto.FromFolderStorageInfo(model.CacheFolder), LogFolder = FolderStorageDto.FromFolderStorageInfo(model.LogFolder), InternalMetadataFolder = FolderStorageDto.FromFolderStorageInfo(model.InternalMetadataFolder), TranscodingTempFolder = FolderStorageDto.FromFolderStorageInfo(model.TranscodingTempFolder), Libraries = model.Libraries.Select(LibraryStorageDto.FromLibraryStorageModel).ToArray() }; } }