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

namespace XYY.Service.Standard.ChannelApi.PostNL.Model
{
    public class Sender_details
    {
        /// <summary>
        /// 
        /// </summary>
        public string name { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string company { get; set; }
        /// <summary>
        /// Receiver    address.    Either    use    address    or street_name  +  building  number.  Do  not  use address + street_name + building number.
        /// </summary>
        public string address { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string postal_code { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string city { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string state { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string country { get; set; } 
        /// <summary>
        /// 
        /// </summary>
        public string country_code { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string email { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string phone { get; set; }
        public string id_ref { get; set; }
    }

    public class Addressee_details
    {
        /// <summary>
        /// 
        /// </summary>
        public string name { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string address { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string postal_code { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string city { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string country { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string country_code { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string phone { get; set; }
    }

    public class Content_piecesItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string goods_description { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int quantity { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int total_weight_grams { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public decimal total_goods_value { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public decimal total_goods_value_eur { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string tariff { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string manufacture_country_code { get; set; } = "CN";
    }

    public class NLRequest
    {
        /// <summary>
        /// 
        /// </summary>
        public string product_code { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string label_type { get; set; } = "PDF";
        /// <summary>
        /// 
        /// </summary>
        public string item_barcode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string customer_reference_number { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string customer_item_id { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int gross_weight_grams { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string declaration_type { get; set; } = "SaleOfGoods";
        /// <summary>
        /// 
        /// </summary>
        public bool @return { get; set; } = false;
        /// <summary>
        /// 
        /// </summary>
        public bool dangerous_goods { get; set; } = false;
        /// <summary>
        /// 
        /// </summary>
        public string currency { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int transport_value { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int insurance_value { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Sender_details sender_details { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Addressee_details addressee_details { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<Content_piecesItem> content_pieces { get; set; }
    }

}
