package com.shkj.wms.bo;

import com.shkj.wms.constants.DictConstants;
import com.shkj.wms.validator.Dict;
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 BaseLocationManyBo implements Serializable {

private static final long serialVersionUID=1L;

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

    // 库别 不需要传值

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

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

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

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

    // 产品大类 （不知道是哪个字段good_storage）

    /**
     * 长
     */
    private BigDecimal length;

    /**
     * 宽
     */
    private BigDecimal width;

    /**
     * 高
     */
    private BigDecimal height;

    // 设备标识(不知道是什么字段)

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

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


    /**
     * 起始排
     */
    private Long startLocationRow;

    /**
     * 起始列
     */
    private Long startLocationColumn;

    /**
     * 起始层
     */
    private Long startLayer;

    /**
     * 终止排
     */
    private Long endLocationRow;

    /**
     * 终止列
     */
    private Long endLocationColumn;

    /**
     * 终止层
     */
    private Long endLayer;

}
