package cn.iocoder.yudao.module.order.vo.orderPickup;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
* 提货 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class OrderPickupBaseVO {

    @ApiModelProperty(value = "订单编号", required = true)
    @NotNull(message = "订单编号不能为空")
    private String orderId;

    @ApiModelProperty(value = "提货方式", required = true)
    @NotNull(message = "提货方式不能为空")
    private Long pickType;

    @ApiModelProperty(value = "提货时间", required = true)
    @NotNull(message = "提货时间不能为空")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date pickTime;

    @ApiModelProperty(value = "快递单号")
    private String trackingNumber;

    @ApiModelProperty(value = "送货时间")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date deliverTime;

    @ApiModelProperty(value = "附件")
    private String attachment;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "提货数量")
    @Min(1)
    private Integer pickNum;

    @ApiModelProperty(value = "送货地址")
    private String deliverAddress;

    @ApiModelProperty(value = "提货前订单主状态")
    private Integer orderStatus;

}
