package org.dromara.inspection.domain.bo;

import jakarta.validation.Valid;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 步骤执行记录树形业务对象
 *
 * @author Lion Li
 * @date 2025-01-13
 */
@Data
public class ArStepRecordTreeBo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 步骤ID（仅用于引用）
     */
    private Long id;

    /**
     * 执行记录ID（用于更新现有记录）
     */
    private Long recordId;

    /**
     * 执行状态(pending/completed/skipped)
     */
    private String recordStatus;

    /**
     * 是否完成(0否 1是)
     */
    private String isDone;

    /**
     * 开始时间
     */
    private Date startTime;

    /**
     * 完成时间
     */
    private Date completionTime;

    /**
     * 耗时(秒)
     */
    private Integer duration;

    /**
     * 文本反馈
     */
    private String textFeedback;

    /**
     * 语音识别文本
     */
    private String voiceText;

    /**
     * AI识别结果(JSON)
     */
    private String aiResult;

    /**
     * 执行人ID
     */
    private Long executorId;

    /**
     * 执行人姓名
     */
    private String executorName;

    /**
     * 子步骤列表
     */
    @Valid
    private List<ArStepRecordTreeBo> children;

}
