package com.easyagents.agent.runtime.message;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 工具调用内容块。
 */
public class AgentToolUseBlock extends AgentContentBlock {

    private String id;
    private String name;
    private Map<String, Object> input = new LinkedHashMap<>();
    private String content;

    /**
     * 创建工具调用块。
     *
     * @param id 调用ID
     * @param name 工具名
     * @param input 输入参数
     */
    public AgentToolUseBlock(String id, String name, Map<String, Object> input) {
        super(AgentContentBlockType.TOOL_USE);
        this.id = id;
        this.name = name;
        setInput(input);
    }

    /**
     * 获取调用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 Map<String, Object> getInput() {
        return input;
    }

    /**
     * 设置输入参数。
     *
     * @param input 输入参数
     */
    public void setInput(Map<String, Object> input) {
        this.input = input == null ? new LinkedHashMap<>() : new LinkedHashMap<>(input);
    }

    /**
     * 获取原始内容。
     *
     * @return 原始内容
     */
    public String getContent() {
        return content;
    }

    /**
     * 设置原始内容。
     *
     * @param content 原始内容
     */
    public void setContent(String content) {
        this.content = content;
    }
}
