using System.Collections.Generic; using System.Threading.Tasks; using ErsatzTV.Core.Domain; using LanguageExt; namespace ErsatzTV.Core.Interfaces.Repositories { public interface IMovieRepository { Task AllMoviesExist(List movieIds); Task> GetMovie(int movieId); Task> GetOrAdd(LibraryPath libraryPath, string path); Task> GetOrAdd(PlexLibrary library, PlexMovie item); Task Update(Movie movie); Task GetMovieCount(); Task> GetPagedMovies(int pageNumber, int pageSize); Task> FindMoviePaths(LibraryPath libraryPath); Task DeleteByPath(LibraryPath libraryPath, string path); Task AddGenre(MovieMetadata metadata, Genre genre); Task RemoveMissingPlexMovies(PlexLibrary library, List movieKeys); } }