package com.sz.admin.monitor.pojo.vo.camera;

import cn.idev.excel.annotation.ExcelProperty;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * ClassName: CameraVO
 * Package: com.sz.admin.monitor.pojo.vo
 * Description:
 */
@Data
@Schema(description = "camera返回vo")
public class CameraVO {
    @Schema(description = "主键ID")
    private Long id;

    @Schema(description = "摄像头名称")
    private String name;

    @Schema(description = "摄像机编号")
    private String cameraNo;

    @Schema(description = "所属 NVR")
    private Long nvrId;

    @Schema(description = "边缘盒子的id")
    private Long boxId;
    @Schema(description = "所属 NVR的名称")
    private String nvrName;

    @Schema(description = "通道号")
    private Integer channelId;

    @Schema(description = "摄像头地址")
    private String ipAddress;

    @Schema(description = "1-可见光 2-热成像")
    private Integer videoType;

    @Schema(description = "0-枪机 1-球体")
    private Integer type;

    @ExcelProperty(value = "摄像头id")
    @Schema(description = "摄像头id")
    private String cameraId;

    @Schema(description = "基准图")
    private String homeImagePath;

    @Schema(description = "是否开启巡检 0-关闭，1-开启")
    private Integer enableInspection;

    @Schema(description = "守望位 1-开启,0-关闭")
    private Integer watchfulState;

    @Schema(description = "守望归位的时间（单位秒）")
    private Integer watchfulTime;

    @Schema(description = "守望归位的预置位")
    private Integer watchfulIndex;

    @Schema(description = "通道类型 0-海康 1-大华")
    private Integer channelDriver;

    @Schema(description = "具体安装位置")
    private String installLocation;

    @Schema(description = "排序号")
    private Integer sortOrder;

    @Schema(description = "在线状态：1-在线, 0-离线")
    private Integer status;

    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

    @Schema(description = "rtsp流")
    private String rtsp;

    @Schema(description = "算法列表")
    private List<Integer> algInfo;
    @Data
    public static class CameraTypeEnum {

        private long id;

        private String cameraId;

    }

}
