using System;
using System.Collections.Generic;
using API.Entities.Enums;
using API.Entities.Interfaces;
using API.Parser;
namespace API.Entities
{
public class Chapter : IEntityDate
{
public int Id { get; set; }
///
/// Range of numbers. Chapter 2-4 -> "2-4". Chapter 2 -> "2".
///
public string Range { get; set; }
///
/// Smallest number of the Range. Can be a partial like Chapter 4.5
///
public string Number { get; set; }
///
/// The files that represent this Chapter
///
public ICollection Files { get; set; }
public DateTime Created { get; set; }
public DateTime LastModified { get; set; }
///
/// Absolute path to the (managed) image file
///
/// The file is managed internally to Kavita's APPDIR
public string CoverImage { get; set; }
public bool CoverImageLocked { get; set; }
///
/// Total number of pages in all MangaFiles
///
public int Pages { get; set; }
///
/// If this Chapter contains files that could only be identified as Series or has Special Identifier from filename
///
public bool IsSpecial { get; set; }
///
/// Used for books/specials to display custom title. For non-specials/books, will be set to
///
public string Title { get; set; }
// Relationships
public Volume Volume { get; set; }
public int VolumeId { get; set; }
public void UpdateFrom(ParserInfo info)
{
Files ??= new List();
IsSpecial = info.IsSpecialInfo();
if (IsSpecial)
{
Number = "0";
}
Title = (IsSpecial && info.Format == MangaFormat.Epub)
? info.Title
: Range;
}
}
}