package com.prolog.cs.biz.outbound.model.vo.faceorder;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@NoArgsConstructor
@Data
public class FaceOrderYDKYAddVO {

    private String carrierCode;

    @JsonProperty("orders")
    private List<OrdersDTO> orders;

    @NoArgsConstructor
    @Data
    public static class OrdersDTO {
        @JsonProperty("order_no")
        private String orderNo;
        @JsonProperty("serial_no")
        private String serialNo;
        @JsonProperty("wave_no")
        private String waveNo;
        @JsonProperty("sender_name")
        private String senderName;
        @JsonProperty("sender_company")
        private String senderCompany;
        @JsonProperty("sender_phone")
        private String senderPhone;
        @JsonProperty("sender_tel")
        private String senderTel;
        @JsonProperty("sender_province")
        private String senderProvince;
        @JsonProperty("sender_city")
        private String senderCity;
        @JsonProperty("sender_county")
        private String senderCounty;
        @JsonProperty("sender_street")
        private String senderStreet;
        @JsonProperty("sender_detail_address")
        private String senderDetailAddress;
        @JsonProperty("receiver_name")
        private String receiverName;
        @JsonProperty("receiver_company")
        private String receiverCompany;
        @JsonProperty("receiver_phone")
        private String receiverPhone;
        @JsonProperty("receiver_tel")
        private String receiverTel;
        @JsonProperty("receiver_province")
        private String receiverProvince;
        @JsonProperty("receiver_city")
        private String receiverCity;
        @JsonProperty("receiver_county")
        private String receiverCounty;
        @JsonProperty("receiver_street")
        private String receiverStreet;
        @JsonProperty("receiver_detail_address")
        private String receiverDetailAddress;
        @JsonProperty("service_type")
        private Integer serviceType;
        @JsonProperty("product_type")
        private Integer productType;
        @JsonProperty("delivery_type")
        private Integer deliveryType;
        @JsonProperty("weight")
        private String weight;
        @JsonProperty("volume")
        private String volume;
        @JsonProperty("piece_amount")
        private Integer pieceAmount;
        @JsonProperty("cargo_name")
        private String cargoName;
        @JsonProperty("pack_type")
        private List<PackTypeDTO> packType;
        @JsonProperty("insured_fee")
        private String insuredFee;
        @JsonProperty("pay_type")
        private Integer payType;
        @JsonProperty("sale_platform")
        private String salePlatform;
        @JsonProperty("package_length")
        private Integer packageLength;
        @JsonProperty("package_width")
        private Integer packageWidth;
        @JsonProperty("package_height")
        private Integer packageHeight;
        @JsonProperty("business_attr")
        private Integer businessAttr;
        @JsonProperty("platform_source")
        private String platformSource;
        @JsonProperty("mail_first_center_code")
        private Integer mailFirstCenterCode;
        @JsonProperty("item_type")
        private Integer itemType;
        @JsonProperty("remark")
        private String remark;
        @JsonProperty("pay_fee")
        private Integer payFee;
        @JsonProperty("cod_fee")
        private Integer codFee;
        @JsonProperty("is_cod")
        private Integer isCod;
        @JsonProperty("captcha_sign")
        private Integer captchaSign;

        @NoArgsConstructor
        @Data
        public static class PackTypeDTO {
            @JsonProperty("type")
            private String type;
            @JsonProperty("piece")
            private Integer piece;
        }
    }
}
