package com.usky.eg.domain;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;

import lombok.Data;
import lombok.EqualsAndHashCode;
import rx.BackpressureOverflow;

/**
 * <p>
 * 门禁_设备信息表
 * </p>
 *
 * @author zyj
 * @since 2024-11-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class EgDevice implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 设备uuid
     */
    private String deviceUuid;

    /**
     * 设备ID
     */
    private String deviceId;

    /**
     * 设备名称
     */
    private String deviceName;

    /**
     * 安装位置
     */
    private String installAddress;

    /**
     * 业务状态;1：未激活，2：已激活，3：禁用
     */
    private Integer serviceStatus;

    /**
     * IP
     */
    private String deviceIp;

    /**
     * 绑定人脸信息
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String bindFace;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 创建日期
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 组织机构ID
     */
    private Integer deptId;

    /**
     * 租户ID
     */
    private Integer tenantId;

    /**
     * 绑定人员信息（从 eg_device_person_bind 表汇总的 person_id 列表，以逗号分隔）
     */
    @TableField("bind_person")
    private String bindPerson;

    /**
     * 屏保
     */
    private String imgPath;

    /**
     * 标识语
     */
    private String remark;

    /**
     * 开门方式
     */
    private String openMode;

    /**
     * 密码
     */
    private String password;

    /**
     * 工作状态
     */
    private String workStatus;

    /**
     * 设备code
     */
    private String deviceCode;

    /**
     * 设备状态;1：在线，0：离线（从心跳表获取，不映射到数据库）
     */
    @TableField(exist = false)
    private Integer deviceStatus;
}
