package com.shkj.wms.bo;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 货位资料对象
 *
 * @author lch
 * @date 2022-04-23
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class BaseLocationSaveOrUpdateBo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 货位信息自增id (正常值为修改 反之新增)
     */
    private Long id;

    /**
     * 货位编号（货位ID） code根据规则来生成
     */
    private String locationCode;

    /**
     * 显示货位（货位名称）
     */
    //@NotBlank(message = "显示货位不得为空")
    private String locationName;


    /**
     * 库区ID
     */
    private Long storageId;

    /**
     * 货位状态
     */
    private String locationStatus;

    /**
     * 库区ID
     */
    @NotNull(message = "库区ID不得为空")
    private Long areaId;

    /**
     * 逻辑区域id
     */
    //@NotNull(message = "逻辑区域ID不得为空")
    //@Dict(type = DictConstants.DictKey.bgld_logic_id, message = "逻辑区域与数据字典值不匹配")
    private Long logicId;

    /**
     * 排
     */
    private String locationRow;

    /**
     * 列
     */
    private String locationColumn;

    /**
     * 层
     */
    private String layer;

    /**
     * 存放件数
     */
    //@NotNull(message = "存放件数不得为空")
    private Long capacity;

    /**
     * 巷道号
     */
    //@NotBlank(message = "巷道不得为空")
    private String tunnel;

    /**
     * 楼层
     */
    private String floor;

    /**
     * ABC分类
     */
    //@NotBlank(message = "ABC分类不得为空")
    //@Dict(type = DictConstants.DictKey.goods_abc_classify, message = "ABC分类与数据字典值不匹配")
    private String abcClassify;

    /**
     * 货位类型
     */
    //@NotBlank(message = "货位类型不得为空")
    //@Dict(type = DictConstants.DictKey.base_location_type, message = "货位类型与数据字典值不匹配")
    private String type;

    /**
     * 长
     */
    //@NotNull(message = "长不得为空")
    private BigDecimal length;

    /**
     * 宽
     */
    //@NotNull(message = "宽不得为空")
    private BigDecimal width;

    /**
     * 高
     */
    //@NotNull(message = "高不得为空")
    private BigDecimal height;

    /**
     * 体积
     */
    //@NotNull(message = "体积不得为空")
    private BigDecimal volume;

    /**
     * 重量
     */
    private BigDecimal weight;

    /**
     * 是否锁定
     */
    //@NotBlank(message = "是否锁定不得为空")
    //@Dict(type = DictConstants.DictKey.is_use, message = "是否锁定与数据字典值不匹配")
    private String isuse;

    /**
     * 品种数
     */
    private Long skunum;

    /**
     * 存储分类(0:整散分开；1：整散合一
     */
    //@NotBlank(message = "存储分类(0:整散分开；1：整散合一不得为空")
    //@Dict(type = DictConstants.DictKey.goods_storage_classify, message = "存储分类与数据字典值不匹配")
    private String storageClassify;

    /**
     * 库房条件
     */
    //@NotBlank(message = "库房条件不得为空")
    //@Dict(type = DictConstants.DictKey.goods_storage_conditions, message = "库房条件与数据字典值不匹配")
    private String storageConditions;

    /**
     * 拣货路径
     */
    @NotBlank(message = "拣货路径不得为空")
    private String route;

    /**
     * 备注
     */
    private String remark;

    //@NotBlank(message = "单双深位不得为空")
    private String isDeep;


    private String extend1;

}
