using System.Collections.Generic; using System.Threading.Tasks; using API.Data.Scanner; using API.DTOs; using API.DTOs.Filtering; using API.Entities; using API.Entities.Enums; using API.Helpers; namespace API.Interfaces.Repositories { public interface ISeriesRepository { void Attach(Series series); void Update(Series series); void Remove(Series series); void Remove(IEnumerable series); Task DoesSeriesNameExistInLibrary(string name, MangaFormat format); /// /// Adds user information like progress, ratings, etc /// /// /// /// /// Task> GetSeriesDtoForLibraryIdAsync(int libraryId, int userId, UserParams userParams, FilterDto filter); /// /// Does not add user information like progress, ratings, etc. /// /// /// Series name to search for /// Task> SearchSeries(int[] libraryIds, string searchQuery); Task> GetSeriesForLibraryIdAsync(int libraryId); Task GetSeriesDtoByIdAsync(int seriesId, int userId); Task DeleteSeriesAsync(int seriesId); Task GetSeriesByIdAsync(int seriesId); Task> GetSeriesByIdsAsync(IList seriesIds); Task GetChapterIdsForSeriesAsync(int[] seriesIds); Task>> GetChapterIdWithSeriesIdForSeriesAsync(int[] seriesIds); /// /// Used to add Progress/Rating information to series list. /// /// /// /// Task AddSeriesModifiers(int userId, List series); Task GetSeriesCoverImageAsync(int seriesId); Task> GetOnDeck(int userId, int libraryId, UserParams userParams, FilterDto filter); Task> GetRecentlyAdded(int libraryId, int userId, UserParams userParams, FilterDto filter); // NOTE: Probably put this in LibraryRepo Task GetSeriesMetadata(int seriesId); Task> GetSeriesDtoForCollectionAsync(int collectionId, int userId, UserParams userParams); Task> GetFilesForSeries(int seriesId); Task> GetSeriesDtoForIdsAsync(IEnumerable seriesIds, int userId); Task> GetAllCoverImagesAsync(); Task> GetLockedCoverImagesAsync(); Task> GetFullSeriesForLibraryIdAsync(int libraryId, UserParams userParams); Task GetFullSeriesForSeriesIdAsync(int seriesId); Task GetChunkInfo(int libraryId = 0); Task> GetSeriesMetadataForIdsAsync(IEnumerable seriesIds); } }