use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Default, Serialize, Deserialize)] #[serde(default)] pub struct EmailRpcConfig { pub endpoint: String, pub rpc_key: String, pub timeout_ms: Option, } impl EmailRpcConfig { pub fn enabled(&self) -> bool { !self.endpoint.is_empty() } pub fn timeout_ms(&self) -> u64 { self.timeout_ms.unwrap_or(2000) } } #[derive(Debug, Clone, Default, Serialize, Deserialize)] #[serde(default)] pub struct EmailConfig { pub default_locale: Option, pub rpc: EmailRpcConfig, } impl EmailConfig { pub fn default_locale(&self) -> &str { self.default_locale.as_deref().unwrap_or("en") } }