using AsbCloudApp.Data;
using AsbCloudApp.Services;
using System.Threading;
using System.Threading.Tasks;

namespace AsbCloudApp.Repositories;

/// <summary>
/// Интерфейс репозитория справок страниц
/// </summary>
public interface IHelpPageRepository : ICrudRepository<HelpPageDto>
{
    /// <summary>
    /// Получение справки по url страницы и id категории 
    /// </summary>
    /// <param name="key"></param>
    /// <param name="idCategory"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<HelpPageDto?> GetOrDefaultByUrlPageAndIdCategoryAsync(string key,
        int idCategory,
        CancellationToken cancellationToken);

	/// <summary>
	/// Проверяет наличие справки для страницы
	/// </summary>
	/// <param name="key"></param>
	/// <param name="idCategory"></param>
	/// <param name="cancellationToken"></param>
	/// <returns></returns>
	Task<bool> IsExistingAsync(string key,
		int idCategory,
		CancellationToken cancellationToken);
}