package com.zd.system.api.laboratory.domain;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.zd.common.core.annotation.Excel;
import com.zd.common.core.enums.HardwareOperate;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

/**
 * 硬件对象 lab_hardware
 *
 * @author zd
 */
@ApiModel("硬件表")
@Data
public class RemoteLabHardware{

    /**
     * 主键id
     */
    @ApiModelProperty(value = "${comment}")
    private Long id;

    /**
     * 设备名称
     */
    @ApiModelProperty("设备名称")
    @Excel(name = "设备名称")
    private String name;

    /**
     * 设备厂家
     */
    @ApiModelProperty("设备厂家")
    @Excel(name = "设备厂家")
    private String factory;

    /**
     * 设备类型
     */
    @ApiModelProperty("设备类型")
    @Excel(name = "设备类型")
    private Integer type;

    /**
     * 一体机类型，管控一体机0  学习考试一体机1
     */
    @ApiModelProperty("一体机类型")
    @Excel(name = "一体机类型")
    private Integer pcType;

    /**
     * mac地址
     */
    @ApiModelProperty("mac地址")
    @Excel(name = "mac地址")
    private String macAdd;

    /**
     * 所属实验室id
     */
    @ApiModelProperty("所属实验室id")
    @Excel(name = "所属实验室id")
    private Long subjectId;

    /**
     * 部门id
     */
    @ApiModelProperty("部门id")
    @Excel(name = "部门id")
    private Long deptId;

    /**
     * 部门名称
     */
    @ApiModelProperty("部门名称")
    @Excel(name = "部门名称")
    private String deptName;

    /**
     * 设备状态
     */
    @ApiModelProperty("设备状态")
    @Excel(name = "设备状态")
    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    private HardwareOperate operate;

    /**
     * 创建人（用于数据权限）
     */
    @ApiModelProperty("创建人（用于数据权限）")
    @Excel(name = "创建人", readConverterExp = "用=于数据权限")
    private Long userId;

    @ApiModelProperty("设备编码")
    private String hardwareNum;

    /**
     * 配置名称
     */
    private String configName;

    /**
     * 配置状态
     */
    private String configStatus;

    /**
     * 老继电器，新继电器
     */
    private int hardwareType;

    @ApiModelProperty(value = "供应厂商")
    private Integer manufacturerType;

    /** ip地址 */
    @Length(message = "ip地址长度不能超过100")
    @ApiModelProperty(value = "ip地址")
    private String ipAddress;
    /** 设备端口号 */
    @ApiModelProperty(value = "设备端口号")
    private Integer port;
    /** 设备输出频率 33最大 */
    @ApiModelProperty(value = "设备输出频率 33最大")
    private String uniformPower;
    /** 设备推送频率，0最大，2最小 */
    @ApiModelProperty(value = "设备推送频率，0最大，2最小")
    private Byte sessionIndex;
    /** 支持1通道、4通道、8通道、16通道 */
    @ApiModelProperty(value = "支持1通道、4通道、8通道、16通道")
    private Integer channels;

    /**
     * 功能状态： 不同设备的功能状态都是不一样的
     */
    private String functionStatus;

    /**
     * 横轴坐标
     */
    private String horizontalAxis;

    /**
     * 竖轴坐标
     */
    private String verticalAxis;

    /**
     * 关联继电器编码
     */
    private String relayCode;

    /**
     * 继电器位数
     */
    private Integer bit;

    @ApiModelProperty(value = "报警器响铃时长")
    private Integer ringTime;
}
