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

import lombok.*;

import java.math.BigDecimal;
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 OrderWarehouseInBaseVO {

    @ApiModelProperty(value = "入仓id, 新增时不传")
    private Long id;

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

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

    @ApiModelProperty(value = "订单项id", required = true)
    @NotNull(message = "订单项id不能为空")
    private Long orderItemId;

    @ApiModelProperty(value = "入库状态 见字典order_warehouse_in_status")
    private Integer status;

    @ApiModelProperty(value = "商品ID", required = true)
    @NotNull(message = "商品ID不能为空")
    private Long prodId;

    @ApiModelProperty(value = "产品类型")
    private Integer prodType;

    @ApiModelProperty(value = "产品中文标题")
    private String prodTitleZh;

    @ApiModelProperty(value = "产品英文标题")
    private String prodTitleEn;

    @ApiModelProperty(value = "品牌")
    private String brand;

    @ApiModelProperty(value = "0 无牌 1 有牌 2 中性", required = true)
    @NotNull(message = "0 无牌 1 有牌 2 中性不能为空")
    private Integer brandType;

    @ApiModelProperty(value = "箱/件数", required = true)
    @NotNull(message = "箱/件数不能为空")
    private Integer cartonsNum;

    @ApiModelProperty(value = "箱/件数差", required = true)
    @NotNull(message = "箱/件数差不能为空")
    private Integer cartonsNumDiff;

    @ApiModelProperty(value = "所有箱内总货物数量")
    private Integer quantityAll;

    @ApiModelProperty(value = "入仓规格类型")
    private Integer specificationType;

    @ApiModelProperty(value = "单位", required = true)
    @NotNull(message = "单位不能为空")
    private String unit;

    @ApiModelProperty(value = "箱规")
    private String boxGauge;

    @ApiModelProperty(value = "体积")
    private java.math.BigDecimal volume;

    @ApiModelProperty(value = "重量")
    private java.math.BigDecimal weight;

    @ApiModelProperty(value = "商品特性(可选多个特性ID)")
    private String prodAttrIds;

    @ApiModelProperty(value = "0下单货物；1非下单货物")
    private Integer type;

    @ApiModelProperty(value = "材质")
    private String material;

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

    @ApiModelProperty(value = "入仓时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date inTime;


    /**
     * 重货方数
     */
    @ApiModelProperty(value = "重货方数")
    private BigDecimal heavyNumber;

    /**
     * 泡货方数
     */
    @ApiModelProperty(value = "泡货方数")
    private BigDecimal lightNumber;

}
