using System;
using System.ComponentModel;
namespace API.Entities.Enums;
/// 
/// 15 is blocked as it was EnableSwaggerUi, which is no longer used
/// 
public enum ServerSettingKey
{
    /// 
    /// Cron format for how often full library scans are performed.
    /// 
    [Description("TaskScan")]
    TaskScan = 0,
    /// 
    /// Where files are cached. Not currently used.
    /// 
    [Description("CacheDirectory")]
    CacheDirectory = 1,
    /// 
    /// Cron format for how often backups are taken.
    /// 
    [Description("TaskBackup")]
    TaskBackup = 2,
    /// 
    /// Logging level for Server. Not managed in DB. Managed in appsettings.json and synced to DB.
    /// 
    [Description("LoggingLevel")]
    LoggingLevel = 3,
    /// 
    /// Port server listens on. Not managed in DB. Managed in appsettings.json and synced to DB.
    /// 
    [Description("Port")]
    Port = 4,
    /// 
    /// Where the backups are stored.
    /// 
    [Description("BackupDirectory")]
    BackupDirectory = 5,
    /// 
    /// Allow anonymous data to be reported to KavitaStats
    /// 
    [Description("AllowStatCollection")]
    AllowStatCollection = 6,
    /// 
    /// Is OPDS enabled for the server
    /// 
    [Description("EnableOpds")]
    EnableOpds = 7,
    /// 
    /// Is Authentication needed for non-admin accounts
    /// 
    /// Deprecated. This is no longer used v0.5.1+. Assume Authentication is always in effect
    [Obsolete("Not supported as of v0.5.1")]
    [Description("EnableAuthentication")]
    EnableAuthentication = 8,
    /// 
    /// Base Url for the server. Not Implemented.
    /// 
    [Description("BaseUrl")]
    BaseUrl = 9,
    /// 
    /// Represents this installation of Kavita. Is tied to Stat reporting but has no information about user or files.
    /// 
    [Description("InstallId")]
    InstallId = 10,
    /// 
    /// Represents the version the software is running.
    /// 
    /// This will be updated on Startup to the latest release. Provides ability to detect if certain migrations need to be run.
    [Description("InstallVersion")]
    InstallVersion = 11,
    /// 
    /// Location of where bookmarks are stored
    /// 
    [Description("BookmarkDirectory")]
    BookmarkDirectory = 12,
    /// 
    /// If SMTP is enabled on the server
    /// 
    [Description("CustomEmailService")]
    [Obsolete("Use Email settings instead")]
    EmailServiceUrl = 13,
    /// 
    /// If Kavita should save bookmarks as WebP images
    /// 
    [Obsolete("Use EncodeMediaAs instead")]
    [Description("ConvertBookmarkToWebP")]
    ConvertBookmarkToWebP = 14,
    /// 
    /// Total Number of Backups to maintain before cleaning. Default 30, min 1.
    /// 
    [Description("TotalBackups")]
    TotalBackups = 16,
    /// 
    /// If Kavita should watch the library folders and process changes
    /// 
    [Description("EnableFolderWatching")]
    EnableFolderWatching = 17,
    /// 
    /// Total number of days worth of logs to keep
    /// 
    [Description("TotalLogs")]
    TotalLogs = 18,
    /// 
    /// If Kavita should save covers as WebP images
    /// 
    [Obsolete("Use EncodeMediaAs instead")]
    [Description("ConvertCoverToWebP")]
    ConvertCoverToWebP = 19,
    /// 
    /// The Host name (ie Reverse proxy domain name) for the server. Used for email link generation
    /// 
    [Description("HostName")]
    HostName = 20,
    /// 
    /// Ip addresses the server listens on. Not managed in DB. Managed in appsettings.json and synced to DB.
    /// 
    [Description("IpAddresses")]
    IpAddresses = 21,
    /// 
    /// Encode all media as PNG/WebP/AVIF/etc.
    /// 
    /// As of v0.7.3 this replaced ConvertCoverToWebP and ConvertBookmarkToWebP
    [Description("EncodeMediaAs")]
    EncodeMediaAs = 22,
    /// 
    /// A Kavita+ Subscription license key
    /// 
    [Description("LicenseKey")]
    LicenseKey = 23,
    /// 
    /// The size in MB for Caching API data
    /// 
    [Description("Cache")]
    CacheSize = 24,
    /// 
    /// How many Days since today in the past for reading progress, should content be considered for On Deck, before it gets removed automatically
    /// 
    [Description("OnDeckProgressDays")]
    OnDeckProgressDays = 25,
    /// 
    /// How many Days since today in the past for chapter updates, should content be considered for On Deck, before it gets removed automatically
    /// 
    [Description("OnDeckUpdateDays")]
    OnDeckUpdateDays = 26,
    /// 
    /// The size of the cover image thumbnail. Defaults to .Default
    /// 
    [Description("CoverImageSize")]
    CoverImageSize = 27,
    #region EmailSettings
    /// 
    /// The address of the emailer host
    /// 
    [Description("EmailSenderAddress")]
    EmailSenderAddress = 28,
    /// 
    /// What the email name should be
    /// 
    [Description("EmailSenderDisplayName")]
    EmailSenderDisplayName = 29,
    [Description("EmailAuthUserName")]
    EmailAuthUserName = 30,
    [Description("EmailAuthPassword")]
    EmailAuthPassword = 31,
    [Description("EmailHost")]
    EmailHost = 32,
    [Description("EmailPort")]
    EmailPort = 33,
    [Description("EmailEnableSsl")]
    EmailEnableSsl = 34,
    /// 
    /// Number of bytes that the sender allows to be sent through
    /// 
    [Description("EmailSizeLimit")]
    EmailSizeLimit = 35,
    /// 
    /// Should Kavita use config/templates for Email templates or the default ones
    /// 
    [Description("EmailCustomizedTemplates")]
    EmailCustomizedTemplates = 36,
    #endregion
    /// 
    /// When the cleanup task should run - Critical to keeping Kavita working
    /// 
    [Description("TaskCleanup")]
    TaskCleanup = 37,
    /// 
    /// The Date Kavita was first installed
    /// 
    [Description("FirstInstallDate")]
    FirstInstallDate = 38,
    /// 
    /// The Version of Kavita on the first run
    /// 
    [Description("FirstInstallVersion")]
    FirstInstallVersion = 39,
}