package com.easyagents.agent.runtime.knowledge;

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

/**
 * 知识库检索结果。
 */
public class AgentKnowledgeRetrievalResult {

    private List<AgentKnowledgeDocument> documents = new ArrayList<>();
    private Map<String, Object> metadata = new LinkedHashMap<>();

    /**
     * 根据检索文档创建结果。
     *
     * @param documents 检索文档
     * @return 检索结果
     */
    public static AgentKnowledgeRetrievalResult of(List<AgentKnowledgeDocument> documents) {
        AgentKnowledgeRetrievalResult result = new AgentKnowledgeRetrievalResult();
        result.setDocuments(documents);
        return result;
    }

    /**
     * 获取文档列表。
     *
     * @return 文档列表
     */
    public List<AgentKnowledgeDocument> getDocuments() {
        return documents;
    }

    /**
     * 设置文档列表。
     *
     * @param documents 文档列表
     */
    public void setDocuments(List<AgentKnowledgeDocument> documents) {
        this.documents = documents == null ? new ArrayList<>() : documents;
    }

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

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