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

namespace XYY.Service.Standard.ChannelApi.Gori
{
    public class CreateShipmentOptions
    {
        /// <summary>
        /// 
        /// </summary>
        public bool verify_address { get; set; }
    }

    public class To_address
    {
        /// <summary>
        /// 
        /// </summary>
        public string first_name { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string last_name { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string street1 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string street2 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string city { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string state { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string zip { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string country { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string phone { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string email { get; set; }
    }

    public class From_address
    {
        /// <summary>
        /// 
        /// </summary>
        public string first_name { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string street1 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string street2 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string city { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string state { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string zip { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string country { get; set; }
    }

    public class Parcel
    {
        /// <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; }
    }

    public class Shipment
    {
        /// <summary>
        /// 
        /// </summary>
        public string service { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public CreateShipmentOptions options { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public To_address to_address { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public From_address from_address { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Parcel parcel { get; set; }
    }

    public class CreateShipmentParam
    {
        /// <summary>
        /// 
        /// </summary>
        public Shipment shipment { get; set; }
    }


    //如果好用，请收藏地址，帮忙分享。
    public class Label
    {
        /// <summary>
        /// 
        /// </summary>
        public string image_url { get; set; }
    }

    public class To_address_Resp
    {
        /// <summary>
        /// 
        /// </summary>
        public string name { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string company { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string street1 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string street2 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string city { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string state { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string zip { get; set; }
    }

    public class FeesItem
    {
        /// <summary>
        /// 
        /// </summary>
        public double amount { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string type { get; set; }
    }

    public class CreateShipmentResp
    {
        /// <summary>
        /// 
        /// </summary>
        public string mode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string tracking_code { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string zone { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string service { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string carrier { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Label label { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public To_address_Resp to_address { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<FeesItem> fees { get; set; }
    }

}
