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 org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * title: AccessRecords
 * package: com.sptg.estate.api.entity
 * description: 出入记录 实体类
 *
 *
 *
 */
@Setter
@Getter
@TableName(value = "estate_access_records")
public class AccessRecords {

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

    @TableField(value="l_old_id")
    private Long oldId;

    /**
     * 是否为管理员
     * 0：后台管理员
     * 1：社区服务人员
     * 2：普通住户
     * 3：访客
     * 4：管理机账号
     */
    @TableField(value = "i_is_admin")
    private Integer isAdmin;

    /**
     * 用户类型
     * 非服务人员：0-业主 1-成员 2-租户
     * 服务--人员：0-保安 1-快递 2-外卖 3-清洁 4-其他
     * 访客：0-朋友  1-外卖 2-快递 3-其他
     */
    @TableField(value = "i_access_user_type")
    private Integer accessUserType;

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

    /**
     * 设备名称
     */
    @TableField(value = "s_device_name")
    private String deviceName;

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

    /**
     * 设备安装位置
     */
    @TableField(value = "s_install_path")
    private String installPath;

    /**
     * 访客性别
     */
    @TableField(value = "i_access_sex")
    private Integer accessSex;

    /**
     * 访客年龄age
     */
    @TableField(value = "i_access_age")
    private Integer accessAge;

    /**
     * 开门用户的id
     */
    @TableField(value = "l_open_user_id")
    private Long openUserId;

    /**
     * 开门用户的名称
     */
    @TableField(value = "s_open_user_name")
    private String openUserName;

    /**
     * 开门用户的手机号
     */
    @TableField(value = "s_open_user_tel")
    private String openUserTel;

    /**
     * 抓拍图片
     */
    @TableField(value = "s_snapsho_uri")
    private String snapshoUri;

    /**
     * 开门类型 0- 人脸 1-密码 2-刷卡 3-远程
     */
    @TableField(value = "i_open_door_type")
    private Integer openDoorType;

    /**
     * 出入卡号（当s_open_door_type = 2时，需要录入卡号）
     */
    @TableField(value = "s_access_card_no")
    private String accessCardNo;

    /**
     * 出入时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @TableField(value = "t_access_date")
    private Date accessDate;

    /**
     * 房间Id
     */
    @TableField(value = "l_room_id")
    private Long roomId;

    /**
     * 单元Id
     */
    @TableField(value = "l_unit_id")
    private Long unitId;
    /**
     * 小区Id
     */
    @TableField(value = "l_residential_id")
    private Long residentialId;

    /**
     * 存储位置（通过该字段快速查询，所有的子节点）
     */
    @TableField(value = "s_org_position")
    private String orgPosition;

    /**
     * 存储位置（通过该字段快速查询，所有的子节点）
     */
    @TableField(value = "s_estate_position")
    private String estatePosition;

    /**
     * 根机构Id
     */
    @TableField(value = "l_root_org_id")
    private Long rootOrgId;

    /**
     * 创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @TableField(value = "t_create_date")
    private Date createDate;

    /**
     * 1：进，2：出
     */
    @TableField(value = "i_is_out")
    private Integer isOut;

    /**
     * 对比图
     */
    @TableField(value = "s_compare_url")
    private String compareUrl;

    /**
     * 对比度
     */
    @TableField(value = "s_contrast")
    private String contrast;

    /**
     * 小区名称
     */
    @TableField(value = "s_residential_name")
    private String residentialName;

    /**
     * 单元名称
     */
    @TableField(value = "s_unit_name")
    private String unitName;

    /**
     * 单元名称
     */
    @TableField(value = "s_room_name")
    private String roomName;

    /**
     * 体温
     */
    @TableField(value = "s_temperature")
    private String temperature;

    /* -------------------------------------------------------------------------------------------------------------- */

    /**
     * 用户Id
     */
    @TableField(exist = false)
    private String userId;

}
