package com.easyagents.agent.runtime.message;

import java.util.ArrayList;
import java.util.List;

/**
 * 工具结果内容块。
 */
public class AgentToolResultBlock extends AgentContentBlock {

    private String id;
    private String name;
    private List<AgentContentBlock> output = new ArrayList<>();
    private boolean suspended;

    /**
     * 创建工具结果块。
     *
     * @param id 调用ID
     * @param name 工具名
     */
    public AgentToolResultBlock(String id, String name) {
        super(AgentContentBlockType.TOOL_RESULT);
        this.id = id;
        this.name = name;
    }

    /**
     * 获取调用ID。
     *
     * @return 调用ID
     */
    public String getId() {
        return id;
    }

    /**
     * 设置调用ID。
     *
     * @param id 调用ID
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取工具名。
     *
     * @return 工具名
     */
    public String getName() {
        return name;
    }

    /**
     * 设置工具名。
     *
     * @param name 工具名
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取输出块列表。
     *
     * @return 输出块列表
     */
    public List<AgentContentBlock> getOutput() {
        return output;
    }

    /**
     * 设置输出块列表。
     *
     * @param output 输出块列表
     */
    public void setOutput(List<AgentContentBlock> output) {
        this.output = output == null ? new ArrayList<>() : new ArrayList<>(output);
    }

    /**
     * 是否挂起。
     *
     * @return 是否挂起
     */
    public boolean isSuspended() {
        return suspended;
    }

    /**
     * 设置挂起状态。
     *
     * @param suspended 挂起状态
     */
    public void setSuspended(boolean suspended) {
        this.suspended = suspended;
    }
}
