package com.gzzm.lobster.tool.mcp;

import com.gzzm.lobster.common.ToolRiskLevel;

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

public class McpToolSpec {
    private String name;
    private String title;
    private String description;
    private Map<String, Object> inputSchema = Collections.emptyMap();
    private Map<String, Object> outputSchema = Collections.emptyMap();
    private Map<String, Object> annotations = Collections.emptyMap();
    private ToolRiskLevel riskLevel;
    private boolean requireConfirm;

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public String getTitle() { return title; }
    public void setTitle(String title) { this.title = title; }
    public String getDescription() { return description; }
    public void setDescription(String description) { this.description = description; }
    public Map<String, Object> getInputSchema() { return inputSchema; }
    public void setInputSchema(Map<String, Object> inputSchema) {
        this.inputSchema = inputSchema == null ? Collections.<String, Object>emptyMap() : new LinkedHashMap<>(inputSchema);
    }
    public Map<String, Object> getOutputSchema() { return outputSchema; }
    public void setOutputSchema(Map<String, Object> outputSchema) {
        this.outputSchema = outputSchema == null ? Collections.<String, Object>emptyMap() : new LinkedHashMap<>(outputSchema);
    }
    public Map<String, Object> getAnnotations() { return annotations; }
    public void setAnnotations(Map<String, Object> annotations) {
        this.annotations = annotations == null ? Collections.<String, Object>emptyMap() : new LinkedHashMap<>(annotations);
    }
    public ToolRiskLevel getRiskLevel() { return riskLevel; }
    public void setRiskLevel(ToolRiskLevel riskLevel) { this.riskLevel = riskLevel; }
    public boolean isRequireConfirm() { return requireConfirm; }
    public void setRequireConfirm(boolean requireConfirm) { this.requireConfirm = requireConfirm; }
}
