using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Kavita.Models.DTOs; using Kavita.Models.Entities.User; namespace Kavita.API.Repositories; public interface IAppUserReadingProfileRepository { /// /// Returns the reading profile to use for the given series /// /// /// /// /// /// /// /// Task GetProfileForSeries(int userId, int libraryId, int seriesId, int? activeDeviceId = null, bool skipImplicit = false, CancellationToken ct = default); /// /// Get all profiles assigned to a library /// /// /// /// /// Task> GetProfilesForLibrary(int userId, int libraryId, CancellationToken ct = default); /// /// Return the profile if it belongs to the user /// /// /// /// /// Task GetUserProfile(int userId, int profileId, CancellationToken ct = default); /// /// Returns all reading profiles for the user /// /// /// /// /// Task> GetProfilesForUser(int userId, bool skipImplicit = false, CancellationToken ct = default); /// /// Returns all reading profiles for the user /// /// /// /// /// Task> GetProfilesDtoForUser(int userId, bool skipImplicit = false, CancellationToken ct = default); /// /// Is there a user reading profile with this name (normalized)? /// /// /// /// /// Task IsProfileNameInUse(int userId, string name, CancellationToken ct = default); void Add(AppUserReadingProfile readingProfile); void Update(AppUserReadingProfile readingProfile); void Remove(AppUserReadingProfile readingProfile); void RemoveRange(IEnumerable readingProfiles); }