using System.Collections.Generic; using System.Threading.Tasks; using API.DTOs; using API.DTOs.Filtering; using API.Entities; using API.Helpers; namespace API.Interfaces { public interface ISeriesRepository { void Add(Series series); void Update(Series series); Task GetSeriesByNameAsync(string name); Task DoesSeriesNameExistInLibrary(string name); Series GetSeriesByName(string name); /// /// 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> GetVolumesDtoAsync(int seriesId, int userId); Task> GetVolumes(int seriesId); Task GetSeriesDtoByIdAsync(int seriesId, int userId); Task GetVolumeAsync(int volumeId); Task GetVolumeDtoAsync(int volumeId, int userId); /// /// A fast lookup of just the volume information with no tracking. /// /// /// Task GetVolumeDtoAsync(int volumeId); Task> GetVolumesForSeriesAsync(int[] seriesIds); Task DeleteSeriesAsync(int seriesId); Task GetVolumeByIdAsync(int volumeId); Task GetSeriesByIdAsync(int seriesId); Task GetChapterIdsForSeriesAsync(int[] seriesIds); /// /// Used to add Progress/Rating information to series list. /// /// /// /// Task AddSeriesModifiers(int userId, List series); Task GetVolumeCoverImageAsync(int volumeId); Task GetSeriesCoverImageAsync(int seriesId); Task> GetInProgress(int userId, int libraryId, UserParams userParams, FilterDto filter); Task> GetRecentlyAdded(int libraryId, int userId, UserParams userParams, FilterDto filter); Task GetSeriesMetadata(int seriesId); Task> GetSeriesDtoForCollectionAsync(int collectionId, int userId, UserParams userParams); Task> GetFilesForSeries(int seriesId); } }