030e59e
zhenyi
refactor(lib): migrate storage and security tier to central lib/config (auth, cache, db, email, jwt, payment, queue, rate_limit, storage)
030e59e
use std::sync::Arc;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PaymentConfig {
#[serde(default = "default_currency")]
pub currency: String,
#[serde(default = "default_max_pagination")]
pub max_pagination: u64,
#[serde(default)]
pub airwallex: AirwallexConfig,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct AirwallexConfig {
#[serde(default)]
pub base_url: String,
#[serde(default)]
pub client_id: String,
#[serde(default)]
pub api_key: String,
#[serde(default)]
pub webhook_secret: String,
}
pub type SharedPaymentConfig = Arc<PaymentConfig>;
impl Default for PaymentConfig {
fn default() -> Self {
Self {
currency: default_currency(),
max_pagination: default_max_pagination(),
airwallex: AirwallexConfig::default(),
}
}
}
fn default_currency() -> String {
"CNY".to_string()
}
fn default_max_pagination() -> u64 {
100
}