/*
 *      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.device.entity;

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

import javax.validation.constraints.NotBlank;

/**
 * 实体类
 *
 * @author BladeX
 * @since 2021-12-06
 */
@Data
@TableName("smart_gb_device_channel")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "GbDeviceChannel对象", description = "GbDeviceChannel对象")
public class GbDeviceChannel extends BaseEntity {

	private static final long serialVersionUID = 1L;

	/**
	* 通道ID
	*/
		@ApiModelProperty(value = "通道ID")
		private String channelId;
	/**
	* 设备ID，设备可以是IPC或者NVR
	*/
	@NotBlank
		@ApiModelProperty(value = "设备ID，设备可以是IPC或者NVR")
		private String deviceId;
	/**
	* 通道名称
	*/
		@ApiModelProperty(value = "通道名称")
		private String name;
	/**
	* 通道厂家
	*/
		@ApiModelProperty(value = "通道厂家")
		private String manufacture;
	/**
	* 型号
	*/
		@ApiModelProperty(value = "型号")
		private String model;
	/**
	* 通道地址
	*/
		@ApiModelProperty(value = "通道地址")
		private String address;
	/**
	* 父级ID
	*/
		@ApiModelProperty(value = "父级ID")
	private String parentId;
	/**
	* IP
	*/
		@ApiModelProperty(value = "IP")
	private String ipAddress;
	/**
	* 端口号
	*/
		@ApiModelProperty(value = "端口号")
		private Integer port;

	/**
	 * 是否告警
	 * 1：是
	 * 0：否
	 */
	@ApiModelProperty(value = "是否告警")
	private Integer isAlarm;
	/**
	* 云台类型：0 - 未知, 1 - 球机, 2 - 半球，3 - 固定枪机, 4 - 遥控枪机
	*/
		@ApiModelProperty(value = "云台类型：0 - 未知, 1 - 球机, 2 - 半球，3 - 固定枪机, 4 - 遥控枪机")
		private Integer ptzType;
	/**
	* 经度
	*/
		@ApiModelProperty(value = "经度")
		private String longitude;
	/**
	* 纬度
	*/
		@ApiModelProperty(value = "纬度")
		private String latitude;
	/**
	* 流唯一编号，存在表示正在直播
	*/
	@TableField(updateStrategy = FieldStrategy.IGNORED)
		@ApiModelProperty(value = "流唯一编号，存在表示正在直播")
	private String streamId;
	/**
	* 是否有子设备，1有, 0没有
	*/
		@ApiModelProperty(value = "是否有子设备，1有, 0没有")
		private Integer parental;
	/**
	* 是否有音频，0无，1有
	*/
		@ApiModelProperty(value = "是否有音频，0无，1有")
	private Boolean hasAudio;

	/**
	 * 园区id
	 */
	@ApiModelProperty(value = "园区ID")
	private Long agencyId;
	/**
	 * 区域ID
	 */
	@ApiModelProperty(value = "区域ID")
	private Long residentialId;
	/**
	 * 所属楼栋
	 */
	@ApiModelProperty(value = "所属楼栋")
	private Long buildingId;

	/**
	 * 所属楼层
	 */
	@ApiModelProperty(value = "所属楼层")
	private Long floorId;

	/**
	 * 安装具体位置
	 */
	@ApiModelProperty(value = "安装具体位置")
	private String installAddress;

	/**
	 * 通道号
	 */
	private String channelNo;

	private String tenantId;


}
