package com.sy.coinage.workshop.req;

import com.sy.coinage.core.interceptor.Create;
import com.sy.coinage.core.interceptor.Update;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;

import org.hibernate.validator.constraints.Length;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;

import com.alibaba.fastjson2.annotation.JSONField;
import org.hibernate.validator.constraints.Range;
import lombok.Data;

/**
 * -添加请求bean
 */
@Data
public class ScanLogReq implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * -id -10
     */
    @NotNull(message = "id不能为空", groups = {Update.class})
    @Range(min = 1, groups = {Update.class})
    private Integer id;
    /**
     * -rfid -12
     */
    @ApiModelProperty(value = "rfid", required = true)
    @NotBlank(message = "rfid不能为空")
    @Length(max = 12, message = "rfid长度12不正确")
    private String rfid;
    /**
     * -物料编号 -20
     */
    @ApiModelProperty(value = "物料编号", required = true)
    @NotBlank(message = "物料编号不能为空")
    @Length(max = 20, message = "物料编号长度20不正确")
    private String serialNumber;
    /**
     * -质量标识 1:无质量问题 2:有质量问题 -10
     */
    @ApiModelProperty(value = "质量标识 1:无质量问题 2:有质量问题", required = true)
    @NotNull(message = "质量标识 1:无质量问题 2:有质量问题不能为空")
    private Integer isQuality;
    /**
     * -是否为整拍 1:整拍 2: 拆拍 -10
     */
    @ApiModelProperty(value = "是否为整拍 1:整拍 2: 拆拍", required = true)
    @NotNull(message = "是否为整拍 1:整拍 2: 拆拍不能为空")
    private Integer isWhole;
    /**
     * -拆拍的箱子数量 -10
     */
    @ApiModelProperty(value = "拆拍的箱子数量", required = true)
    @NotNull(message = "拆拍的箱子数量不能为空")
    private Integer qty;
    /**
     * -冠字号前缀 -20
     */
    @ApiModelProperty(value = "冠字号前缀", required = true)
    @NotBlank(message = "冠字号前缀不能为空")
    @Length(max = 20, message = "冠字号前缀长度20不正确")
    private String crownPrefix;
    /**
     * -扫描时间 -19
     */
    @ApiModelProperty(value = "扫描时间", required = true)
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "扫描时间不能为空")
    private Date created;
    /**
     * -仓库编号:101:造币一部临时库 102:造币二部临时库103:造币三部临时库 201:主库一 202 主库二 （同一主库下的分库） -10
     */
    @ApiModelProperty(value = "仓库编号:101:造币一部临时库 102:造币二部临时库103:造币三部临时库  201:主库一 202 主库二 （同一主库下的分库）", required = true)
    @NotBlank(message = "仓库编号:101:造币一部临时库 102:造币二部临时库103:造币三部临时库  201:主库一 202 主库二 （同一主库下的分库）不能为空")
    @Length(max = 10, message = "仓库编号:101:造币一部临时库 102:造币二部临时库103:造币三部临时库  201:主库一 202 主库二 （同一主库下的分库）长度10不正确")
    private String wareId;
    /**
     * -操作类型: 2 入库 3 出库 -10
     */
    @ApiModelProperty(value = "操作类型: 2 入库 3 出库", required = true)
    @NotNull(message = "操作类型: 2 入库 3 出库不能为空")
    private Integer opType;
    /**
     * -1:扫描正常 2:扫描异常（没在基本信息表的rfid） -10
     */
    @ApiModelProperty(value = "1:扫描正常 2:扫描异常（没在基本信息表的rfid）", required = true)
    @NotNull(message = "1:扫描正常 2:扫描异常（没在基本信息表的rfid）不能为空")
    private Integer status;
    /**
     * -品种 -20
     */
    @ApiModelProperty(value = "品种", required = true)
    @NotBlank(message = "品种不能为空")
    @Length(max = 20, message = "品种长度20不正确")
    private String securities;
    /**
     * -品种ID -10
     */
    @ApiModelProperty(value = "品种ID", required = true)
    @NotNull(message = "品种ID不能为空")
    private Integer securitiesId;

}
