package com.sptg.estate.api.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;

/**
 * title: DeviceTest
 * package: com.sptg.estate.biz.security
 * description: 设备检测实体类
 *
 *               
 *                      
 */
@Setter
@Getter
@TableName(value = "implement_device_test")
public class DeviceTest {
    /**
     * 主键
     */
    @TableId(value = "l_id",type = IdType.AUTO)
    private Long id;
    /**
     * 设备序列号-编号
     */
    @TableField(value = "s_serial_number")
    private String serialNumber;
    /**
     *  小区id
     */
    @TableField(value = "l_residential_id")
    private Long residentialId;
    /**
     * 楼盘名字--项目名称
     */
    @TableField(value = "s_residential_name")
    private String residentialName;
    /**
     * 单元id
     */
    @TableField(value = "s_unit_name")
    private String unitName;
    /**
     * 设备安装位置
     */
    @TableField(value = "s_install_path")
    private String installPath;
    /**
     * 设备类型(门禁机中的类型) 0-立柱机  1-壁挂机 2-雨罩壁挂机
     */
    @TableField(value = "i_device_type")
    private Integer deviceType;
    /**
     * 设备安装记录id
     */
    @TableField(value = "l_device_installation_id")
    private Long deviceInstallationId;

    /******************硬件测试 *************************/
    /**
     * 外观检测 0-正常 1-故障
     */
    @TableField(value = "i_is_appearance")
    private Integer isAppearance;
    /**
     * 液晶屏检测 0-正常 1-故障
     */
    @TableField(value = "i_is_screen")
    private Integer isScreen;
    /**
     * 立柱外观 0-正常 1-故障
     */
    @TableField(value = "i_is_exterior")
    private Integer isExterior;
    /**
     * 控锁检测 0-正常 1-故障
     */
    @TableField(value = "i_is_lock")
    private Integer isLock;
    /**
     * 按键检测 0-正常 1-故障
     */
    @TableField(value = "i_is_button")
    private Integer isButton;
    /**
     * 序列号检测 0-正常 1-故障
     */
    @TableField(value = "i_is_serial_number")
    private Integer isSerialNumber;
    /**
     * 摄像头检测 0-正常 1-故障
     */
    @TableField(value = "i_is_camera")
    private Integer isCamera;
    /**
     * 声音检测 0-正常 1-故障
     */
    @TableField(value = "i_is_sound")
    private Integer isSound;
    /**
     * 补光灯检测 0-正常 1-故障
     */
    @TableField(value = "i_is_light")
    private Integer isLight;
    /**
     * 体感检测 0-正常 1-故障
     */
    @TableField(value = "i_is_feel")
    private Integer isFeel;
    /**
     * 信号检测 0-正常 1-故障
     */
    @TableField(value = "i_is_signal")
    private Integer isSignal;

    /******************性能测试 *************************/

    /**
     * 人脸识别开门 0-正常 1-故障
     */
    @TableField(value = "i_is_face")
    private Integer isFace;
    /**
     * 密码开门 0-正常 1-故障
     */
    @TableField(value = "i_is_password")
    private Integer isPassword;
    /**
     * app一键开门 0-正常 1-故障
     */
    @TableField(value = "i_is_one_button")
    private Integer isOneButton;
    /**
     * 磁卡开门 0-正常 1-故障
     */
    @TableField(value = "i_is_card")
    private Integer isCard;
    /**
     *设备拨手机 0-正常 1-故障
     */
    @TableField(value = "i_is_dial")
    private Integer isDial;
    /**
     * 广告播放 0-正常 1-故障
     */
    @TableField(value = "i_is_play")
    private Integer isPlay;

    /**
     * 创建人id-检测人
     */
    @TableField(value = "l_create_account_id")
    private Long createAccountId;
    /**
     * 检测人-userName
     */
    @TableField(value = "s_create_name")
    private String createName;
    /**
     * 检测时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @TableField(value = "t_create_date")
    private Date createDate;
    /**
     * 审核状态：0-待审核 1-审核通过 2-审核不通过
     */
    @TableField(value = "i_check_state")
    private Integer checkState;
    /**
     *  审核不通过原因，当checkState = 2有值
     */
    @TableField(value = "s_check_opinion")
    private String checkOpinion;
    /**
     * 审核人id
     */
    @TableField(value = "l_check_account_id")
    private Long checkAccountId;
    /**
     * 审核人-userName
     */
    @TableField(value = "s_check_name")
    private String checkName;

    /**
     * 审核时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @TableField(value = "t_check_date")
    private Date checkDate;
    /**
     * 所属机构id
     */
    @TableField(value = "l_org_id")
    private Long orgId;
    /**
     * 根机构id
     */
    @TableField(value = "l_root_org_id")
    private Long rootOrgId;
    /**
     * 存储位置（通过该字段快速查询，所有的子节点）
     */
    @TableField(value = "s_org_position")
    private String orgPosition;

    @TableField(exist = false)
    DeviceInstallation deviceInstallation;
}
