mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-02 04:04:43 +08:00
feat(payouts): add payout types in euclid crate (#3862)
Co-authored-by: Kashif <mohammed.kashif@juspay.in>
This commit is contained in:
@ -34,6 +34,12 @@ collect_variants!(CaptureMethod);
|
||||
collect_variants!(Currency);
|
||||
collect_variants!(Country);
|
||||
collect_variants!(SetupFutureUsage);
|
||||
#[cfg(feature = "payouts")]
|
||||
collect_variants!(PayoutType);
|
||||
#[cfg(feature = "payouts")]
|
||||
collect_variants!(PayoutBankTransferType);
|
||||
#[cfg(feature = "payouts")]
|
||||
collect_variants!(PayoutWalletType);
|
||||
|
||||
#[derive(
|
||||
Clone,
|
||||
@ -94,3 +100,67 @@ pub enum MandateType {
|
||||
SingleUse,
|
||||
MultiUse,
|
||||
}
|
||||
|
||||
#[cfg(feature = "payouts")]
|
||||
#[derive(
|
||||
Clone,
|
||||
Debug,
|
||||
Hash,
|
||||
PartialEq,
|
||||
Eq,
|
||||
strum::Display,
|
||||
strum::EnumVariantNames,
|
||||
strum::EnumIter,
|
||||
strum::EnumString,
|
||||
serde::Serialize,
|
||||
serde::Deserialize,
|
||||
)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
#[strum(serialize_all = "snake_case")]
|
||||
pub enum PayoutBankTransferType {
|
||||
Ach,
|
||||
Bacs,
|
||||
Sepa,
|
||||
}
|
||||
|
||||
#[cfg(feature = "payouts")]
|
||||
#[derive(
|
||||
Clone,
|
||||
Debug,
|
||||
Hash,
|
||||
PartialEq,
|
||||
Eq,
|
||||
strum::Display,
|
||||
strum::EnumVariantNames,
|
||||
strum::EnumIter,
|
||||
strum::EnumString,
|
||||
serde::Serialize,
|
||||
serde::Deserialize,
|
||||
)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
#[strum(serialize_all = "snake_case")]
|
||||
pub enum PayoutWalletType {
|
||||
Paypal,
|
||||
}
|
||||
|
||||
#[cfg(feature = "payouts")]
|
||||
#[derive(
|
||||
Clone,
|
||||
Debug,
|
||||
Hash,
|
||||
PartialEq,
|
||||
Eq,
|
||||
strum::Display,
|
||||
strum::EnumVariantNames,
|
||||
strum::EnumIter,
|
||||
strum::EnumString,
|
||||
serde::Serialize,
|
||||
serde::Deserialize,
|
||||
)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
#[strum(serialize_all = "snake_case")]
|
||||
pub enum PayoutType {
|
||||
Card,
|
||||
BankTransfer,
|
||||
Wallet,
|
||||
}
|
||||
|
||||
@ -667,6 +667,101 @@ impl DirValue {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "payouts")]
|
||||
#[derive(
|
||||
Debug,
|
||||
Clone,
|
||||
Hash,
|
||||
PartialEq,
|
||||
Eq,
|
||||
serde::Serialize,
|
||||
strum::Display,
|
||||
strum::EnumIter,
|
||||
strum::EnumVariantNames,
|
||||
strum::EnumString,
|
||||
strum::EnumMessage,
|
||||
strum::EnumProperty,
|
||||
)]
|
||||
pub enum PayoutDirKeyKind {
|
||||
#[strum(
|
||||
serialize = "country",
|
||||
serialize = "business_country",
|
||||
detailed_message = "Country of the business unit",
|
||||
props(Category = "Merchant")
|
||||
)]
|
||||
#[serde(rename = "business_country", alias = "country")]
|
||||
BusinessCountry,
|
||||
|
||||
#[strum(
|
||||
serialize = "billing_country",
|
||||
detailed_message = "Country of the billing address of the customer",
|
||||
props(Category = "Customer")
|
||||
)]
|
||||
#[serde(rename = "billing_country")]
|
||||
BillingCountry,
|
||||
|
||||
#[strum(
|
||||
serialize = "business_label",
|
||||
detailed_message = "Identifier for business unit",
|
||||
props(Category = "Merchant")
|
||||
)]
|
||||
#[serde(rename = "business_label")]
|
||||
BusinessLabel,
|
||||
|
||||
#[strum(
|
||||
serialize = "amount",
|
||||
detailed_message = "Value of the transaction",
|
||||
props(Category = "Order details")
|
||||
)]
|
||||
#[serde(rename = "amount")]
|
||||
PayoutAmount,
|
||||
|
||||
#[strum(
|
||||
serialize = "payment_method",
|
||||
detailed_message = "Different modes of payout - eg. cards, wallets, banks",
|
||||
props(Category = "Payout Methods")
|
||||
)]
|
||||
#[serde(rename = "payment_method")]
|
||||
PayoutType,
|
||||
|
||||
#[strum(
|
||||
serialize = "wallet",
|
||||
detailed_message = "Supported types of Wallets for payouts",
|
||||
props(Category = "Payout Methods Type")
|
||||
)]
|
||||
#[serde(rename = "wallet")]
|
||||
WalletType,
|
||||
|
||||
#[strum(
|
||||
serialize = "bank_transfer",
|
||||
detailed_message = "Supported types of Bank transfer types for payouts",
|
||||
props(Category = "Payout Methods Type")
|
||||
)]
|
||||
#[serde(rename = "bank_transfer")]
|
||||
BankTransferType,
|
||||
}
|
||||
|
||||
#[cfg(feature = "payouts")]
|
||||
#[derive(
|
||||
Debug, Clone, Hash, PartialEq, Eq, serde::Serialize, strum::Display, strum::EnumVariantNames,
|
||||
)]
|
||||
pub enum PayoutDirValue {
|
||||
#[serde(rename = "business_country", alias = "country")]
|
||||
BusinessCountry(enums::Country),
|
||||
#[serde(rename = "billing_country")]
|
||||
BillingCountry(enums::Country),
|
||||
#[serde(rename = "business_label")]
|
||||
BusinessLabel(types::StrValue),
|
||||
#[serde(rename = "amount")]
|
||||
PayoutAmount(types::NumValue),
|
||||
#[serde(rename = "payment_method")]
|
||||
PayoutType(common_enums::PayoutType),
|
||||
#[serde(rename = "wallet")]
|
||||
WalletType(enums::PayoutWalletType),
|
||||
#[serde(rename = "bank_transfer")]
|
||||
BankTransferType(enums::PayoutBankTransferType),
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum DirComparisonLogic {
|
||||
NegativeConjunction,
|
||||
|
||||
@ -6,6 +6,8 @@ pub use crate::enums::{
|
||||
Country as BillingCountry, Currency as PaymentCurrency, MandateAcceptanceType, MandateType,
|
||||
PaymentMethod, PaymentType, RoutableConnectors, SetupFutureUsage,
|
||||
};
|
||||
#[cfg(feature = "payouts")]
|
||||
pub use crate::enums::{PayoutBankTransferType, PayoutType, PayoutWalletType};
|
||||
|
||||
#[derive(
|
||||
Clone,
|
||||
|
||||
Reference in New Issue
Block a user