mirror of
https://github.com/Kareadita/Kavita.git
synced 2025-06-03 13:44:31 -04:00
* Added a reoccuring task to cleanup db entries that might be abandoned. On library page, the Library in question will be prepoulated. * Laid out the foundation for customized sorting. Added all series page to the UI when clicking on Libraries section header on home page so user can apply any filtering they like. * When filtering, the current library filter will now automatically filter out the options for people and genres. * Implemented Sorting controls * Clear now clears sorting and read progress. Sorting is disabled on deck and recently added. * Fixed an issue where all-series page couldn't click to open series * Don't let the user unselect the last read progress. Added new comicinfo v2.1 draft tags. * Hooked in Translator tag into backend and UI. * Fixed an issue where you could open multiple typeaheads at the same time * Integrated Translator and Tags ComicInfo extension fields. Started work on a badge expander. * Reworked a bit more on badge expander. Added the UI code for Age Rating and Tags * Integrated backend for Tags, Translator, and Age Rating * Metadata tags now collapse if more than 4 present * Some code cleanup * Made the not read badge slightly smaller
77 lines
3.1 KiB
C#
77 lines
3.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using API.DTOs.Metadata;
|
|
using API.Entities;
|
|
|
|
namespace API.DTOs
|
|
{
|
|
/// <summary>
|
|
/// A Chapter is the lowest grouping of a reading medium. A Chapter contains a set of MangaFiles which represents the underlying
|
|
/// file (abstracted from type).
|
|
/// </summary>
|
|
public class ChapterDto
|
|
{
|
|
public int Id { get; init; }
|
|
/// <summary>
|
|
/// Range of chapters. Chapter 2-4 -> "2-4". Chapter 2 -> "2".
|
|
/// </summary>
|
|
public string Range { get; init; }
|
|
/// <summary>
|
|
/// Smallest number of the Range.
|
|
/// </summary>
|
|
public string Number { get; init; }
|
|
/// <summary>
|
|
/// Total number of pages in all MangaFiles
|
|
/// </summary>
|
|
public int Pages { get; init; }
|
|
/// <summary>
|
|
/// If this Chapter contains files that could only be identified as Series or has Special Identifier from filename
|
|
/// </summary>
|
|
public bool IsSpecial { get; init; }
|
|
/// <summary>
|
|
/// Used for books/specials to display custom title. For non-specials/books, will be set to <see cref="Range"/>
|
|
/// </summary>
|
|
public string Title { get; init; }
|
|
/// <summary>
|
|
/// The files that represent this Chapter
|
|
/// </summary>
|
|
public ICollection<MangaFileDto> Files { get; init; }
|
|
/// <summary>
|
|
/// Calculated at API time. Number of pages read for this Chapter for logged in user.
|
|
/// </summary>
|
|
public int PagesRead { get; set; }
|
|
/// <summary>
|
|
/// If the Cover Image is locked for this entity
|
|
/// </summary>
|
|
public bool CoverImageLocked { get; set; }
|
|
/// <summary>
|
|
/// Volume Id this Chapter belongs to
|
|
/// </summary>
|
|
public int VolumeId { get; init; }
|
|
/// <summary>
|
|
/// When chapter was created
|
|
/// </summary>
|
|
public DateTime Created { get; init; }
|
|
/// <summary>
|
|
/// When the chapter was released.
|
|
/// </summary>
|
|
/// <remarks>Metadata field</remarks>
|
|
public DateTime ReleaseDate { get; init; }
|
|
/// <summary>
|
|
/// Title of the Chapter/Issue
|
|
/// </summary>
|
|
/// <remarks>Metadata field</remarks>
|
|
public string TitleName { get; set; }
|
|
public ICollection<PersonDto> Writers { get; set; } = new List<PersonDto>();
|
|
public ICollection<PersonDto> Penciller { get; set; } = new List<PersonDto>();
|
|
public ICollection<PersonDto> Inker { get; set; } = new List<PersonDto>();
|
|
public ICollection<PersonDto> Colorist { get; set; } = new List<PersonDto>();
|
|
public ICollection<PersonDto> Letterer { get; set; } = new List<PersonDto>();
|
|
public ICollection<PersonDto> CoverArtist { get; set; } = new List<PersonDto>();
|
|
public ICollection<PersonDto> Editor { get; set; } = new List<PersonDto>();
|
|
public ICollection<PersonDto> Publisher { get; set; } = new List<PersonDto>();
|
|
public ICollection<PersonDto> Translators { get; set; } = new List<PersonDto>();
|
|
public ICollection<TagDto> Tags { get; set; } = new List<TagDto>();
|
|
}
|
|
}
|