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, 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;
}