using System.Collections.Generic; using System.Threading.Tasks; using Kavita.Models.DTOs; using Kavita.Models.DTOs.Progress; using Kavita.Models.DTOs.Reader; using Kavita.Models.Entities; using Kavita.Models.Entities.User; namespace Kavita.API.Services.Reading; public interface IReaderService { public const float MinWordsPerHour = 10260F; public const float MaxWordsPerHour = 30000F; public const float MinPagesPerMinute = 3.33F; public const float MaxPagesPerMinute = 2.75F; public const float AvgWordsPerHour = (MaxWordsPerHour + MinWordsPerHour) / 2F; public const float AvgPagesPerMinute = (MaxPagesPerMinute + MinPagesPerMinute) / 2F; //3.04 Task MarkSeriesAsRead(AppUser user, int seriesId); Task MarkSeriesAsUnread(AppUser user, int seriesId); Task MarkChaptersAsRead(AppUser user, int seriesId, IList chapters); Task MarkChaptersAsUnread(AppUser user, int seriesId, IList chapters); Task SaveReadingProgress(ProgressDto progressDto, int userId); int CapPageToChapter(Chapter chapter, int page); Task GetNextChapterIdAsync(int seriesId, int volumeId, int currentChapterId, int userId); Task GetPrevChapterIdAsync(int seriesId, int volumeId, int currentChapterId, int userId); Task GetContinuePoint(int seriesId, int userId); Task MarkChaptersUntilAsRead(AppUser user, int seriesId, float chapterNumber); Task MarkVolumesUntilAsRead(AppUser user, int seriesId, int volumeNumber); IDictionary GetPairs(IEnumerable dimensions); Task GetThumbnail(Chapter chapter, int pageNum, IEnumerable cachedImages); Task CheckSeriesForReRead(int userId, int seriesId, int libraryId); Task CheckVolumeForReRead(int userId, int volumeId, int seriesId, int libraryId); Task CheckChapterForReRead(int userId, int chapterId, int seriesId, int libraryId); }