package com.cmvr.aima.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.*;
import com.cmvr.common.annotation.Excel;
import com.cmvr.common.core.domain.BaseEntity;

import java.util.Date;

/**
 * 爱玛测试日志对象 aima_test_log
 * 
 * @author cmvr-iot
 * @since 2026-06-22
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ApiModel("爱玛测试日志")
@Builder
public class AimaTestLog 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 = "任务名称")
    @ApiModelProperty("任务名称")
    private String taskName;

    @Excel(name = "测试用例ID")
    @ApiModelProperty("测试用例ID")
    private String testCaseId;

    @Excel(name = "用例名称")
    @ApiModelProperty("用例名称")
    private String caseName;

    @Excel(name = "日志级别")
    @ApiModelProperty("日志级别(DEBUG/INFO/WARN/ERROR)")
    private String logLevel;

    @Excel(name = "日志类型")
    @ApiModelProperty("日志类型(执行日志/系统日志/异常日志)")
    private String logType;

    @Excel(name = "日志内容")
    @ApiModelProperty("日志内容")
    private String logContent;

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

    @Excel(name = "执行步骤")
    @ApiModelProperty("执行步骤")
    private String executionStep;

    @Excel(name = "实际结果")
    @ApiModelProperty("实际结果")
    private String actualResult;

    @Excel(name = "测试结果")
    @ApiModelProperty("测试结果(0未执行 1通过 2失败 3跳过)")
    private String testStatus;

    @ApiModelProperty("截图URL")
    private String screenshotUrl;

    @ApiModelProperty("视频URL")
    private String videoUrl;

    @ApiModelProperty("错误堆栈")
    private String errorStack;

    @Excel(name = "执行耗时")
    @ApiModelProperty("执行耗时(毫秒)")
    private Long durationMs;

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

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

}
