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

import jdk.nashorn.internal.ir.annotations.Ignore;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 德邦物流
 */
@NoArgsConstructor
@Data
public class FaceOrderAddVO {

    /**
     * carrierCode : DBL
     * platformNo : 1234555556
     * senderAddress : {"province":"上海市","city":"上海市","area":"青浦区","town":"","addressDetail":"华志路","senderName":"张三","delivererContactTel":"010-22226789","delivererContact":"13900000000"}
     * receiverAddress : {"receiveProvinceName":"河南省","receiveCityName":"郑州市","receiveDistrictName":"高新区","receiveTownName":"高新区","receiveAddress":"凤阳街XX路XX号","receiverName":"Jone Star","receiveContactTel":"021-87654321","receiveContact":"13500000000"}
     * cargoDetailList : [{"amount":100.5111,"count":2.365,"currency":"HKD","goodPrepardNo":"AAAA002","hsCode":"AAAA004","name":"护肤品1","productRecordNo":"AAAA001","sourceArea":"CHN","taxNo":"AAAA003","unit":"个","weight":6.1}]
     */

    private String carrierCode;
    private String platformNo;
    private String oneBillFlag;
    private String oneBillNum;

    //顺丰快运
    private String expressTypeId;

    //京东快运
    private String productCode;
    private String orderOrigin;
    private Integer deliveryType;

    //德邦物流
    private String transportType;
    private String orderType;
    private Integer totalNumber;
    private Double totalWeight;
    private Double totalVolume;

    //邮政快递包裹
    private String bizProductNo;

    @Ignore
    private String lastFlag;


    private SenderAddressBean senderAddress;
    private ReceiverAddressBean receiverAddress;
    private List<CargoDetailListBean> cargoDetailList;

    @NoArgsConstructor
    @Data
    public static class SenderAddressBean {
        /**
         * province : 上海市
         * city : 上海市
         * area : 青浦区
         * town :
         * addressDetail : 华志路
         * senderName : 张三
         * delivererContactTel : 010-22226789
         * delivererContact : 13900000000
         */

        private String province;
        private String city;
        private String area;
        private String town;
        private String addressDetail;
        private String senderName;
        private String delivererContactTel;
        private String delivererContact;
    }

    @NoArgsConstructor
    @Data
    public static class ReceiverAddressBean {
        /**
         * receiveProvinceName : 河南省
         * receiveCityName : 郑州市
         * receiveDistrictName : 高新区
         * receiveTownName : 高新区
         * receiveAddress : 凤阳街XX路XX号
         * receiverName : Jone Star
         * receiveContactTel : 021-87654321
         * receiveContact : 13500000000
         */

        private String receiveProvinceName;
        private String receiveCityName;
        private String receiveDistrictName;
        private String receiveTownName;
        private String receiveAddress;
        private String receiverName;
        private String receiveContactTel;
        private String receiveContact;
    }

    @NoArgsConstructor
    @Data
    public static class CargoDetailListBean {
        /**
         * amount : 100.5111
         * count : 2.365
         * currency : HKD
         * goodPrepardNo : AAAA002
         * hsCode : AAAA004
         * name : 护肤品1
         * productRecordNo : AAAA001
         * sourceArea : CHN
         * taxNo : AAAA003
         * unit : 个
         * weight : 6.1
         */

        private double amount;
        private double count;
        private String currency;
        private String goodPrepardNo;
        private String hsCode;
        private String name;
        private String productRecordNo;
        private String sourceArea;
        private String taxNo;
        private String unit;
        private double weight;
    }
}
