package com.yuchen.saas.park.api.entity.pldoor;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.nest.springwrap.core.tenant.mp.TenantEntity;

import javax.validation.constraints.NotNull;

/**
 * <p>
 * 门禁点
 * </p>
 *
 * @author miaoqs
 * @since 2024-04-03
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("pl_door_point")
@ApiModel(value="PlDoorPoint对象", description="门禁点")
public class PlDoorPoint extends TenantEntity {

    /**
     * 门禁id
     */
    @NotNull(message = "门禁ID不能为空")
    @ApiModelProperty(name = "doorId", value = "门禁id")
    private String doorId;
    /**
     * 门禁点名称
     */
    @NotNull(message = "门禁点名称不能为空")
    @ApiModelProperty(name = "doorName", value = "门禁点名称")
    private String doorName;
    /**
     * 门禁组id
     */
    //@NotNull(message = "门禁组不能为空")
    @ApiModelProperty(name = "doorGroupId", value = "门禁组id")
    private Long doorGroupId;
    /**
     * 门禁组字符串
     */
    @TableField(exist = false)
    @ApiModelProperty(name = "doorGroupStr", value = "门禁组字符串")
    private String doorGroupStr;
    /**
     * 是否启用;0:未启用;1:已启用
     */
    @NotNull(message = "是否启用不能为空")
    @ApiModelProperty(name = "enableState", value = "是否启用;0:未启用;1:已启用")
    private String enableState;
    /**
     * 门禁型号
     */
    @ApiModelProperty(name = "doorModel", value = "门禁型号")
    private String doorModel;
    /**
     * ip地址
     */
    @ApiModelProperty(name = "doorIp", value = "ip地址")
    private String doorIp;
    /**
     * 设备key
     */
    @NotNull(message = "设备key不能为空")
    @ApiModelProperty(name = "productKey", value = "设备key")
    private String productKey;
    /**
     * 设备密钥
     */
    @NotNull(message = "设备密钥不能为空")
    @ApiModelProperty(name = "productSecret", value = "设备密钥")
    private String productSecret;
    /**
     * 设备名称
     */
    @NotNull(message = "设备名称不能为空")
    @ApiModelProperty(name = "deviceName", value = "设备名称")
    private String deviceName;
    /**
     * 设备编号(物模型)
     */
    @NotNull(message = "设备编号不能为空")
    @ApiModelProperty(name = "deviceNo", value = "设备编号(物模型)")
    private String deviceNo;
    /**
     * 设备终端编号(设备)
     */
    @NotNull(message = "设备终端编号(设备)不能为空")
    @ApiModelProperty(name = "terminalNumber", value = "设备终端编号(设备)")
    private String terminalNumber;
    /**
     * 在线状态;0:离线;1:在线
     */
    @ApiModelProperty(name = "onlineState", value = "在线状态;0:离线;1:在线")
    private String onlineState;
    /**
     * 控制设备类型
     */
    @ApiModelProperty(name = "deviceType", value = "控制设备类型")
    private Long deviceType;
    /**
     * 人脸;0:未开启;1:开启
     */
    @ApiModelProperty(name = "faceState", value = "人脸;0:未开启;1:开启")
    private String faceState;
    /**
     * 指纹;0:未开启;1:开启
     */
    @ApiModelProperty(name = "fingerprintState", value = "指纹;0:未开启;1:开启")
    private String fingerprintState;
    /**
     * 蓝牙;0:未开启;1:开启
     */
    @ApiModelProperty(name = "bluetoothState", value = "蓝牙;0:未开启;1:开启")
    private String bluetoothState;
    /**
     * 二维码;0:未开启;1:开启
     */
    @ApiModelProperty(name = "qrcodeState", value = "二维码;0:未开启;1:开启")
    private String qrcodeState;
    /**
     * 项目
     */
    @NotNull(message = "项目不能为空")
    @ApiModelProperty(name = "parkId", value = "项目")
    private Long parkId;
    /**
     * 单元
     */
    @NotNull(message = "单元不能为空")
    @ApiModelProperty(name = "elementId", value = "单元")
    private Long elementId;
    /**
     * 楼栋
     */
    @NotNull(message = "楼栋不能为空")
    @ApiModelProperty(name = "buildingId", value = "楼栋")
    private Long buildingId;

    /**
     * 所属产品id
     */
    @NotNull(message = "所属产品id不能为空")
    @ApiModelProperty(name = "productId", value = "所属产品id")
    private Long productId;
    /**
     * 品牌型号
     */
    @ApiModelProperty(name = "brandModel", value = "品牌型号")
    private String brandModel;
    /**
     * 设备位置
     */
    @ApiModelProperty(name = "deviceLocation", value = "设备位置")
    private String deviceLocation;
    /**
     * 经度
     */
    @ApiModelProperty(name = "longitude", value = "经度")
    private String longitude;
    /**
     * 纬度
     */
    @ApiModelProperty(name = "latitude", value = "纬度")
    private String latitude;
    /**
     * 安装方向(1:出口;2:入口)
     */
    @NotNull(message = "安装方向")
    @ApiModelProperty(name = "installationDimension", value = "安装方向(1:出口;2:入口)")
    private String installationDimension;
    /**
     * 是否具备IC卡功能(1:是;2:否)
     */
    @ApiModelProperty(name = "izIcCard", value = "是否具备IC卡功能(1:是;2:否)")
    private String izIcCard;
    /**
     * 设备图片url
     */
    @ApiModelProperty(name = "imgUrl", value = "设备图片url")
    private String imgUrl;
    /**
     * 绑定视频监控id
     */
    @ApiModelProperty(name = "videoSurveillanceId", value = "绑定视频监控id")
    private String videoSurveillanceId;
    /**
     * 设备描述
     */
    @ApiModelProperty(name = "description", value = "设备描述")
    private String description;

}
