package com.bonus.material.basic.domain;

import com.bonus.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 二维码管理对象 bm_qrcode_info
 * 
 * @author xsheng
 * @date 2024-09-26
 */
@EqualsAndHashCode(callSuper = false)
@Data
@Accessors(chain = true)
@ToString
public class BmQrBoxInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "绑定明细id")
    private Long id;

    /** 标准箱ID */
    @ApiModelProperty(value = "标准箱ID")
    @NotNull(message = "标准箱ID不能为空")
    @Min(value = 1, message = "标准箱ID不能为0")
    private Long boxId;

    @ApiModelProperty(value = "二维码标准箱名称")
    private String boxName;

    /** 二维码标准箱编码 */
    @ApiModelProperty(value = "二维码标准箱编码")
    private String boxCode;

    @ApiModelProperty(value = "二维码路径")
    private String boxUrl;

    /** 二维码类型 */
    @ApiModelProperty(value = "二维码类型")
    private String boxType;

    /** 数据所属组织 */
    @ApiModelProperty(value = "标准箱绑定机具数量")
    private Integer devNum;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "开始时间")
    private String startTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "截至时间")
    private String endTime;

    @ApiModelProperty(value = "关键字")
    private String keyWord;

    @ApiModelProperty(value = "类型名称")
    private String typeName;

    @ApiModelProperty(value = "规格类型")
    private String typeModelName;

    @ApiModelProperty(value = "二维码编码")
    private String qrCode;

    @ApiModelProperty(value = "机具ID")
    private Long maId;

    @ApiModelProperty(value = "机具编号")
    private String maCode;

    @ApiModelProperty(value = "机具类型ID")
    private Long maTypeId;

    @ApiModelProperty(value = "机具状态")
    private String maStatus;

    @ApiModelProperty(value = "状态--DTO请求参数，用作多状态查询拼接")
    private String status;

    @ApiModelProperty(value = "状态名称")
    private String statusName;

    @ApiModelProperty(value = "移交人用户ID,")
    private Long transferUser;

    @ApiModelProperty(value = "接收人用户ID")
    private Long inputUser;

    @ApiModelProperty(value = "状态集合")
    private List<String> statusList;

    @ApiModelProperty(value = "标准箱信息")
    private String msg;

    @ApiModelProperty(value = "任务ID")
    private String taskId;

    @ApiModelProperty("机具类型（1机具，2安全工器具）")
    private int jiJuType;

}
