use crate::Environment;
use std::collections::HashMap;
use std::time::Duration;
#[derive(Debug, Clone)]
pub struct ClientConfig {
pub base_url: String,
pub api_key: Option<String>,
pub timeout: Duration,
pub max_retries: u32,
pub custom_headers: HashMap<String, String>,
pub user_agent: String,
pub reqwest_client: Option<reqwest::Client>,
}
impl Default for ClientConfig {
fn default() -> Self {
Self {
base_url: Environment::default().url().to_string(),
api_key: std::env::var("ALGUNA_API_KEY").ok(),
timeout: Duration::from_secs(60),
max_retries: 2,
custom_headers: HashMap::from([(
crate::ext::VERSION_HEADER.to_string(),
"2026-04-01".to_string(),
)]),
user_agent: concat!("alguna-rust/", env!("CARGO_PKG_VERSION")).to_string(),
reqwest_client: None,
}
}
}