package com.lutao.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.lutao.annotate.Validation;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

@Data
@TableName("video_equipment_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "视频设备信息表")
public class VideoEquipmentInfo extends Model<VideoEquipmentInfo> {
    private static final long serialVersionUID = 6874292445934325997L;

    @ApiModelProperty(value = "ID")
    @TableId
    private Integer id;

    @ApiModelProperty(value = "原始ID")
    @Validation(message = "video_equipment_info表{id}不能为空")
    private String originId;

    @ApiModelProperty(value = "应用ID")
    private String appId;

    @ApiModelProperty(value = "平台编码")
    @Validation(message = "video_equipment_info表{platform_code}不能为空")
    private String platformCode;

    @ApiModelProperty(value = "设施名称")
    private String facilityName;

    @ApiModelProperty(value = "设施编码")
    private String facilityCode;

    @ApiModelProperty(value = "设备名称")
    private String equipName;

    @ApiModelProperty(value = "设备编码")
    private String equipCode;

    @ApiModelProperty(value = "安装位置名称")
    @Validation(message = "video_equipment_info表{area_name}不能为空")
    private String areaName;

    @ApiModelProperty(value = "监控点名称")
    @Validation(message = "video_equipment_info表{camera_name}不能为空")
    private String cameraName;

    @ApiModelProperty(value = "监控点唯一标识")
    @Validation(message = "video_equipment_info表{camera_index}不能为空")
    private String cameraIndex;

    @ApiModelProperty(value = "视频设备类型: 1.云台枪机，2.快球，3.枪机，4.半球，10.其他")
    @Validation(message = "video_equipment_info表{video_device_type}不能为空")
    private String videoDeviceType;

    @ApiModelProperty(value = "在线状态: 0.离线，1.在线")
    @Validation(message = "video_equipment_info表{online_status}不能为空")
    private String onlineStatus;

    @ApiModelProperty(value = "创建日期")
    private LocalDateTime createDate;

    @ApiModelProperty(value = "创建人")
    private String createBy;

    @ApiModelProperty(value = "更新日期")
    private LocalDateTime updateDate;

    @ApiModelProperty(value = "更新人")
    private String updateBy;


    @ApiModelProperty(value = "数据收集时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    @ApiModelProperty(value = "数据更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
