package com.gzzm.lobster.tool.mcp;

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

public class McpCallResult {
    private boolean error;
    private String message;
    private List<Object> content = Collections.emptyList();
    private Object structuredContent;
    private Map<String, Object> annotations = Collections.emptyMap();

    public static McpCallResult error(String message) {
        McpCallResult r = new McpCallResult();
        r.setError(true);
        r.setMessage(message);
        return r;
    }

    public boolean isError() { return error; }
    public void setError(boolean error) { this.error = error; }
    public String getMessage() { return message; }
    public void setMessage(String message) { this.message = message; }
    public List<Object> getContent() { return content; }
    public void setContent(List<Object> content) {
        this.content = content == null ? Collections.<Object>emptyList() : content;
    }
    public Object getStructuredContent() { return structuredContent; }
    public void setStructuredContent(Object structuredContent) { this.structuredContent = structuredContent; }
    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);
    }
}
