using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace XYY.Service.Standard.ChannelApi.PSE
{
    public class OrderExtJson
    {
        public string poZipCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string recipientDocumentType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string recipientDocumentNumber { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string taxPaymentMethod { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int distributionModality { get; set; }
    }

    public class OrderDetailsItem
    {
        /// <summary>
        /// 测试
        /// </summary>
        public string cnName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string enName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int quantity { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public decimal singleWeight { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public decimal singlePrice { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string hsCode { get; set; }
    }

    public class OrderBagsItem
    {
        /// <summary>
        /// 
        /// </summary>
        public decimal bagsWeight { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public decimal bagsLength { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public decimal bagsWidth { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public decimal bagsHeight { get; set; }
    }

    public class CreateOrderParam
    {
        /// <summary>
        /// 
        /// </summary>
        public string customerCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string csRefNo { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int channelID { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int warehouseID { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public decimal totalWeight { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string senderName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string sendAddress { get; set; }


        public string sender
        {
            get; set;
        }

        public string sendPhone
        {
            get; set;
        }


        public string sendZipCode
        {
            get; set;
        }

        public string sendCity
        {
            get; set;
        }
        public string sendCountry
        {
            get; set;
        }
        public string sendState
        {
            get; set;
        }
        public string sendAddress2
        {
            get; set;
        }

        /// <summary>
        /// 
        /// </summary>
        public string recipientName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string recipientCountry { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string recipientAddress1 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string recipientAddress2 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string recipientState { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string recipientCity { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string recipientZipCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string orderExtJson { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public List<OrderDetailsItem> orderDetails { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<OrderBagsItem> orderBags { get; set; }

        public string recipientContact
        {
            get; set;
        }
    }

    public class ResponseResult
    {
        public bool Success { get; set; }
        public string Message { get; set; }
    }

    public class GetLabelParam
    {
        public int orderNoType { get; set; }
        public string orderNo { get; set; }
    }

    public class LabelInfo
    {
        public string LabelBase64 { get; set; }
        public string LabelType { get; set; }
        public string Tracknumber { get; set; }
    }

    public class CreateOrderResult : ResponseResult
    {
        public string CsRefNo { get; set; }
        public string OrderNo { get; set; }
        public string TrackingNo { get; set; }
    }

    public class GetLabelResult : ResponseResult
    {
        public List<LabelInfo> Labels { get; set; }
        public string OrderNo { get; set; }

    }

}
