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

import cn.iocoder.yudao.module.order.vo.order.OrderWarehouseInDetailsVO;
import cn.iocoder.yudao.module.order.vo.orderLocation.OrderLocationCreateReqVO;
import cn.iocoder.yudao.module.order.vo.orderWarehouseIn.OrderWarehouseInItemDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.hibernate.validator.constraints.Length;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

@ApiModel("管理后台 - 到仓货物详情更新 Item VO")
@Data
@EqualsAndHashCode
@ToString(callSuper = true)
public class OrderWarehouseCheckUpdateItemVO {

    @ApiModelProperty(value = "入仓货物-id, 可为空")
    private Long id;

    @ApiModelProperty(value = "到仓详情总数", required = true)
    @NotNull(message = "到仓详情总数不能为空")
    private Integer quantityAll;

    @ApiModelProperty(value = "到仓详情箱数", required = true)
    @NotNull(message = "到仓详情箱数不能为空")
    private Integer cartonsNum;

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

    @ApiModelProperty(value = "入仓货物-包装类型", required = true)
    @NotNull(message = "包装类型不能为空")
    private String unit;

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

    @ApiModelProperty(value = "到仓详情体积", required = true)
    @NotNull(message = "到仓详情体积不能为空")
    private BigDecimal volume;

    @ApiModelProperty(value = "到仓详情重量", required = true)
    @NotNull(message = "到仓详情重量不能为空")
    private BigDecimal weight;

    @ApiModelProperty(value = "入仓货物-快递单号")
    private String expressNo;

    @ApiModelProperty(value = "入仓备注")
    @Length(max = 100, message = "备注最多支持100字")
    private String remark;

    @ApiModelProperty(value = "储位列表")
    private List<OrderLocationCreateReqVO> orderLocationCreateReqVOList;

    @ApiModelProperty(value = "入仓纪录明细列表")
    private List<OrderWarehouseInDetailsVO> orderWarehouseInDetailsVOList;


}
