using System;
using System.Collections.Generic;
using API.DTOs.Person;
using API.Entities.Enums;
namespace API.DTOs.Metadata;
#nullable enable
/// 
/// Exclusively metadata about a given chapter
/// 
[Obsolete("Will not be maintained as of v0.8.1")]
public sealed record ChapterMetadataDto
{
    public int Id { get; set; }
    public int ChapterId { get; set; }
    public string Title { get; set; } = default!;
    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();
    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 AgeRating AgeRating { get; set; }
    public string? ReleaseDate { get; set; }
    public PublicationStatus PublicationStatus { get; set; }
    /// 
    /// Summary for the Chapter/Issue
    /// 
    public string? Summary { get; set; }
    /// 
    /// Language for the Chapter/Issue
    /// 
    public string? Language { get; set; }
    /// 
    /// Number in the TotalCount of issues
    /// 
    public int Count { get; set; }
    /// 
    /// Total number of issues for the series
    /// 
    public int TotalCount { get; set; }
    /// 
    /// Number of Words for this chapter. Only applies to Epub
    /// 
    public long WordCount { get; set; }
}