using System.Collections.Generic; using API.DTOs.Metadata; using API.DTOs.Person; using API.Entities.Enums; namespace API.DTOs; public sealed record SeriesMetadataDto { public int Id { get; set; } public string Summary { get; set; } = string.Empty; /// /// Genres for the Series /// public ICollection Genres { get; set; } = new List(); /// /// Collection of all Tags from underlying chapters for a Series /// 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; /// /// Earliest Year from all chapters /// public int ReleaseYear { get; set; } /// /// Language of the content (BCP-47 code) /// public string Language { get; set; } = string.Empty; /// /// Max number of issues/volumes in the series (Max of Volume/Issue field in ComicInfo) /// public int MaxCount { get; set; } = 0; /// /// Total number of issues/volumes for the series /// public int TotalCount { get; set; } /// /// Publication status of the Series /// public PublicationStatus PublicationStatus { get; set; } /// /// A comma-separated list of Urls /// public string WebLinks { get; set; } public bool LanguageLocked { get; set; } public bool SummaryLocked { get; set; } /// /// Locked by user so metadata updates from scan loop will not override AgeRating /// public bool AgeRatingLocked { get; set; } /// /// Locked by user so metadata updates from scan loop will not override PublicationStatus /// public bool PublicationStatusLocked { 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 ReleaseYearLocked { get; set; } public int SeriesId { get; set; } }