using System.ComponentModel; using System.ComponentModel.DataAnnotations; using API.Schema.MangaContext; namespace API.Controllers.DTOs; /// /// DTO /// public sealed 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, string? FileLibraryId) : 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; /// /// Id of the Library the Manga gets downloaded to /// [Required] [Description("Id of the Library the Manga gets downloaded to")] public string? FileLibraryId { get; init; } = FileLibraryId; }