using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Kavita.Common.Helpers; using Kavita.Models.DTOs.KavitaPlus.Manage; using Kavita.Models.DTOs.SeriesDetail; using Kavita.Models.Entities; using Kavita.Models.Entities.Metadata; namespace Kavita.API.Repositories; public interface IExternalSeriesMetadataRepository { void Attach(ExternalSeriesMetadata metadata); void Attach(ExternalRating rating); void Attach(ExternalReview review); void Remove(IEnumerable? reviews); void Remove(IEnumerable? ratings); void Remove(IEnumerable? recommendations); void Remove(ExternalSeriesMetadata metadata); Task GetExternalSeriesMetadata(int seriesId, CancellationToken ct = default); Task NeedsDataRefresh(int seriesId, CancellationToken ct = default); Task GetSeriesDetailPlusDto(int seriesId, CancellationToken ct = default); Task LinkRecommendationsToSeries(Series series, CancellationToken ct = default); Task IsBlacklistedSeries(int seriesId, CancellationToken ct = default); Task> GetSeriesThatNeedExternalMetadata(int limit, bool includeStaleData = false, CancellationToken ct = default); Task> GetAllSeries(ManageMatchFilterDto filter, UserParams userParams, CancellationToken ct = default); }