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.Builder;
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_task_log
 * 
 * @author cmvr-iot
 * @since 2026-06-05
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Builder
@ApiModel("巡检任务执行日志")
public class InspectionTaskLog extends BaseEntity
{
    private static final long serialVersionUID = 1L;

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

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

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

    @Excel(name = "检查项id")
    @ApiModelProperty("检查项id")
    private String itemId;

    @Excel(name = "节点ID")
    @ApiModelProperty("节点ID")
    private String nodeId;

    @Excel(name = "节点名称")
    @ApiModelProperty("节点名称")
    private String nodeName;

    @Excel(name = "日志类型")
    @ApiModelProperty("日志类型(1文字 2图片 3视频 4音频)")
    private Integer logType;

    @Excel(name = "日志内容")
    @ApiModelProperty("日志内容/文字描述")
    private String logContent;

    @Excel(name = "媒体URL")
    @ApiModelProperty("媒体文件URL(图片/视频/音频)")
    private String mediaUrl;

    @Excel(name = "状态")
    @ApiModelProperty("执行状态(0待执行 1执行中 2已完成 3已取消 4执行失败 5已暂停)")
    private Integer status;

    @Excel(name = "进度")
    @ApiModelProperty("执行进度(百分比)")
    private Double progress;

    @Excel(name = "日志时间")
    @ApiModelProperty("日志时间")
    private Date logTime;

    @Excel(name = "扩展信息")
    @ApiModelProperty("扩展信息(JSON格式)")
    private String extraInfo;
}
