package com.zd.laboratory.domain;

import javax.validation.constraints.NotNull;

import com.zd.common.core.valid.ValidGroup;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zd.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.zd.common.core.web.domain.BaseEntity;
import org.hibernate.validator.constraints.Length;

/**
 * 疏散硬件对象 lab_sparse_hardware
 *
 * @author liubo
 * @date 2022-01-25
 */
@ApiModel("疏散硬件")
public class LabSparseHardware extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ApiModelProperty(value = "${comment}")
    private Long id;
    /**
     * 设备编码
     */
    @Excel(name = "设备编码")
    @Length(message = "设备编码长度不能超过32")
    @ApiModelProperty(value = "设备编码")
    private String hardwareNum;
    /**
     * 设备名称
     */
    @Excel(name = "设备名称")
    @Length(message = "设备名称长度不能超过50")
    @ApiModelProperty(value = "设备名称")
    private String name;
    /**
     * 设备类型(1 摄像头，2 喇叭)
     */
    @Excel(name = "设备类型(1 摄像头，2 喇叭)")
    @NotNull(groups = ValidGroup.Crud.Create.class, message = "设备类型(1 摄像头，2 喇叭)不能为空")
    @ApiModelProperty(value = "设备类型(1 摄像头，2 喇叭)")
    private Integer type;
    /**
     * 楼栋表楼层id
     */
    @Excel(name = "楼栋表楼层id")
    @ApiModelProperty(value = "楼栋表楼层id")
    private Integer floorId;
    /**
     * 楼栋名称
     */
    @ApiModelProperty(value = "楼栋名称")
    private String floorName;
    /**
     * 楼栋ID
     */
    @Excel(name = "楼栋ID")
    @ApiModelProperty(value = "楼栋ID")
    private Long buildId;
    private String buildName;
    /**
     * 设备状态（0是离线，1是异常，2是在线,3是开启，4是关闭）
     */
    @Excel(name = "设备状态", readConverterExp = "0=是离线，1是异常，2是在线,3是开启，4是关闭")
    @ApiModelProperty(value = "设备状态")
    private Integer operate;
    /**
     * 功能状态
     */
    @Excel(name = "功能状态")
    @Length(message = "功能状态长度不能超过32")
    @ApiModelProperty(value = "功能状态")
    private String functionStatus;

    /**
     * 实验室ID
     */
    private Long subjectId;
    /**
     * 实验室名称
     */
    private String subjectName;
    /**
     * 设备分类（1 楼层，2 实验室）
     */
    private Integer deviceType;

    /**
     * 设备端口号
     */
    private Integer port;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setHardwareNum(String hardwareNum) {
        this.hardwareNum = hardwareNum;
    }

    public String getHardwareNum() {
        return hardwareNum;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Integer getType() {
        return type;
    }

    public void setFloorId(Integer floorId) {
        this.floorId = floorId;
    }

    public Integer getFloorId() {
        return floorId;
    }

    public void setBuildId(Long buildId) {
        this.buildId = buildId;
    }

    public Long getBuildId() {
        return buildId;
    }

    public void setOperate(Integer operate) {
        this.operate = operate;
    }

    public Integer getOperate() {
        return operate;
    }

    public void setFunctionStatus(String functionStatus) {
        this.functionStatus = functionStatus;
    }

    public String getFunctionStatus() {
        return functionStatus;
    }

    public String getFloorName() {
        return floorName;
    }

    public void setFloorName(String floorName) {
        this.floorName = floorName;
    }

    public String getBuildName() {
        return buildName;
    }

    public void setBuildName(String buildName) {
        this.buildName = buildName;
    }

    public Long getSubjectId() {
        return subjectId;
    }

    public void setSubjectId(Long subjectId) {
        this.subjectId = subjectId;
    }

    public String getSubjectName() {
        return subjectName;
    }

    public void setSubjectName(String subjectName) {
        this.subjectName = subjectName;
    }

    public Integer getDeviceType() {
        return deviceType;
    }

    public void setDeviceType(Integer deviceType) {
        this.deviceType = deviceType;
    }

    public Integer getPort() {
        return port;
    }

    public void setPort(Integer port) {
        this.port = port;
    }
}
