using System; using System.Collections.Generic; using API.Entities.Enums; namespace API.DTOs.Stats; #nullable enable /// /// Represents information about a Kavita Installation /// public class ServerInfoDto { /// /// Unique Id that represents a unique install /// public required string InstallId { get; set; } public required string Os { get; set; } /// /// If the Kavita install is using Docker /// public bool IsDocker { get; set; } /// /// Version of .NET instance is running /// public required string DotnetVersion { get; set; } /// /// Version of Kavita /// public required string KavitaVersion { get; set; } /// /// Number of Cores on the instance /// public int NumOfCores { get; set; } /// /// The number of libraries on the instance /// public int NumberOfLibraries { get; set; } /// /// Does any user have bookmarks /// public bool HasBookmarks { get; set; } /// /// The site theme the install is using /// /// Introduced in v0.5.2 public string? ActiveSiteTheme { get; set; } /// /// The reading mode the main user has as a preference /// /// Introduced in v0.5.2 public ReaderMode MangaReaderMode { get; set; } /// /// Number of users on the install /// /// Introduced in v0.5.2 public int NumberOfUsers { get; set; } /// /// Number of collections on the install /// /// Introduced in v0.5.2 public int NumberOfCollections { get; set; } /// /// Number of reading lists on the install (Sum of all users) /// /// Introduced in v0.5.2 public int NumberOfReadingLists { get; set; } /// /// Is OPDS enabled /// /// Introduced in v0.5.2 public bool OPDSEnabled { get; set; } /// /// Total number of files in the instance /// /// Introduced in v0.5.2 public int TotalFiles { get; set; } /// /// Total number of Genres in the instance /// /// Introduced in v0.5.4 public int TotalGenres { get; set; } /// /// Total number of People in the instance /// /// Introduced in v0.5.4 public int TotalPeople { get; set; } /// /// Number of users on this instance using Card Layout /// /// Introduced in v0.5.4 public int UsersOnCardLayout { get; set; } /// /// Number of users on this instance using List Layout /// /// Introduced in v0.5.4 public int UsersOnListLayout { get; set; } /// /// Max number of Series for any library on the instance /// /// Introduced in v0.5.4 public int MaxSeriesInALibrary { get; set; } /// /// Max number of Volumes for any library on the instance /// /// Introduced in v0.5.4 public int MaxVolumesInASeries { get; set; } /// /// Max number of Chapters for any library on the instance /// /// Introduced in v0.5.4 public int MaxChaptersInASeries { get; set; } /// /// Does this instance have relationships setup between series /// /// Introduced in v0.5.4 public bool UsingSeriesRelationships { get; set; } /// /// A list of background colors set on the instance /// /// Introduced in v0.6.0 public required IEnumerable MangaReaderBackgroundColors { get; set; } /// /// A list of Page Split defaults being used on the instance /// /// Introduced in v0.6.0 public required IEnumerable MangaReaderPageSplittingModes { get; set; } /// /// A list of Layout Mode defaults being used on the instance /// /// Introduced in v0.6.0 public required IEnumerable MangaReaderLayoutModes { get; set; } /// /// A list of file formats existing in the instance /// /// Introduced in v0.6.0 public required IEnumerable FileFormats { get; set; } /// /// If there is at least one user that is using an age restricted profile on the instance /// /// Introduced in v0.6.0 public bool UsingRestrictedProfiles { get; set; } /// /// Number of users using the Emulate Comic Book setting /// /// Introduced in v0.7.0 public int UsersWithEmulateComicBook { get; set; } /// /// Percent (0.0-1.0) of libraries with folder watching enabled /// /// Introduced in v0.7.0 public float PercentOfLibrariesWithFolderWatchingEnabled { get; set; } /// /// Percent (0.0-1.0) of libraries included in Search /// /// Introduced in v0.7.0 public float PercentOfLibrariesIncludedInSearch { get; set; } /// /// Percent (0.0-1.0) of libraries included in Recommended /// /// Introduced in v0.7.0 public float PercentOfLibrariesIncludedInRecommended { get; set; } /// /// Percent (0.0-1.0) of libraries included in Dashboard /// /// Introduced in v0.7.0 public float PercentOfLibrariesIncludedInDashboard { get; set; } /// /// Total reading hours of all users /// /// Introduced in v0.7.0 public long TotalReadingHours { get; set; } /// /// The encoding the server is using to save media /// /// Added in v0.7.3 public EncodeFormat EncodeMediaAs { get; set; } /// /// The last user reading progress on the server (in UTC) /// /// Added in v0.7.4 public DateTime LastReadTime { get; set; } }