using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using API.DTOs.Theme; using API.Entities; using API.Entities.Enums.UserPreferences; using API.Entities.User; namespace API.DTOs; #nullable enable public sealed record UserPreferencesDto { /// /// UI Site Global Setting: The UI theme the user should use. /// /// Should default to Dark [Required] public SiteThemeDto? Theme { get; set; } public PageLayoutMode GlobalPageLayoutMode { get; set; } = PageLayoutMode.Cards; /// [Required] public bool BlurUnreadSummaries { get; set; } = false; /// [Required] public bool PromptForDownloadSize { get; set; } = true; /// [Required] public bool NoTransitions { get; set; } = false; /// [Required] public bool CollapseSeriesRelationships { get; set; } = false; /// [Required] public string Locale { get; set; } /// [Required] public bool ColorScapeEnabled { get; set; } = true; /// [Required] public bool DataSaver { get; set; } = false; /// [Required] public int PromptForRereadsAfter { get; set; } /// [Required] public Dictionary> CustomKeyBinds { get; set; } = []; /// public bool AniListScrobblingEnabled { get; set; } /// public bool WantToReadSync { get; set; } /// [Required] public List BookReaderHighlightSlots { get; set; } #region Social /// [Required] public AppUserSocialPreferences SocialPreferences { get; set; } = new(); #endregion /// [Required] public AppUserOpdsPreferences OpdsPreferences { get; set; } = new(); }