package tech.easyflow.agent.runtime;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;

/**
 * Agent 管理端运行请求。
 */
public class AgentChatRequest {

    private BigInteger agentId;
    private BigInteger sessionId;
    private String prompt;
    private List<String> imageUploadIds = new ArrayList<>();
    private List<AgentChatCapability> capabilities = new ArrayList<>();

    /**
     * 获取 Agent ID。
     *
     * @return Agent ID
     */
    public BigInteger getAgentId() { return agentId; }

    /**
     * 设置 Agent ID。
     *
     * @param agentId Agent ID
     */
    public void setAgentId(BigInteger agentId) { this.agentId = agentId; }

    /**
     * 获取会话 ID。
     *
     * @return 会话 ID
     */
    public BigInteger getSessionId() { return sessionId; }

    /**
     * 设置会话 ID。
     *
     * @param sessionId 会话 ID
     */
    public void setSessionId(BigInteger sessionId) { this.sessionId = sessionId; }

    /**
     * 获取用户纯文本输入。
     *
     * @return 用户输入
     */
    public String getPrompt() { return prompt; }

    /**
     * 设置用户纯文本输入。
     *
     * @param prompt 用户输入
     */
    public void setPrompt(String prompt) { this.prompt = prompt; }

    /**
     * 获取本轮临时图片上传 ID。
     *
     * @return 图片上传 ID
     */
    public List<String> getImageUploadIds() { return imageUploadIds; }

    /**
     * 设置本轮临时图片上传 ID。
     *
     * @param imageUploadIds 图片上传 ID
     */
    public void setImageUploadIds(List<String> imageUploadIds) {
        this.imageUploadIds = imageUploadIds == null ? new ArrayList<>() : new ArrayList<>(imageUploadIds);
    }

    /**
     * 获取本次聊天启用的临时能力。
     *
     * @return 临时能力列表
     */
    public List<AgentChatCapability> getCapabilities() {
        return capabilities;
    }

    /**
     * 设置本次聊天启用的临时能力。
     *
     * @param capabilities 临时能力列表
     */
    public void setCapabilities(List<AgentChatCapability> capabilities) {
        this.capabilities = capabilities == null ? new ArrayList<>() : new ArrayList<>(capabilities);
    }
}
