using BBWY.Common.Http;
using QuanTan.SDK.Model;

namespace QuanTan.SDK.Client
{
    public class QuanTanOrderClient : BaseClient
    {
        public QuanTanOrderClient(RestApiService restApiService, NLog.ILogger logger) : base(restApiService, logger)
        {
        }

        /// <summary>
        /// 预览订单
        /// </summary>
        /// <param name="request"></param>
        /// <param name="appId"></param>
        /// <param name="appSecret"></param>
        /// <returns></returns>
        public QuanTanResponse<QuanTanPreviewOrderResponse> PreviewOrder(QuanTanPreviewOrderRequest request, string appId, string appSecret)
        {
            return SendRequest<QuanTanPreviewOrderResponse>("api/platform/cart/add", request, appId, appSecret);
        }

        public QuanTanResponse<QuanTanCreateOrderResponse> CreateOrder(QuanTanCreateOrderRequest request, string appId, string appSecret)
        {
            return SendRequest<QuanTanCreateOrderResponse>("api/platform/order/add", request, appId, appSecret);
        }

        public QuanTanResponse<QuanTanOrderDetailResponse> GetOrderDetail(QuanTanGetOrderDetailRequest request, string appId, string appSecret)
        {
            return SendRequest<QuanTanOrderDetailResponse>("api/platform/order/detail", request, appId, appSecret);
        }

        public QuanTanResponse<QuanTanPayOrderResponse> PayOrder(QuanTanPayOrderRequest request, string appId, string appSecret)
        {
            return SendRequest<QuanTanPayOrderResponse>("api/platform/order/pay", request, appId, appSecret);
        }
        public QuanTanResponse<QuanTanCancelOrderResponse> CancelOrder(QuanTanCancelOrderRequest request, string appId, string appSecret)
        {
            return SendRequest<QuanTanCancelOrderResponse>("api/platform/order/cancel", request, appId, appSecret);
        }
    }
}