using System.Collections.Generic;
using System.Threading.Tasks;
using MDL.Models;
namespace DAL.Interfaces
{
///
/// 客户API信息的数据访问接口
///
public interface ICustomerApiRepository
{
///
/// 创建客户API记录
///
/// 客户API实体
/// 创建的记录ID
Task CreateAsync(CustomerApiEntity entity);
///
/// 根据ID获取客户API记录
///
/// 记录ID
/// 客户API实体
Task GetByIdAsync(int id);
///
/// 根据客户ID获取客户API记录
///
/// 客户ID
/// 客户API实体列表
Task> GetByCustomerIdAsync(int customerId);
///
/// 根据客户代码获取客户API记录
///
/// 客户代码
/// 客户API实体列表
Task> GetByCustomerCodeAsync(string customerCode);
///
/// 根据API密钥获取客户API记录
///
/// API密钥
/// 客户API实体
Task GetByApiKeyAsync(string apiKey);
///
/// 验证客户API凭证并返回客户API信息
///
/// 客户代码
/// API密钥
/// 客户API实体,如果验证失败则返回null
Task ValidateAndGetApiCredentialsAsync(string customerCode, string apiKey);
///
/// 验证客户API凭证
///
/// 客户代码
/// API密钥
/// 是否验证通过
Task ValidateApiCredentialsAsync(string customerCode, string apiKey);
///
/// 更新客户API记录
///
/// 客户API实体
/// 更新是否成功
Task UpdateAsync(CustomerApiEntity entity);
///
/// 删除客户API记录
///
/// 记录ID
/// 删除是否成功
Task DeleteAsync(int id);
///
/// 获取所有客户API记录
///
/// 客户API实体列表
Task> GetAllAsync();
}
}