use serde::{Deserialize, Serialize};
use crate::types::{BankName, Bic, Blz, FinTSUrl};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BankConfig {
pub name: BankName,
pub blz: Blz,
pub bic: Bic,
pub url: FinTSUrl,
}
impl BankConfig {
pub fn new(
name: impl Into<String>,
blz: impl Into<String>,
bic: impl Into<String>,
url: impl Into<String>,
) -> Self {
Self {
name: BankName::new(name),
blz: Blz::new(blz),
bic: Bic::new(bic),
url: FinTSUrl::new(url),
}
}
pub fn new_raw(
blz: impl Into<String>,
bic: impl Into<String>,
name: impl Into<String>,
url: impl Into<String>,
) -> Self {
Self {
blz: Blz::new(blz),
bic: Bic::new(bic),
name: BankName::new(name),
url: FinTSUrl::new(url),
}
}
}
pub fn all_banks() -> Vec<BankConfig> {
crate::banks_generated::generated_all_banks()
}
pub fn bank_by_blz(blz: &str) -> Option<BankConfig> {
crate::banks_generated::generated_bank_by_blz(blz)
}