package com.yiqi.order.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * @author xiaohei
 * @date 2024/2/18
 */
@Data
public class OrderClothThirdDeliverySendDTO {

    @ApiModelProperty("订单编号")
    @NotEmpty(message = "订单编号不能为空")
    private String orderNo;

    @ApiModelProperty("快递公司ID")
    @NotEmpty(message = "快递公司ID不能为空")
    private String deliveryId;

    @ApiModelProperty("快递公司名称")
    @NotEmpty(message = "快递公司名称不能为空")
    private String deliveryCompany;

    @ApiModelProperty("快递客户编码或者现付编码")
    @NotEmpty(message = "快递客户编码不能为空")
    private String bizId;

    @ApiModelProperty("服务类型")
    @NotNull(message = "服务类型不能为空")
    private Integer serviceType;

    @ApiModelProperty("服务类型名称")
    @NotEmpty(message = "服务类型名称不能为空")
    private String serviceName;

    @ApiModelProperty("预期的上门揽件时间，必须当前时间+1小时以上")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    @NotNull(message = "揽件时间不能为空")
    private Date expectTime;

    @ApiModelProperty("包裹数量, 默认为1")
    private Integer count = 1;

    @ApiModelProperty("货物总重量，比如1.2，单位是千克(kg)")
    @NotNull(message = "货物总重量不能为空")
    private Integer weight;

    @ApiModelProperty("货物长度，比如20.0，单位是厘米(cm)")
    @NotNull(message = "货物长度不能为空")
    private Integer spaceLength;

    @ApiModelProperty("货物宽度，比如15.0，单位是厘米(cm)")
    @NotNull(message = "货物宽度不能为空")
    private Integer spaceWidth;

    @ApiModelProperty("货物高度，比如10.0，单位是厘米(cm)")
    @NotNull(message = "货物高度不能为空")
    private Integer spaceHeight;

    @ApiModelProperty("快递备注信息，比如\"易碎物品\"，不超过1024字节")
    @NotEmpty(message = "快递备注不能为空")
    private String customRemark;
}
