package com.pavis.admin.aigc.model.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.pavis.admin.common.model.entity.BaseDO;
import lombok.Data;

import java.io.Serial;
import java.time.LocalDateTime;

/**
 * 智能体规划步骤记录实体
 *
 * @author semi
 * @since 2025/05/29 12:50
 */
@Data
@TableName("aigc_agent_plan_step")
public class AgentPlanStepDO extends BaseDO {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 计划ID
     */
    private Long planId;

    /**
     * 计划描述:[BROWSER_AGENT] 打开百度主页
     */
    private String description;

    /**
     * 步骤序号
     */
    private Integer stepIndex;

    /**
     * 本次计划要使用的智能体:[BROWSER_AGENT]
     */
    private String agentCode;

    /**
     * 智能体思考开始的时间戳
     */
    private LocalDateTime thinkStartTime;

    /**
     * 智能体思考结束的时间戳
     */
    private LocalDateTime thinkEndTime;

    /**
     * 智能体思考时输入的上下文
     */
    private String thinkInput;

    /**
     * 智能体思考时输出的上下文
     */
    private String thinkOutput;

    /**
     * 智能体思考时长（秒）
     */
    private Long thinkDuration;

    /**
     * 智能体思考是否需要执行步骤 0否 1是
     */
    private Boolean executionNeeded;

    /**
     * 此步骤执行参数
     */
    private String executionParams;

    /**
     * 智能体执行开始的时间戳
     */
    private LocalDateTime executionStartTime;

    /**
     * 智能体执行结束的时间戳
     */
    private LocalDateTime executionEndTime;

    /**
     * 智能体执行时长（秒）
     */
    private Long executionDuration;

    /**
     * 步骤执行的工具名称
     */
    private String toolName;

    /**
     * 步骤执行的工具参数
     */
    private String toolParameters;

    /**
     * 步骤执行结果
     */
    private String result;

    /**
     * 步骤执行的状态
     */
    private String status;

    /**
     * 此步骤是否完成
     */
    private Boolean completed;

    /**
     * 智能体是否卡住
     */
    private Boolean stucked;

    /**
     * 错误描述
     */
    private String errorMessage;
}
