using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Kavita.Common.Helpers; using Kavita.Models.DTOs; using Kavita.Models.DTOs.Annotations; using Kavita.Models.DTOs.Metadata.Browse.Requests; using Kavita.Models.DTOs.Reader; using Kavita.Models.Entities.User; namespace Kavita.API.Repositories; public interface IAnnotationRepository { void Attach(AppUserAnnotation annotation); void Update(AppUserAnnotation annotation); void Remove(AppUserAnnotation annotation); void Remove(IEnumerable annotations); Task GetAnnotationDto(int id, CancellationToken ct = default); Task GetAnnotation(int id, CancellationToken ct = default); Task> GetAllAnnotations(CancellationToken ct = default); Task> GetAnnotations(int userId, IList ids, CancellationToken ct = default); Task> GetFullAnnotationsByUserIdAsync(int userId, CancellationToken ct = default); Task> GetFullAnnotations(int userId, IList annotationIds, CancellationToken ct = default); Task> GetAnnotationDtos(int userId, BrowseAnnotationFilterDto filter, UserParams userParams, CancellationToken ct = default); Task> GetSeriesWithAnnotations(int userId, CancellationToken ct = default); }