using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using XYY.Model.Standard.Channel;
using XYY.Model.Standard.Order;

namespace XYY.Service.Standard.ChannelApi.Base
{
    public class BagDeclareErrosResult
    {
        public string TrackingNumber
        {
            get; set;
        }


        public string ErrorMessage
        {
            get; set;
        }

        public string BoxNumber { get; set; }
        public string LadingBillNumber { get; set; }
    }

    public interface IBaseApi
    {
        Task<UploadResult> DataUpload(Order_Order order, List<Order_OrderGoods> goods, Logistics_Channel channel, ExtendArg arg);
        Task<byte[]> DrawPdfLabel(UploadResult result, Logistics_Channel channel, Order_Order order, List<Order_OrderGoods> orderGoods);
        Task<List<string>> Confims(List<OrderConfimRequest> order, Logistics_Channel channel);
        Task<string> GetTrackingNumber(string SystemNo, string TrackingNumber, string ServiceOrderNo, Logistics_Channel channel);
        Task<List<BagDeclareErrosResult>> BagDeclare(BagDeclareRequest bagDeclareRequest);
        string ServiceName
        {
            get;
        }

        /// <summary>
        /// 批量取消订单
        /// </summary>
        /// <param name="strings">订单列表</param>
        /// <returns></returns>
        void CannelOrders(List<String> systemNO);
        /// <summary>
        /// 单个取消订单
        /// 适应多渠道取消
        /// </summary>
        /// <param name="logistics_ChannelCancel"></param>
        void CannelOrdersByModel(logistics_ChannelCancel logistics_ChannelCancel);

        
    }
}
