using BBWY.Server.Model;
using BBWY.Server.Model.Dto;
using Microsoft.Extensions.Caching.Memory;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;

namespace BBWY.Server.Business
{
    public class PlatformSDKBusiness
    {
        protected IMemoryCache memoryCache;

        protected TimeSpan expirationTimeSpan;

        /// <summary>
        /// 产品平台
        /// </summary>
        public virtual Enums.Platform Platform { get; }

        protected ILogger logger;

        public PlatformSDKBusiness(IMemoryCache memoryCache, ILogger logger)
        {
            this.memoryCache = memoryCache;
            this.logger = logger;
            this.expirationTimeSpan = TimeSpan.FromMinutes(60);
        }

        public virtual ProductListResponse GetProductList(SearchProductRequest searchProductRequest)
        {
            throw new NotImplementedException();
        }

        public virtual IList<ProductSkuResponse> GetProductSkuList(SearchProductSkuRequest searchProductSkuRequest)
        {
            throw new NotImplementedException();
        }

        public virtual IList<SimpleProductSkuResponse> GetSimpleProductSkuList(SearchProductSkuRequest searchProductSkuRequest)
        {
            throw new NotImplementedException();
        }

        public virtual IList<JToken> GetOrderList(SearchPlatformOrderRequest searchOrderRequest)
        {
            throw new NotImplementedException();
        }

        public virtual VenderResponse GetVenderInfo(PlatformRequest platformRequest)
        {
            throw new NotImplementedException();
        }

        public virtual ConsigneeSimpleResponse DecryptConsignee(DecryptConsigneeRequest decryptConsigneeRequest)
        {
            throw new NotImplementedException();
        }

        public virtual void EditVenderRemark(EditVenderRemarkRequest editVenderRemarkRequest)
        {
            throw new NotImplementedException();
        }

        public virtual IList<LogisticsResponse> GetLogisticsList(PlatformRequest platformRequest)
        {
            throw new NotImplementedException();
        }

        public virtual WayBillNoResponse GetWayBillNoByOrderId(QueryOrderWayBillNoRequest queryOrderWayBillNoRequest)
        {
            throw new NotImplementedException();
        }

        public virtual void OutStock(OutStockRequest outStockRequest)
        {
            throw new NotImplementedException();
        }

        public virtual PreviewOrderResponse PreviewOrder(PreviewOrderReuqest previewOrderReuqest)
        {
            throw new NotImplementedException();
        }

        public virtual CreateOnlinePurchaseOrderResponse FastCreateOrder(CreateOnlinePurchaseOrderRequest createOnlinePurchaseOrderRequest)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// 获取订单简单信息
        /// </summary>
        /// <param name="getOrderInfoRequest"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public virtual OnlinePurchaseOrderSimpleResponse GetOrderSimpleInfo(GetOrderInfoRequest getOrderInfoRequest)
        {
            throw new NotImplementedException();
        }

        public virtual JArray GetRefundList(SearchRefundPlatformOrderRequest searchRefundPlatformOrderRequest) { throw new NotImplementedException(); }

        public virtual JArray GetAfterOrderList(SyncAfterOrderRequest syncAfterOrderRequest) { throw new NotImplementedException(); }

        public virtual JToken GetNoPayOrder(SearchPlatformOrderRequest searchOrderRequest)
        {
            throw new NotImplementedException();
        }

        public virtual JArray GetJDShopSopularizeRecordList(SyncShopPopularizeRequest syncShopPopularizeRequest)
        { 
            throw new NotImplementedException();
        }
    }
}