using System; using System.Threading.Tasks; using ErsatzTV.Core.Domain; using LanguageExt; namespace ErsatzTV.Core.Interfaces.Repositories { public interface IMetadataRepository { Task RemoveGenre(Genre genre); Task RemoveTag(Tag tag); Task RemoveStudio(Studio studio); Task Update(Domain.Metadata metadata); Task Add(Domain.Metadata metadata); Task UpdateLocalStatistics(MediaVersion mediaVersion); Task UpdatePlexStatistics(MediaVersion mediaVersion); Task UpdateArtworkPath(Artwork artwork); Task AddArtwork(Domain.Metadata metadata, Artwork artwork); Task RemoveArtwork(Domain.Metadata metadata, ArtworkKind artworkKind); Task MarkAsUpdated(ShowMetadata metadata, DateTime dateUpdated); Task MarkAsUpdated(SeasonMetadata metadata, DateTime dateUpdated); Task MarkAsUpdated(MovieMetadata metadata, DateTime dateUpdated); } }