using System; using System.Collections.Generic; using API.DTOs.Metadata; using API.DTOs.Person; using API.Entities.Enums; namespace API.DTOs; public sealed record UpdateChapterDto { public int Id { get; init; } public string Summary { get; set; } = string.Empty; /// /// Genres for the Chapter /// public ICollection Genres { get; set; } = new List(); /// /// Collection of all Tags from underlying chapters for a Chapter /// public ICollection Tags { get; set; } = new List(); public ICollection Writers { get; set; } = new List(); public ICollection CoverArtists { get; set; } = new List(); public ICollection Publishers { get; set; } = new List(); public ICollection Characters { get; set; } = new List(); public ICollection Pencillers { get; set; } = new List(); public ICollection Inkers { get; set; } = new List(); public ICollection Imprints { get; set; } = new List(); public ICollection Colorists { get; set; } = new List(); public ICollection Letterers { get; set; } = new List(); public ICollection Editors { get; set; } = new List(); public ICollection Translators { get; set; } = new List(); public ICollection Teams { get; set; } = new List(); public ICollection Locations { get; set; } = new List(); /// /// Highest Age Rating from all Chapters /// public AgeRating AgeRating { get; set; } = AgeRating.Unknown; /// /// Language of the content (BCP-47 code) /// public string Language { get; set; } = string.Empty; /// /// Locked by user so metadata updates from scan loop will not override AgeRating /// public bool AgeRatingLocked { get; set; } public bool TitleNameLocked { get; set; } public bool GenresLocked { get; set; } public bool TagsLocked { get; set; } public bool WriterLocked { get; set; } public bool CharacterLocked { get; set; } public bool ColoristLocked { get; set; } public bool EditorLocked { get; set; } public bool InkerLocked { get; set; } public bool ImprintLocked { get; set; } public bool LettererLocked { get; set; } public bool PencillerLocked { get; set; } public bool PublisherLocked { get; set; } public bool TranslatorLocked { get; set; } public bool TeamLocked { get; set; } public bool LocationLocked { get; set; } public bool CoverArtistLocked { get; set; } public bool LanguageLocked { get; set; } public bool SummaryLocked { get; set; } public bool ISBNLocked { get; set; } public bool ReleaseDateLocked { get; set; } /// /// The sorting order of the Chapter. Inherits from MinNumber, but can be overridden. /// public float SortOrder { get; set; } /// /// Can the sort order be updated on scan or is it locked from UI /// public bool SortOrderLocked { get; set; } /// /// Comma-separated link of urls to external services that have some relation to the Chapter /// public string WebLinks { get; set; } = string.Empty; public string ISBN { get; set; } = string.Empty; /// /// Date which chapter was released /// public DateTime ReleaseDate { get; set; } /// /// Chapter title /// /// This should not be confused with Title which is used for special filenames. public string TitleName { get; set; } = string.Empty; }