package com.easyagents.rag.retrieval;

import java.util.HashMap;
import java.util.Map;

public class RagQuery {

    private String query;
    private RetrievalMode retrievalMode = RetrievalMode.HYBRID;
    private Integer topK = 10;
    private Double minScore;
    private Map<String, Object> attributes = new HashMap<String, Object>();

    public String getQuery() {
        return query;
    }

    public void setQuery(String query) {
        this.query = query;
    }

    public RetrievalMode getRetrievalMode() {
        return retrievalMode;
    }

    public void setRetrievalMode(RetrievalMode retrievalMode) {
        this.retrievalMode = retrievalMode == null ? RetrievalMode.HYBRID : retrievalMode;
    }

    public Integer getTopK() {
        return topK;
    }

    public void setTopK(Integer topK) {
        this.topK = topK == null || topK <= 0 ? 10 : topK;
    }

    public Double getMinScore() {
        return minScore;
    }

    public void setMinScore(Double minScore) {
        this.minScore = minScore;
    }

    public Map<String, Object> getAttributes() {
        return attributes;
    }

    public void setAttributes(Map<String, Object> attributes) {
        this.attributes = attributes == null ? new HashMap<String, Object>() : attributes;
    }
}
