using System; using API.Entities.Enums.Theme; using API.Entities.Interfaces; using API.Services; namespace API.Entities; /// /// Represents a set of css overrides the user can upload to Kavita and will load into webui /// public class SiteTheme : IEntityDate, ITheme { public int Id { get; set; } /// /// Name of the Theme /// public required string Name { get; set; } /// /// Normalized name for lookups /// public required string NormalizedName { get; set; } /// /// File path to the content. Stored under . /// Must be a .css file /// /// System provided themes use an alternative location as they are packaged with the app public required string FileName { get; set; } /// /// Only one theme can have this. Will auto-set this as default for new user accounts /// public bool IsDefault { get; set; } /// /// Where did the theme come from /// public ThemeProvider Provider { get; set; } public DateTime Created { get; set; } public DateTime LastModified { get; set; } public DateTime CreatedUtc { get; set; } public DateTime LastModifiedUtc { get; set; } #region ThemeBrowser /// /// The Url on the repo to download the file from /// public string? GitHubPath { get; set; } /// /// Hash of the Css File /// public string? ShaHash { get; set; } /// /// Pipe (|) separated urls of the images. Empty string if /// public string PreviewUrls { get; set; } // /// // /// A description about the theme // /// public string Description { get; set; } // /// // /// Author of the Theme // /// public string Author { get; set; } public string CompatibleVersion { get; set; } #endregion }