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

namespace XYY.Service.Standard.ChannelApi.myDHL
{//如果好用，请收藏地址，帮忙分享。
    public class Pickup
    {
        /// <summary>
        /// 
        /// </summary>
        public bool isRequested { get; set; }
    }

    public class AccountsItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string number { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string typeCode { get; set; }
    }

    public class ValueAddedServicesItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string serviceCode { get; set; }
    }

    public class ImageOptionsItem
    { 
        /// <summary>
        /// 
        /// </summary>
        public string typeCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string templateName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string languageCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool isRequested { get; set; }

    }

    public class OutputImageProperties
    {
        /// <summary>
        /// 
        /// </summary>
        public int printerDPI { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string encodingFormat { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<ImageOptionsItem> imageOptions { get; set; }
    }

    public class CustomerReferencesItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string value { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string typeCode { get; set; }
    }

    public class PostalAddress
    {
        /// <summary>
        /// 
        /// </summary>
        public string cityName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string countryCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string postalCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string addressLine1 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string addressLine2 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string addressLine3 { get; set; }
    }

    public class ContactInformation
    {
        /// <summary>
        /// 
        /// </summary>
        public string phone { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string mobilePhone { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string companyName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string fullName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string email { get; set; }
    }

    public class RegistrationNumbersItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string number { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string issuerCountryCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string typeCode { get; set; }
    }

    public class ShipperDetails
    {
        /// <summary>
        /// 
        /// </summary>
        public PostalAddress postalAddress { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ContactInformation contactInformation { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<RegistrationNumbersItem> registrationNumbers { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string typeCode { get; set; }
    }

    public class ReceiverDetails
    {
        /// <summary>
        /// 
        /// </summary>
        public PostalAddress postalAddress { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ContactInformation contactInformation { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<RegistrationNumbersItem> registrationNumbers { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string typeCode { get; set; }
    }

    public class BuyerDetails
    {
        /// <summary>
        /// 
        /// </summary>
        public PostalAddress postalAddress { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ContactInformation contactInformation { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<RegistrationNumbersItem> registrationNumbers { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string typeCode { get; set; }
    }

    public class ImporterDetails
    {
        /// <summary>
        /// 
        /// </summary>
        public PostalAddress postalAddress { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ContactInformation contactInformation { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<RegistrationNumbersItem> registrationNumbers { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string typeCode { get; set; }
    }

    public class ExporterDetails
    {
        /// <summary>
        /// 
        /// </summary>
        public PostalAddress postalAddress { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ContactInformation contactInformation { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<RegistrationNumbersItem> registrationNumbers { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string typeCode { get; set; }
    }

    public class CustomerDetails
    {
        /// <summary>
        /// 
        /// </summary>
        public ShipperDetails shipperDetails { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ReceiverDetails receiverDetails { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public BuyerDetails buyerDetails { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ImporterDetails importerDetails { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ExporterDetails exporterDetails { get; set; }
    }
    public class Invoice
    {
        /// <summary>
        /// 
        /// </summary>
        public string number { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string date { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string signatureName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string signatureTitle { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string signatureImage { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<CustomerReferencesItem> customerReferences { get; set; }
    }

    public class RemarksItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string value { get; set; }
    }

    public class Quantity
    {
        /// <summary>
        /// 
        /// </summary>
        public int value { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string unitOfMeasurement { get; set; }
    }

    public class CommodityCodesItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string typeCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string value { get; set; }
    }

    public class Weight
    {
        /// <summary>
        /// 
        /// </summary>
        public double netValue { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public double grossValue { get; set; }
    }

    public class CustomsDocumentsItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string typeCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string value { get; set; }
    }

    public class LineItemsItem
    {
        /// <summary>
        /// 
        /// </summary>
        public int number { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string description { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public decimal price { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Quantity quantity { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<CommodityCodesItem> commodityCodes { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string manufacturerCountry { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Weight weight { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<CustomerReferencesItem> customerReferences { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<CustomsDocumentsItem> customsDocuments { get; set; }
    }
    public class AdditionalChargesItem
    {
        /// <summary>
        /// 
        /// </summary>
        public double value { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string typeCode { get; set; }
    }

    public class ExportDeclaration
    {
        /// <summary>
        /// 
        /// </summary>
        public string exportReasonType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string placeOfIncoterm { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Invoice invoice { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<RemarksItem> remarks { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string packageMarks { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<LineItemsItem> lineItems { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<CustomsDocumentsItem> customsDocuments { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<AdditionalChargesItem> additionalCharges { get; set; }
    }


    public class Dimensions
    {
        /// <summary>
        /// 
        /// </summary>
        public decimal length { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public decimal width { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public decimal height { get; set; }
    }

    public class PackagesItem
    {
        /// <summary>
        /// 
        /// </summary>
        public List<CustomerReferencesItem> customerReferences { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public double weight { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Dimensions dimensions { get; set; }
    }

    public class Content
    {
        /// <summary>
        /// 
        /// </summary>
        public ExportDeclaration exportDeclaration { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string unitOfMeasurement { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool isCustomsDeclarable { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string incoterm { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string description { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<PackagesItem> packages { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string declaredValueCurrency { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public decimal declaredValue { get; set; }
    }

    public class Root
    {
        /// <summary>
        /// 
        /// </summary>
        public string productCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string localProductCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string plannedShippingDateAndTime { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Pickup pickup { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<AccountsItem> accounts { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<ValueAddedServicesItem> valueAddedServices { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public OutputImageProperties outputImageProperties { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<CustomerReferencesItem> customerReferences { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string getOptionalInformation { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public CustomerDetails customerDetails { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Content content { get; set; }
    }
}
