using System;
using API.Entities.Enums;
using API.Entities.Interfaces;
namespace API.DTOs;
public class SeriesDto : IHasReadTimeEstimate
{
public int Id { get; init; }
public string? Name { get; init; }
public string? OriginalName { get; init; }
public string? LocalizedName { get; init; }
public string? SortName { get; init; }
public string? Summary { get; init; }
public int Pages { get; init; }
public bool CoverImageLocked { get; set; }
///
/// Sum of pages read from linked Volumes. Calculated at API-time.
///
public int PagesRead { get; set; }
///
/// DateTime representing last time the series was Read. Calculated at API-time.
///
public DateTime LatestReadDate { get; set; }
///
/// DateTime representing last time a chapter was added to the Series
///
public DateTime LastChapterAdded { get; set; }
///
/// Rating from logged in user. Calculated at API-time.
///
public int UserRating { get; set; }
///
/// Review from logged in user. Calculated at API-time.
///
public string? UserReview { get; set; }
public MangaFormat Format { get; set; }
public DateTime Created { get; set; }
public bool NameLocked { get; set; }
public bool SortNameLocked { get; set; }
public bool LocalizedNameLocked { get; set; }
///
/// Total number of words for the series. Only applies to epubs.
///
public long WordCount { get; set; }
public int LibraryId { get; set; }
public string LibraryName { get; set; } = default!;
///
public int MinHoursToRead { get; set; }
///
public int MaxHoursToRead { get; set; }
///
public int AvgHoursToRead { get; set; }
///
/// The highest level folder for this Series
///
public string FolderPath { get; set; } = default!;
///
/// The last time the folder for this series was scanned
///
public DateTime LastFolderScanned { get; set; }
}