using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Kavita.Models.DTOs.ReadingLists.CBL.RemapRules;
using Kavita.Models.Entities;
using Kavita.Models.Entities.ReadingLists;
namespace Kavita.API.Repositories;
public interface IReadingListRemapRuleRepository
{
///
/// Returns all remap rules matching the given normalized CBL series names,
/// ordered with user-specific rules before global rules.
///
Task> GetRulesForNamesAsync(IList normalizedNames, int userId, CancellationToken ct = default);
Task> GetRulesForUserAsync(int userId, CancellationToken ct = default);
Task GetByIdAsync(int id, CancellationToken ct = default);
Task GetDtoByIdAsync(int id, CancellationToken ct = default);
///
/// Admin-only: returns all rules across all users, with user names.
///
Task> GetAllRulesAsync(CancellationToken ct = default);
void Add(ReadingListRemapRule rule);
void Remove(ReadingListRemapRule rule);
}