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
}