package com.yuchen.saas.parking.api.entity;

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

import javax.validation.constraints.NotNull;

/**
 * @ClassName PmgBatParkParkingConnectDevice
 * @Description 停车场车道和设备关联表
 * @Author 张逸飞
 * @Date 2022年11月9日 17:39:13
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "停车场车道和设备关联表", description = "停车场车道和设备关联表")
@TableName("pmg_bat_park_parking_connect_device")
public class PmgBatParkParkingConnectDevice extends TenantEntity {
    private static final long serialVersionUID = 1L;
    /**
     * 产品id
     */
    @ApiModelProperty(name = "productId", value = "产品id")
    private Long productId;
    /**
     * 道闸类型(1抓拍一体机2普通道闸)
     */
    @ApiModelProperty(name = "barrierGateType", value = "道闸类型(1抓拍一体机2普通道闸)")
    private Integer barrierGateType;

    /**
     *主键id
     */
    @TableId
    @ApiModelProperty(name = "id",value = "")
    private Long id;
    /**
     * 关联的车道id
     */
    @ApiModelProperty(name = "roadwayId",value = "关联的车道id")
    private Long roadwayId;
    /**
     * 项目id
     */
    @NotNull(message = "项目id不能为空")
    @ApiModelProperty(name = "projectId",value = "项目id")
    private Long projectId;
    /**
     * 车场id
     */
    @NotNull(message = "车场id不能为空")
    @ApiModelProperty(name = "parkingId",value = "车场id")
    private Long parkingId;
    /**
     * 车位id
     */
    @ApiModelProperty(name = "placeId",value = "车位id")
    private Long placeId;
    /**
     * 关联的设备id。这个id是我们平台的设备id，对应到iot_bat_integrated_device表中的device_id
     */
    @ApiModelProperty(name = "deviceId",value = "关联的设备id。这个id是我们平台的设备id，对应到iot_bat_integrated_device表中的device_id")
    private Long deviceId;

    /**
     * 是否下发 led 指令 （true 下发、false 不下发）
     */
    @ApiModelProperty(name = "ledEnable", value = "是否下发 led 指令 （true 下发、false 不下发）")
    private Boolean ledEnable;

    /**
     * 是否下发 语音指令 （true 下发、false 不下发）
     */
    @ApiModelProperty(name = "ledEnable", value = "是否下发 语音指令 （true 下发、false 不下发）")
    private Boolean voiceEnable;

    /**
     * 相机账号
     */
    @ApiModelProperty(name = "cameraUsername",value = "相机账号")
    private String cameraUsername;

    /**
     * 相机密码
     */
    @ApiModelProperty(name = "cameraPassword",value = "相机密码")
    private String cameraPassword;

    /**
     * 设备类型（1：视频监控，2：智能硬件，3：传感设备）
     */
    @NotNull(message = "设备类型不能为空")
    @ApiModelProperty(name = "broadCategory",value = "设备类型（1：视频监控，2：智能硬件，3：传感设备）")
    private Integer broadCategory;
    /**
     * 地理位置
     */
    @ApiModelProperty(name = "location", value = "地理位置")
    private String location;
    /**
     * 经度
     */
    @ApiModelProperty(name = "longitude", value = "经度")
    private String longitude;
    /**
     * 纬度
     */
    @ApiModelProperty(name = "latitude", value = "纬度")
    private String latitude;
    /**
     * 安装方向(0 进，1出)
     */
    @ApiModelProperty(name = "installDirection", value = "安装方向(0 进，1出)")
    private Integer installDirection;
    /**
     * 屏显规则id
     */
    @ApiModelProperty(name = "screenRuleId", value = "屏显规则id")
    private Integer isScreenRule;
    /**
     * 屏显规则id
     */
    @ApiModelProperty(name = "screenRuleId", value = "屏显规则id")
    private Long screenRuleId;
    /**
     * 绑定地方类型(1车道，2车位，3车场)
     */
    @NotNull(message = "绑定地方类型不能为空")
    @ApiModelProperty(name = "belongType", value = "绑定地方类型(1车道，2车位，3车场)")
    private Integer belongType;

    /**
     * 空间id
     */
    @ApiModelProperty(name = "spaceId", value = "空间id")
    private Long spaceId;

    @ApiModelProperty(name = "deviceName", value = "设备标识")
    private String deviceName;
    @ApiModelProperty(name = "ProductKey", value = "产品key")
    private String productKey;
//    @ApiModelProperty(name = "brandName", value = "品牌")
//    private String brandName;
//    @ApiModelProperty(name = "modelName", value = "型号")
//    private String modelName;
    /**
     * 设备名称
     */
    @ApiModelProperty(name = "deviceAlias", value = "设备名称")
    private String deviceAlias;
    /**
     * 设备品牌id
     */
    @ApiModelProperty(name = "deviceBrandId", value = "设备品牌id")
    private Long deviceBrandId;
    /**
     * 设备型号id
     */
    @ApiModelProperty(name = "deviceModelId", value = "设备型号id")
    private Long deviceModelId;
    /**
     * 设备图片
     */
    @ApiModelProperty(name = "filePath", value = "设备图片")
    private String filePath;
    /**
     * 设备描述
     */
    @ApiModelProperty(name = "remark", value = "设备描述")
    private String remark;

}
