package com.easyagents.agent.runtime.hitl;

import java.time.Duration;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 工具执行审批请求。
 */
public class AgentToolApprovalRequest {

    private String approvalPrompt;
    private Duration timeout = Duration.ofMinutes(30);
    private Map<String, Object> metadata = new LinkedHashMap<>();

    /**
     * 获取审批提示文案。
     *
     * @return 审批提示文案
     */
    public String getApprovalPrompt() {
        return approvalPrompt;
    }

    /**
     * 设置审批提示文案。
     *
     * @param approvalPrompt 审批提示文案
     */
    public void setApprovalPrompt(String approvalPrompt) {
        this.approvalPrompt = approvalPrompt;
    }

    /**
     * 获取审批等待超时时间。
     *
     * @return 超时时间
     */
    public Duration getTimeout() {
        return timeout;
    }

    /**
     * 设置审批等待超时时间。
     *
     * @param timeout 超时时间
     */
    public void setTimeout(Duration timeout) {
        this.timeout = timeout == null ? Duration.ofMinutes(30) : timeout;
    }

    /**
     * 获取审批元数据。
     *
     * @return 审批元数据
     */
    public Map<String, Object> getMetadata() {
        return metadata;
    }

    /**
     * 设置审批元数据。
     *
     * @param metadata 审批元数据
     */
    public void setMetadata(Map<String, Object> metadata) {
        this.metadata = metadata == null ? new LinkedHashMap<>() : metadata;
    }
}
