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

import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

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

@Data
@ApiModel(value = "入仓订单项信息")
public class OrderItemInWarehouseVO {

    @ApiModelProperty(value = "主键ID", required = true)
    private Long orderItemId;

    @ApiModelProperty(value = "订单ID", required = true)
    private Long orderId;

    @ApiModelProperty(value = "商品ID", required = true)
    private Long prodId;

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

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

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

    @ApiModelProperty(value = "商品第三方链接")
    private String link;

    @ApiModelProperty(value = "品牌ID", required = true)
    private Long brand;

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

    @ExcelProperty("箱/件数")
    @ApiModelProperty(value = "箱/件数", required = true)
    private Integer cartonsNum;

    @ExcelProperty("类型")
    @ApiModelProperty(value = "类型，多了还是少了，见字典warehouse_in_status", required = true)
    private Integer diffType;

    @ExcelProperty("箱/件数差")
    @ApiModelProperty(value = "箱/件数差", required = true)
    private Integer cartonsNumDiff;

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

    @ExcelProperty("单位")
    @ApiModelProperty(value = "单位", required = true)
    private String unit;

    @ExcelProperty("体积")
    @ApiModelProperty(value = "体积")
    private BigDecimal volume;

    @ExcelProperty("重量")
    @ApiModelProperty(value = "重量")
    private BigDecimal weight;

    @ApiModelProperty(value = "入仓货物-箱规 长*宽*高")
    private String boxGauge;

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

    @ExcelProperty("最早入仓时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @ApiModelProperty(value = "入仓时间")
    private Date firstInTime;

    @ExcelProperty("创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @ApiModelProperty(value = "创建时间", required = true)
    private Date createTime;

}
