using ErsatzTV.Core.Domain; using ErsatzTV.Core.Metadata; namespace ErsatzTV.Core.Interfaces.Repositories; public interface IMediaServerOtherVideoRepository where TLibrary : Library where TOtherVideo : OtherVideo where TEtag : MediaServerItemEtag { Task> GetExistingOtherVideos(TLibrary library); Task> FlagNormal(TLibrary library, TOtherVideo otherVideo); Task> FlagUnavailable(TLibrary library, TOtherVideo otherVideo); Task> FlagRemoteOnly(TLibrary library, TOtherVideo otherVideo); Task> FlagFileNotFound(TLibrary library, List movieItemIds); Task>> GetOrAdd(TLibrary library, TOtherVideo item, bool deepScan); Task SetEtag(TOtherVideo otherVideo, string etag); }