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

import com.mybatisflex.annotation.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.io.Serial;

import com.sz.mysql.EntityChangeListener;

import java.time.LocalDateTime;

/**
 * <p>
 * 告警工单表
 * </p>
 *
 * @author Lz
 * @since 2026-02-10
 */
@Data
@Table(value = "ry_camera_alarm", onInsert = EntityChangeListener.class, onUpdate = EntityChangeListener.class)
@Schema(description = "告警工单表")
public class CameraAlarm implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

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

    @Schema(description = "摄像头ID")
    private Long cameraId;

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

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

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

    @Schema(description = "关联的预置位号")
    private Integer presetIndex;

    @Schema(description = "告警区域id")
    private Long alarmAreaId;

    @Schema(description = "报警类型: 1-移位, 2-明烟明火报警,3-人脸识别,4-脸部抓拍,5-安全帽检测")
    private Integer alarmType;

    @Schema(description = "基准图路径 ")
    private String baseImage;

    @Schema(description = "抓拍图路径")
    private String captureImage;

    @Schema(description = "算法返回的详细JSON")
    private String algoResult;
    @Schema(description = "违规描述")
    private String summary;
    @Schema(description = "任务描述")
    private String taskDesc;
    @Schema(description = "任务会话")
    private String taskSession;
    @Schema(description = "报警盒子IP")
    private String boardIp;
    @Schema(description = "状态: 0-未处理, 1-已忽略, 2-已修复")
    private Integer status;
    @Schema(description = "处理时间")
    private LocalDateTime handleTime;

    @Schema(description = "处理人")
    private String handleBy;

    @Schema(description = "处理备注")
    private String handleRemark;

    @Schema(description = "")
    private LocalDateTime createTime;

}