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

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.pavis.admin.common.model.resp.BaseDetailResp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;

/**
 * 智能体详情信息
 *
 * @author semi
 * @since 2025/05/26 17:28
 */
@Data
@ExcelIgnoreUnannotated
@Schema(description = "智能体详情信息")
public class AgentDetailResp extends BaseDetailResp {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 智能体名称
     */
    @Schema(description = "智能体名称")
    @ExcelProperty(value = "智能体名称")
    private String name;

    /**
     * 智能体唯一标识码
     */
    @Schema(description = "智能体唯一标识码")
    @ExcelProperty(value = "智能体唯一标识码")
    private String code;

    /**
     * 智能体类型:assistant/task/workflow
     */
    @Schema(description = "智能体类型:assistant/task/workflow")
    @ExcelProperty(value = "智能体类型:assistant/task/workflow")
    private String agentType;

    /**
     * 智能体描述
     */
    @Schema(description = "智能体描述")
    @ExcelProperty(value = "智能体描述")
    private String description;

    /**
     * 智能体提示词
     */
    @Schema(description = "智能体提示词")
    @ExcelProperty(value = "智能体提示词")
    private String systemPrompt;

    /**
     * 智能体执行下一步任务的提示词
     */
    @Schema(description = "智能体执行下一步任务的提示词")
    @ExcelProperty(value = "智能体执行下一步任务的提示词")
    private String nextStepPrompt;

    /**
     * 关联模型ID
     */
    @Schema(description = "关联模型ID")
    @ExcelProperty(value = "关联模型ID")
    private Long modelId;

    /**
     * 图标URL
     */
    @Schema(description = "图标URL")
    @ExcelProperty(value = "图标URL")
    private String icon;

    /**
     * 配置参数
     */
    @Schema(description = "配置参数")
    @ExcelProperty(value = "配置参数")
    private String config;

    /**
     * 最大步骤数
     */
    @Schema(description = "最大步骤数")
    @ExcelProperty(value = "最大步骤数")
    private Integer maxSteps;

    /**
     * 执行超时时间(秒)
     */
    @Schema(description = "执行超时时间(秒)")
    @ExcelProperty(value = "执行超时时间(秒)")
    private Integer timeout;

    /**
     * 状态（1：启用；0：禁用）
     */
    @Schema(description = "状态（1：启用；0：禁用）")
    @ExcelProperty(value = "状态（1：启用；0：禁用）")
    private Integer status;

    /**
     * 版本号
     */
    @Schema(description = "版本号")
    @ExcelProperty(value = "版本号")
    private String version;
}