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

namespace XYY.Service.Standard.ChannelApi.SSG_USPS
{
    public class Receiver
    {
        /// <summary>
        /// 
        /// </summary>
        public string receive_comname { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string receive_name { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string receive_address1 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string receive_house_number { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string receive_address { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string receive_city { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string receive_state { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string receive_country_code { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string receive_postcode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string receive_telephone { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int total_packages_count { get; set; } = 1;
        /// <summary>
        /// 
        /// </summary>
        public decimal total_packages_weight { get; set; }
        public string receive_mobilephone { get; set; }
        public string receive_email { get; set; }

    }

    public class Sender
    {
        /// <summary>
        /// 
        /// </summary>
        public string warehouseCode { get; set; }
        public string sender_comname { get; set; }
        public string sender_name { get; set; }
        public string sender_telephone { get; set; }
        public string sender_mobilephone { get; set; }
        public string sender_email { get; set; }
        public string sender_state { get; set; }
        public string sender_city { get; set; }
        public string sender_address { get; set; }
        public string sender_postcode { get; set; }
        public string sender_country_code { get; set; }
        public string sender_house_number { get; set; }
    }

    public class Merchandise_listItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string declare_name_cn { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string declare_name_en { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int quantity { get; set; } = 1;
        /// <summary>
        /// 
        /// </summary>
        public decimal sale_price { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string sale_currency { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string skuPropertiesName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public decimal declare_totalfee { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string declare_currency { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string declare_hscode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string merchandise_name { get; set; }
    }

    public class PackagesItem
    {
        public PackagesItem() { merchandise_list = new List<Merchandise_listItem>(); }
        /// <summary>
        /// 
        /// </summary>
        public string package_descrption { 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 decimal weight { get; set; } 
        /// <summary>
        /// 
        /// </summary>
        public List<Merchandise_listItem> merchandise_list { get; set; }
    }

    public class DataUploadRequest
    {
        public DataUploadRequest() { packages = new List<PackagesItem>(); }

        /// <summary>
        /// 
        /// </summary>
        public string client_number { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Receiver receiver { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Sender sender { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int customerid { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string shipdate { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string @ref { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ref2 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<PackagesItem> packages { get; set; }
    }

}
