use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ContextsConfig {
#[serde(default = "default_event_bus")]
pub event_bus: String,
#[serde(default = "default_auth_context")]
pub authentication: String,
#[serde(default = "default_storage_context")]
pub file_storage: String,
#[serde(default)]
pub redis_event_bus: Option<RedisEventBusConfig>,
}
fn default_event_bus() -> String { "in_memory".to_string() }
fn default_auth_context() -> String { "sapiens".to_string() }
fn default_storage_context() -> String { "bucket".to_string() }
impl Default for ContextsConfig {
fn default() -> Self {
Self {
event_bus: default_event_bus(),
authentication: default_auth_context(),
file_storage: default_storage_context(),
redis_event_bus: None,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RedisEventBusConfig {
pub url: String,
#[serde(default)]
pub channel_prefix: Option<String>,
#[serde(default)]
pub max_connections: Option<u32>,
}