using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using API.Entities; using API.Entities.Enums; using API.Entities.Enums.UserPreferences; namespace API.DTOs; public sealed record UserReadingProfileDto { public int Id { get; set; } public int UserId { get; init; } public string Name { get; init; } public ReadingProfileKind Kind { get; init; } #region MangaReader /// [Required] public ReadingDirection ReadingDirection { get; set; } /// [Required] public ScalingOption ScalingOption { get; set; } /// [Required] public PageSplitOption PageSplitOption { get; set; } /// [Required] public ReaderMode ReaderMode { get; set; } /// [Required] public bool AutoCloseMenu { get; set; } /// [Required] public bool ShowScreenHints { get; set; } = true; /// [Required] public bool EmulateBook { get; set; } /// [Required] public LayoutMode LayoutMode { get; set; } /// [Required] public string BackgroundColor { get; set; } = "#000000"; /// [Required] public bool SwipeToPaginate { get; set; } /// [Required] public bool AllowAutomaticWebtoonReaderDetection { get; set; } /// public int? WidthOverride { get; set; } /// public BreakPoint DisableWidthOverride { get; set; } = BreakPoint.Never; #endregion #region EpubReader /// [Required] public int BookReaderMargin { get; set; } /// [Required] public int BookReaderLineSpacing { get; set; } /// [Required] public int BookReaderFontSize { get; set; } /// [Required] public string BookReaderFontFamily { get; set; } = null!; /// [Required] public bool BookReaderTapToPaginate { get; set; } /// [Required] public ReadingDirection BookReaderReadingDirection { get; set; } /// [Required] public WritingStyle BookReaderWritingStyle { get; set; } /// [Required] public string BookReaderThemeName { get; set; } = null!; /// [Required] public BookPageLayoutMode BookReaderLayoutMode { get; set; } /// [Required] public bool BookReaderImmersiveMode { get; set; } = false; #endregion #region PdfReader /// [Required] public PdfTheme PdfTheme { get; set; } = PdfTheme.Dark; /// [Required] public PdfScrollMode PdfScrollMode { get; set; } = PdfScrollMode.Vertical; /// [Required] public PdfSpreadMode PdfSpreadMode { get; set; } = PdfSpreadMode.None; #endregion }