package com.cmvr.inspection.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import com.cmvr.common.annotation.Excel;
import com.cmvr.common.core.domain.BaseEntity;

import java.util.Date;

/**
 * 巡检告警对象 inspection_alarm
 * 
 * @author cmvr-iot
 * @since 2026-05-29
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ApiModel("巡检告警")
public class InspectionAlarm extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("id")
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    @Excel(name = "告警编码")
    @ApiModelProperty("告警编码")
    private String alarmCode;

    @Excel(name = "任务执行实例ID")
    @ApiModelProperty("任务执行实例ID")
    private String taskInstanceId;

    @Excel(name = "任务ID")
    @ApiModelProperty("任务ID")
    private String taskId;

    @Excel(name = "任务名称")
    @ApiModelProperty("任务名称")
    private String taskName;

    @Excel(name = "机器人ID")
    @ApiModelProperty("机器人ID")
    private String robotId;

    @Excel(name = "机器人名称")
    @ApiModelProperty("机器人名称")
    private String robotName;

    @Excel(name = "告警级别")
    @ApiModelProperty("告警级别(1提示 2警告 3严重)")
    private String alarmLevel;

    @Excel(name = "告警类型")
    @ApiModelProperty("告警类型(1设备异常 2环境异常 3任务异常 4通信异常)")
    private String alarmType;

    @Excel(name = "告警标题")
    @ApiModelProperty("告警标题")
    private String alarmTitle;

    @Excel(name = "告警内容")
    @ApiModelProperty("告警内容")
    private String alarmContent;

    @Excel(name = "告警位置")
    @ApiModelProperty("告警位置")
    private String alarmLocation;

    @Excel(name = "告警时间")
    @ApiModelProperty("告警时间")
    private Date alarmTime;

    @Excel(name = "处理状态")
    @ApiModelProperty("处理状态(0未处理 1处理中 2已处理 3已忽略)")
    private String handleStatus;

    @Excel(name = "处理人")
    @ApiModelProperty("处理人")
    private String handler;

    @Excel(name = "处理时间")
    @ApiModelProperty("处理时间")
    private Date handleTime;

    @Excel(name = "处理说明")
    @ApiModelProperty("处理说明")
    private String handleRemark;

    @ApiModelProperty("图片证据")
    private String evidenceImage;

}
