package com.yn.bftl.thirdparty.modules.business.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yn.bftl.common.modules.order.enums.ShippingWay;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = false)
public class U8ShippingDTO {

    /**
     * 发货单号
     */
    @NotBlank
    private String shippingSn;

    /**
     * 订单号
     */
    @NotBlank
    private String sn;

    /**
     * ERP单号
     */
    @NotBlank
    private String erpNumber;

    /**
     * ERP账套号
     */
    @NotBlank
    private String erpCode;

    /**
     * 发货时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime shippingTime;

//    /**
//     * 签收时间
//     */
//    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
//    private LocalDateTime signTime;

    /**
     * 发货方式
     */
    @NotBlank
    @Enumerated(EnumType.STRING)
    private ShippingWay shippingWay;

//    /**
//     * 订单总额
//     */
//    @NotBlank
//    private BigDecimal amount = BigDecimal.ZERO;

//    /**
//     * 收货状态
//     */
//    @NotBlank
//    @Enumerated(EnumType.STRING)
//    private ReceiveStatus receiveStatus;

    /**
     * 物流公司
     */
    @NotBlank
    private String deliveryCorp;

//    /**
//     * 物流公司编码
//     */
//    @NotBlank
//    private String deliveryCorpCode;

//    /**
//     * 货运公司
//     */
//    private String freightCompany;

    /**
     * 收货人名称
     */
    @NotBlank
    private String consigneeName;

    /**
     * 收货人电话
     */
    @NotBlank
    private String consigneePhone;

    /**
     * 收货人地址
     */
    @NotBlank
    private String consigneeAddr;

//    /**
//     * 收货人地区
//     */
//    private String consigneeArea;

    /**
     * 发货单项明细列表
     */
    private List<U8ShippingDetailDTO> detailList;

}
