using System.ComponentModel; using System.ComponentModel.DataAnnotations; using API.Schema.MangaContext; namespace API.Controllers.DTOs; /// /// DTO /// public record Manga(string Key, string Name, string Description, MangaReleaseStatus ReleaseStatus, IEnumerable MangaConnectorIds, float IgnoreChaptersBefore, uint? Year, string? OriginalLanguage, IEnumerable ChapterIds, IEnumerable Authors, IEnumerable Tags, IEnumerable Links, IEnumerable AltTitles) : MinimalManga(Key, Name, Description, ReleaseStatus, MangaConnectorIds) { /// /// Chapter cutoff for Downloads (Chapters before this will not be downloaded) /// [Required] [Description("Chapter cutoff for Downloads (Chapters before this will not be downloaded)")] public float IgnoreChaptersBefore { get; init; } = IgnoreChaptersBefore; /// /// Release Year /// [Description("Release Year")] public uint? Year { get; init; } = Year; /// /// Release Language /// [Description("Release Language")] public string? OriginalLanguage { get; init; } = OriginalLanguage; /// /// Keys of ChapterDTOs /// [Required] [Description("Keys of ChapterDTOs")] public IEnumerable ChapterIds { get; init; } = ChapterIds; /// /// Author-names /// [Required] [Description("Author-names")] public IEnumerable Authors { get; init; } = Authors; /// /// Manga Tags /// [Required] [Description("Manga Tags")] public IEnumerable Tags { get; init; } = Tags; /// /// Links for more Metadata /// [Required] [Description("Links for more Metadata")] public IEnumerable Links { get; init; } = Links; /// /// Alt Titles of Manga /// [Required] [Description("Alt Titles of Manga")] public IEnumerable AltTitles { get; init; } = AltTitles; }