use {
crate::models,
serde::{Deserialize, Serialize},
};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum AdditionalInfoRequestAdditionalInfo {
IbanPaymentInfo(models::IbanPaymentInfo),
AbaPaymentInfo(models::AbaPaymentInfo),
SpeiBasicPaymentInfo(models::SpeiBasicPaymentInfo),
SpeiAdvancedPaymentInfo(models::SpeiAdvancedPaymentInfo),
PixPaymentInfo(models::PixPaymentInfo),
SepaPaymentInfo(models::SepaPaymentInfo),
AchPaymentInfo(models::AchPaymentInfo),
UsWirePaymentInfo(models::UsWirePaymentInfo),
MomoPaymentInfo(models::MomoPaymentInfo),
LbtPaymentInfo(models::LbtPaymentInfo),
}
impl Default for AdditionalInfoRequestAdditionalInfo {
fn default() -> Self {
Self::IbanPaymentInfo(Default::default())
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Rail {
#[serde(rename = "LBT")]
Lbt,
}
impl Default for Rail {
fn default() -> Rail {
Self::Lbt
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AddressingSystem {
#[serde(rename = "BAN")]
Ban,
}
impl Default for AddressingSystem {
fn default() -> AddressingSystem {
Self::Ban
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum KeyType {
#[serde(rename = "CPF")]
Cpf,
#[serde(rename = "CNPJ")]
Cnpj,
#[serde(rename = "EMAIL")]
Email,
#[serde(rename = "PHONE")]
Phone,
#[serde(rename = "RANDOM")]
Random,
}
impl Default for KeyType {
fn default() -> KeyType {
Self::Cpf
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AccountType {
#[serde(rename = "CHECKING")]
Checking,
#[serde(rename = "SAVINGS")]
Savings,
}
impl Default for AccountType {
fn default() -> AccountType {
Self::Checking
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Provider {
#[serde(rename = "M_PESA")]
MPesa,
#[serde(rename = "AIRTEL")]
Airtel,
#[serde(rename = "MTN")]
Mtn,
#[serde(rename = "TIGO")]
Tigo,
}
impl Default for Provider {
fn default() -> Provider {
Self::MPesa
}
}