use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct QdrantConfig {
pub url: String,
pub collection_name: String,
pub embedding_dim: Option<usize>,
pub timeout_secs: u64,
pub api_key: Option<String>,
pub tenant_id: Option<String>,
}
impl Default for QdrantConfig {
fn default() -> Self {
Self {
url: "http://localhost:6334".to_string(),
collection_name: "cortex-mem".to_string(),
embedding_dim: None,
timeout_secs: 30,
api_key: std::env::var("QDRANT_API_KEY").ok(),
tenant_id: None, }
}
}
impl QdrantConfig {
pub fn get_collection_name(&self) -> String {
if let Some(tenant_id) = &self.tenant_id {
format!("{}_{}", self.collection_name, tenant_id)
} else {
self.collection_name.clone()
}
}
pub fn with_tenant(mut self, tenant_id: impl Into<String>) -> Self {
self.tenant_id = Some(tenant_id.into());
self
}
}