using ErsatzTV.Core.Domain; using ErsatzTV.Core.Metadata; namespace ErsatzTV.Core.Interfaces.Repositories; public interface IMediaServerMovieRepository where TLibrary : Library where TMovie : Movie where TEtag : MediaServerItemEtag { Task> GetExistingMovies(TLibrary library); Task> FlagNormal(TLibrary library, TMovie movie); Task> FlagUnavailable(TLibrary library, TMovie movie); Task> FlagRemoteOnly(TLibrary library, TMovie movie); Task> FlagFileNotFound(TLibrary library, List movieItemIds); Task>> GetOrAdd(TLibrary library, TMovie item, bool deepScan); Task SetEtag(TMovie movie, string etag); }