using System.ComponentModel; using System.ComponentModel.DataAnnotations; namespace API.Controllers.DTOs; /// /// DTO /// public sealed record Chapter(string Key, string MangaId, int? Volume, string ChapterNumber, string? Title, IEnumerable MangaConnectorIds, bool Downloaded, string? FileName) : Identifiable(Key) { /// /// Identifier of the Manga this Chapter belongs to /// [Required] [Description("Identifier of the Manga this Chapter belongs to")] public string MangaId { get; init; } = MangaId; /// /// Volume number /// [Required] [Description("Volume number")] public int? Volume { get; init; } = Volume; /// /// Chapter number /// [Required] [Description("Chapter number")] public string ChapterNumber { get; init; } = ChapterNumber; /// /// Title of the Chapter /// [Required] [Description("Title of the Chapter")] public string? Title { get; init; } = Title; /// /// Whether Chapter is Downloaded (on disk) /// [Required] [Description("Whether Chapter is Downloaded (on disk)")] public bool Downloaded { get; init; } = Downloaded; /// /// Ids of the Manga on MangaConnectors /// [Required] [Description("Ids of the Manga on MangaConnectors")] public IEnumerable MangaConnectorIds { get; init; } = MangaConnectorIds; /// /// Filename of the archive /// [Description("Filename of the archive")] public string? FileName { get; init; } = FileName; }