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: DeviceInstallation
 * package: com.sptg.estate.biz.security
 * description: 设备安装实体类
 *
 *               
 *                      
 */
@Setter
@Getter
@TableName(value = "implement_device_installation")
public class DeviceInstallation {
    /**
     * 主键
     */
    @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 = "l_installation_review_id")
    private Long installationReviewId;
    /**
     * 单元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;
    /**
     * 前端门锁类型 0-电磁锁 1-电插锁 2-电机锁 3-电控锁 4-闸机 5-其他（选其他可手填）
     * 锁类型名字（存名字）
     */
    @TableField(value = "s_lock_name")
    private String lockName;
    /**
     * 开门方式 0-断电 1-通电
     */
    @TableField(value = "i_opening_method")
    private Integer openingMethod;
    /**
     * 前端门禁控制方式 0-控门禁电源 1-控锁 2-控原门禁 3-其他（选其他可手填）
     * 门禁控制方式（存名字）
     */
    @TableField(value = "s_control_method")
    private String controlMethod;
    /**
     * 设备端子端（控锁线起始端拍照）
     */
    @TableField(value = "s_start_point_img_uri")
    private String startPointImgUri;
    /**
     * 控制接线端（控锁线终止端拍照（线的另一头））
     */
    @TableField(value = "s_end_point_img_uri")
    private String endPointImgUri;
    /**
     * 设备安装好后的面板图片
     */
    @TableField(value = "s_panel_img_uri")
    private String panelImgUri;
    /**
     * 设备安装好后的场景图片
     */
    @TableField(value = "s_panoramic_img_uri")
    private String panoramicImgUri;
    /**
     * 设备安装好后的侧面图片
     */
    @TableField(value = "s_side_img_uri")
    private String sideImgUri;
    /**
     * 开门5秒小视频
     */
    @TableField(value = "s_opening_video_uri")
    private String openingVideoUri;

    /**
     * 创建人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;
    /**
     * 删除标记：{ -1：已删除，0：正常 }
     */
    @TableField(value = "i_status")
    private Integer status;

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

    /**
     * 设备定位记录
     */
    @TableField(exist = false)
    PositionRecord  positionRecord;
}
