package com.usky.ids.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 报警信息表
 * </p>
 *
 * @author han
 * @since 2025-03-10
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class AccessAlarm implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 报警ID
     */
    @TableId(value = "alarm_id", type = IdType.AUTO)
    private Long alarmId;

    /**
     * 报警等级
     */
    private String alarmLevel;

    /**
     * 报警详情
     */
    private String alarmDetails;

    /**
     * 报警位置
     */
    private String alarmLocation;

    /**
     * 报警区域
     */
    private String regionIndexCode;

    /**
     * 监控点名称
     */
    private String cameraName;

    /**
     * 监控点唯一编码
     */
    private String cameraIndexCode;

    /**
     * 报警来源算法类型
     */
    private String alarmSourceAlgorithmType;

    /**
     * 报警图片 
     */
    private String alarmPhoto;

    /**
     * 报警视频 
     */
    private String alarmVideo;

    /**
     * 报警类型（1车辆违停2车辆拥堵 3车辆违停占道 4吸烟 5人员摔倒 6杂物堆放 7人员聚集 8火焰识别算法）
     */
    private String alarmType;

    /**
     * 状态(0未处理 1已处理)
     */
    private String alarmStatus;

    /**
     * 处理时间
     */
    private LocalDateTime processTime;

    /**
     * 拥堵等级（1绿色 2黄色 3红色）
     */
    private Integer congestionLevel;

    /**
     * 报警时间
     */
    private LocalDateTime alarmTime;

    /**
     * 报警消除时间（算法自动识别）
     */
    private LocalDateTime cleanAlarmTime;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 备注
     */
    private String remark;

    /**
     * 已读状态（0 未读 1 已读）
     */
    private String readStatus;

    /**
     * 已读时间
     */
    private LocalDateTime readTime;


}
