using OrderSupportTicket.Models;
using OrderSupportTicket.Models.Api;
using System.Threading.Tasks;
namespace OrderSupportTicket.Services;
///
/// 客户工单 v2 接口。
///
public interface ITicketApiService
{
///
/// 查询工单摘要列表。
///
Task GetWorkOrdersAsync(
TicketClientOptions options,
string wechatOrderId = null,
string status = null,
int limit = 20,
string cursor = null);
///
/// 查询指定订单的公开留言板。
///
Task GetMessagesAsync(
TicketClientOptions options,
string appId,
string wechatOrderId,
string before = null,
int limit = 50);
///
/// 提交问题或创建工单。
///
Task CreateWorkOrderAsync(
TicketClientOptions options,
TicketOrderOption order,
string description,
string clientRequestId = null);
///
/// 提交客户留言。
///
Task SendMessageAsync(
TicketClientOptions options,
WorkOrderSummaryDto workOrder,
string text,
string clientMessageId);
///
/// 标记当前订单留言已读。
///
Task MarkReadAsync(
TicketClientOptions options,
string appId,
string wechatOrderId,
int throughSequenceNo);
}
///
/// 工单接口调用失败时返回的异常。
///
public sealed class TicketApiException : System.Exception
{
///
/// 创建工单接口异常。
///
public TicketApiException(
int statusCode,
string message,
string responseBody = null)
: base(message)
{
StatusCode = statusCode;
ResponseBody = responseBody;
}
///
/// 服务端返回的状态码;无法从 GetHtml 响应中识别时为 0。
///
public int StatusCode { get; }
///
/// 服务端返回的原始响应正文。
///
public string ResponseBody { get; }
}