/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.smartapplication.vcdevice.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import org.springblade.core.mp.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 实体类
 *
 * @author BladeX
 * @since 2020-11-12
 */
@Data
@TableName("yc_video_cloud_device")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "VideoCloudDevice对象", description = "VideoCloudDevice对象")
public class VideoCloudDevice extends BaseEntity {

	private static final long serialVersionUID = 1L;

	/**
	* 设备编号
	*/
		@ApiModelProperty(value = "设备编号")
		private String deviceId;
	/**
	* 设备名称
	*/
		@ApiModelProperty(value = "设备名称")
		private String deviceName;
	/**
	* 设备号
	*/
		@ApiModelProperty(value = "设备号")
		private String deviceNum;
	/**
	* 设备密码
	*/
		@ApiModelProperty(value = "设备密码")
		private String devicePassword;
	/**
	* 设备类型(132:IPC;111:DVR;118:NVR,114:解码器)
	*/
		@ApiModelProperty(value = "设备类型(132:IPC;111:DVR;118:NVR,114:解码器)")
		private Integer deviceType;
	/**
	* 型号
	*/
		@ApiModelProperty(value = "型号")
		private String modelSequence;
	/**
	* 协议类型(1:GB28181，2:ONVIF)
	*/
		@ApiModelProperty(value = "协议类型(1:GB28181，2:ONVIF)")
		private String protocolType;
	/**
	* 是否在线(0:不在线，1:在线)
	*/
		@ApiModelProperty(value = "是否在线(0:不在线，1:在线)")
		private Integer isOnline;
	/**
	* 是否支持云存储(0:不支持，1:支持)
	*/
		@ApiModelProperty(value = "是否支持云存储(0:不支持，1:支持)")
		private Integer isSupportCloudStorage;
	/**
	* 是否支持本地存储(0:不支持，1:支持)
	*/
		@ApiModelProperty(value = "是否支持本地存储(0:不支持，1:支持)")
		private Integer isSupportLocalStorage;
	/**
	* 是否支持云台(0:不支持，1:支持)
	*/
		@ApiModelProperty(value = "是否支持云台(0:不支持，1:支持)")
		private Integer isSupportPtz;
	/**
	* 是否支持移动侦测(0:不支持，1:支持)
	*/
		@ApiModelProperty(value = "是否支持移动侦测(0:不支持，1:支持)")
		private Integer isSupportMotionDetection;
	/**
	* 是否支持手动报警(0:不支持，1:支持)
	*/
		@ApiModelProperty(value = "是否支持手动报警(0:不支持，1:支持)")
		private Integer isSupportManualAlarm;
	/**
	* 是否支持外部开关报警(0:不支持，1:支持)
	*/
		@ApiModelProperty(value = "是否支持外部开关报警(0:不支持，1:支持)")
		private Integer isSupportExternalAlarmSwitch;
	/**
	* 设备是否有反转倒置能力(0:否，1:是)
	*/
		@ApiModelProperty(value = "设备是否有反转倒置能力(0:否，1:是)")
		private Integer isHaveInversion;
	/**
	* 云存储类别(0:无云存储，1:电信分布式存储，2:21cn存储)
	*/
		@ApiModelProperty(value = "云存储类别(0:无云存储，1:电信分布式存储，2:21cn存储)")
		private Integer cloudStorageType;
	/**
	* 云存储配置id
	*/
		@ApiModelProperty(value = "云存储配置id")
		private Long cloudStorageConfId;
	/**
	* 视频流获取方式(0:主动推流，1:主动拉取流)
	*/
		@ApiModelProperty(value = "视频流获取方式(0:主动推流，1:主动拉取流)")
		private Integer streamType;
	/**
	* 设备地址
	*/
		@ApiModelProperty(value = "设备地址")
		private String address;
	/**
	* 是否拥有者(0:否，1:是)
	*/
		@ApiModelProperty(value = "是否拥有者(0:否，1:是)")
		private Integer isOwner;
	/**
	* 所属NVR的编号
	*/
		@ApiModelProperty(value = "所属NVR的编号")
		private String parentNvrNum;
	/**
	* 告警状态（0：正常；1：告警）
	*/
		@ApiModelProperty(value = "告警状态（0：正常；1：告警）")
		private Integer alarmStatus;
	/**
	* 经度
	*/
		@ApiModelProperty(value = "经度")
		private String longitude;
	/**
	* 纬度
	*/
		@ApiModelProperty(value = "纬度")
		private String latitude;
	/**
	* 维护人员信息
	*/
		@ApiModelProperty(value = "维护人员信息")
		private String maintainer;
	/**
	* 是否封存，true封存
	*/
		@ApiModelProperty(value = "是否封存，true封存")
		private Integer block;
	/**
	* 封存时间
	*/
		@ApiModelProperty(value = "封存时间")
		private String blockTime;
	/**
	* 路由器id
	*/
		@ApiModelProperty(value = "路由器id")
		private Long routeId;
	/**
	* 摄像头类型 G：枪机 D：球机
	*/
		@ApiModelProperty(value = "摄像头类型 G：枪机 D：球机")
		private String equipType;
	/**
	* 设备最后状态更新时间
	*/
		@ApiModelProperty(value = "设备最后状态更新时间")
		private String updateStateTimeString;
	/**
	* 设备监控位id
	*/
		@ApiModelProperty(value = "设备监控位id")
		private Long districtId;
	/**
	* 存储位置（通过该字段快速查询，所有的子节点）机构树位置
	*/
		@ApiModelProperty(value = "存储位置（通过该字段快速查询，所有的子节点）机构树位置")
		private String orgPosition;
	/**
	* rtsp视频播放地址
	*/
		@ApiModelProperty(value = "rtsp视频播放地址")
		private String rtspUrl;
	/**
	* http-flv视频播放地址
	*/
		@ApiModelProperty(value = "http-flv视频播放地址")
		private String httpFlvUrl;

	/**
	 * flv视频播放地址
	 */
	@ApiModelProperty(value = "flv视频播放地址")
	private String flvUrl;

	/**
	 * m3u8url视频播放地址
	 */
	@ApiModelProperty(value = "m3u8Url视频播放地址")
	private String m3u8Url;

	/**
	 * mp4url视频播放地址
	 */
	@ApiModelProperty(value = "mp4Url视频播放地址")
	private String mp4Url;

	/**
	* 所属账户
	*/
		@ApiModelProperty(value = "所属账户")
		private String accountName;

	/**
	 * 所属账户
	 */
	@ApiModelProperty(value = "旧平台id")
	private String oldId;

	@ApiModelProperty(value = "社区ID")
	private Long agencyId;

	/**
	 * 小区id
	 */
	@ApiModelProperty(value = "小区id")
	private Long residentialId;

	private String tenantId;

	@ApiModelProperty(value = "楼栋id")
	private Long buildingId;

	@ApiModelProperty(value = "视频云设备类型：1-停车监控   2")
	private Integer type;

	@ApiModelProperty(value = "社区名称")
	private String agencyName;

	@ApiModelProperty(value = "小区名称")
	private String residentialName;

	@ApiModelProperty(value = "楼栋名称")
	private String buildingName;
	@ApiModelProperty(value = "集约平台id")
	private  String inhabitantId;

	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String streamId;


}
