using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tr.Sdk.Blacklist;
using Tr.Sdk.Tels;

namespace Tr.Sdk
{
    public partial interface ITrClient
    {
        #region 分机
        Task<List<QueryTelResponse>> QueryTelsAsync(QueryTelRequest request, CancellationToken cancellationToken) =>
            ExecuteAsync<QueryTelRequest, List<QueryTelResponse>>(request, cancellationToken);


        Task<QueryTelStateResponse> QueryTelStateAsync(QueryTelStateRequest request, CancellationToken cancellationToken) =>
            ExecuteAsync<QueryTelStateRequest, QueryTelStateResponse>(request, cancellationToken);


        #endregion

        #region 黑白名单

        Task AddBlacklistAsync(AddBlacklistRequest request,CancellationToken cancellationToken) =>
            ExecuteAsync<AddBlacklistRequest>(request, cancellationToken);

        Task DelBlacklistAsync(DelBlacklistRequest request, CancellationToken cancellationToken) =>
            ExecuteAsync<DelBlacklistRequest>(request, cancellationToken);

        Task<List<QueryBlacklistResponse>> QueryBlacklistAsync(QueryBlacklistRequest request, CancellationToken cancellationToken) =>
            ExecuteAsync<QueryBlacklistRequest,List<QueryBlacklistResponse>>(request, cancellationToken);
        #endregion

        #region 队列信息

        Task<QueryQueueWaitNumResponse> QueryQueueWaitNumAsync(QueryQueueWaitNumRequest request, CancellationToken cancellationToken) =>
            ExecuteAsync<QueryQueueWaitNumRequest, QueryQueueWaitNumResponse>(request, cancellationToken);

        #endregion
    }
}
