package com.sptg.device.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: Device
 * package: com.sptg.device.api.entity
 * description: 设备实体类
 */
@Setter
@Getter
@TableName(value = "device_options")
public class DeviceOptions implements java.io.Serializable{

    /**
     * 主键
     */
    @TableId(value = "l_id",type = IdType.ID_WORKER)
    private Long id;

    /**
     * 设备id
     */
    @TableField(value = "l_device_id")
    private Long deviceId;

    /**
     * 设备序列号
     */
    @TableField(value = "s_serial_number")
    private String serialNumber;

    /**
     * 设备厂商
     */
    @TableField(value = "s_device_factory")
    private String deviceFactory;

    /**
     * 设备型号
     */
    @TableField(value = "s_type_code")
    private String typeCode;

    /**
     * 通话音量 { 0--100 }
     */
    @TableField(value = "i_call_volume")
    private Integer callVolume;

    /**
     * 广告音量 { 0--100 }
     */
    @TableField(value = "i_ad_volume")
    private Integer adVolume;

    /**
     * 屏幕亮度 { 0--100 }
     */
    @TableField(value = "i_screen_brightness")
    private Integer screenBrightness;

    /**
     * 人脸识别度 { 0--100 }
     */
    @TableField(value = "i_face_resolution")
    private Integer faceResolution;

    /**
     * 补光灯亮度 { 0--100 }
     */
    @TableField(value = "i_fill_light")
    private Integer fillLight;

    /**
     * 设备开门时长
     */
    @TableField(value = "i_delay")
    private Integer delay;

    /**
     * 是否显示住户名称 : { 1：显示，2：不显示 }
     */
    @TableField(value = "i_is_show_username")
    private Integer isShowUsername;

    /**
     * 是否启用时间策略 { 1：启用，2：不启用 }
     */
    @TableField(value = "i_time_strategy_is_enable")
    private Integer timeStrategyIsEnable;

    /**
     * 石头开启活体检测,默认开启
     * 1 就是开启,0 就是关闭
     */
    @TableField(value = "i_live_detect")
    private Integer liveDetect;

    /**
     * 识别框位置：{ 1：左上角，2：左下角，3：中间位置，4：右下角 }
     */
    @TableField(value = "i_discern_box_position")
    private Integer discernBoxPosition;

    /**
     * 广告轮播模式
     */
    @TableField(value = "i_play_model")
    private Integer playModel;

    /**
     * 管理密码
     */
    @TableField(value = "s_admin_pwd")
    private String adminPwd;

    /**
     * 紧急开门密码
     */
    @TableField(value = "s_open_door_pwd")
    private String openDoorPwd;

    /**
     * 修改时间
     */
    @TableField(value = "t_update_date")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateDate;

    /**
     * 删除标记：{ -1：已删除，0：正常 }
     */
    @TableField(value = "i_status")
    private Integer status;

    /**
     * 刷脸开门功能：{-1：禁用，0：启用 }：
     */
    @TableField(value = "i_face_open_door")
    private Integer faceOpenDoor;

    /**
     * 刷卡开门功能：{-1：禁用，0：启用 }
     */
    @TableField(value = "i_card_open_door")
    private Integer cardOpenDoor;

    /**
     * 远程开门功能：{-1：禁用，0：启用 }
     */
    @TableField(value = "i_remote_open_door")
    private Integer remoteOpenDoor;

    /**
     * 密码开门功能：{-1：禁用，0：启用 }
     */
    @TableField(value = "i_pwd_open_door")
    private Integer pwdOpenDoor;

    /**
     * 设备键盘功能：{-1：禁用，0：启用 }
     */
    @TableField(value = "i_keyboard")
    private Integer keyboard;

    /**
     * 广告播放功能：{-1：禁用，0：启用 }
     */
    @TableField(value = "i_ad_play")
    private Integer adPlay;

    /**
     * 广告播放功能：{-1：禁用，0：启用 }
     */
    @TableField(exist = false)
    private String oldOpenDoorPwd;

}
