package com.sz.admin.monitor.pojo.po;

import com.mybatisflex.annotation.*;
import com.sz.mysql.EntityChangeListener;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.io.Serial;
import java.time.LocalDateTime;

/**
 * <p>
 * 变电站摄像头业务表
 * </p>
 *
 * @author sz
 * @since 2026-02-03
 */
@Data
@Table(value = "ry_camera", onInsert = EntityChangeListener.class, onUpdate = EntityChangeListener.class)
@Schema(description = "变电站摄像头业务表")
public class Camera implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Id(keyType = KeyType.Auto)
    @Schema(description = "主键ID")
    private Long id;

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

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

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

    @Schema(description = "边缘盒子的id")
    private Long boxId;

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

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

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

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

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

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

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

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

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

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

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

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

    @Schema(description = "在线状态：1-在线, 0-离线")
    private Integer status;
    /**
     * 逻辑删除标识：0-正常，1-已删除
     */
    @Column(isLogicDelete = true)
    @Schema(description = "是否删除")
    private String isDeleted;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

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

}