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

namespace XYY.Service.Standard.ChannelApi.SSD_USPS
{
    public class ResultBase
    {
        /// <summary>
        /// 
        /// </summary>
        public string ask { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string message { get; set; }
        public Error Error { get; set; }
    }

    public class ResultBaseErrorArray
    {
        /// <summary>
        /// 
        /// </summary>
        public string ask { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string message { get; set; }
        public dynamic Error { get; set; }
    }

    public class Error
    {
        /// <summary>
        /// 服务异常[EC20188041602885YQ]换号失败。输入验证失败：收货人所在州参数长于最大长度,错误代码：202
        /// </summary>
        public string errMessage { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string errCode { get; set; }
    }


    public class GetCargoTrackResult : ResultBase
    {
        /// <summary>
        /// 
        /// </summary>
        public List<TrackDataItem> Data { get; set; }
        public new List<Error> Error { get; set; }
    }

    public class GetLabelResult : ResultBase
    {
        /// <summary>
        /// 
        /// </summary>
        public string type { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string url { get; set; }

        public new Error Error { get; set; }
    }

    public class GetTrackNumberResult: ResultBaseErrorArray
    {
        public List<GetTrackingNumberResultItem> data { get; set; }
    }

    public class GetTrackingNumberResultItem
    {
        public string OrderNumber { get; set; }
        public string TrackingNumber { get; set; }
        public string WayBillNumber { get; set; }
        public string PlatformNumber { get; set; }
    }

    public class CreateOrderResult : ResultBase
    {
        /// <summary>
        /// 
        /// </summary>
        public string shipping_method_no { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string order_code { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int track_status { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int sender_info_status { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ODA { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string agent_number { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string system_number { get; set; }
    }
}
