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

namespace XYY.Service.Standard.ChannelApi.YuanPeng
{
    public class ConsigneeShipper
    {
        /// <summary>
        /// 
        /// </summary>
        public string consigneeName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string consigneeCompanyName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string consigneeCountryCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string consigneeStateOrProvince { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string consigneeCity { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string consigneeArea { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string consigneeAddress1 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string consigneeAddress2 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string consigneeAddress3 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string consigneePostCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string consigneePhone { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string consigneeEmail { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string consigneeHouseNumber { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int certificatesType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string certificatesNo { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int consigneeTaxType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string consigneeTaxNo { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string shipperName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string shipperCompanyName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string shipperCountryCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string shipperStateOrProvince { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string shipperCity { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string shipperArea { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string shipperAddress1 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string shipperAddress2 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string shipperAddress3 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string shipperPostCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string shipperPhone { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string shipperEmail { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string shipperHouseNumber { get; set; }
    }

    public class BoxListItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string boxNo { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public double boxWeight { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int boxLength { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int boxWidth { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int boxHeight { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string boxVolume { get; set; }
    }

    public class GoodsListItem
    {
        /// <summary>
        /// 苹果12手机壳
        /// </summary>
        public string goodsName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string goodsNameEn { get; set; }
        /// <summary>
        /// 件
        /// </summary>
        public string declareUnit { get; set; } = "件";
        /// <summary>
        /// 
        /// </summary>
        public int quantity { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public decimal value { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public double weight { get; set; }
        /// <summary>
        /// iphone 12 手机壳
        /// </summary>
        public string goodsMessage { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string hsCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string goodsLink { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string sku { get; set; }
        /// <summary>
        /// 硅胶
        /// </summary>
        public string textureName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string textureNameEn { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string madeCountry { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string remark { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string boxNo { get; set; }
    }

    public class DataUploadRequest : BasicRequest
    {
        /// <summary>
        /// 
        /// </summary>
        public string productCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string customerNo { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int goodsType { get; set; } = 3;
        /// <summary>
        /// 
        /// </summary>
        public decimal orderWeight { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string currencyCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int async { get; set; } = 0;
        /// <summary>
        /// 
        /// </summary>
        public double codPrice { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string codCurrency { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int length { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int width { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int height { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ConsigneeShipper consigneeShipper { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<BoxListItem> boxList { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<GoodsListItem> goodsList { get; set; }
    }
}
