monzo_webhook/metadata/
money_transfer.rs

1use chrono::NaiveDate;
2
3use crate::StringBoolean;
4
5struct_with_extra! {
6    /// A move of money between pots or accounts
7    MoneyTransfer,
8    external_id: String,
9    move_money_transfer_id: Option<String>,
10    pot_account_id: Option<String>,
11    pot_id: String,
12    pot_name: Option<String>,
13    transaction_description_localised: Option<StringBoolean>,
14    transaction_locale_country: Option<String>,
15    trigger: MoneyTransferTrigger,
16    user_id: Option<String>,
17    /// Only present on a pot withdrawal
18    money_transfer_id: Option<String>,
19    /// Only present on a pot withdrawal
20    pot_withdrawal_id: Option<String>,
21    /// Only present on a pot deposit
22    pot_deposit_id: Option<String>,
23    covering_date: Option<NaiveDate>,
24    #[serde(flatten)]
25    hold_decision: Option<super::shared_metadata::HoldDecision>,
26    #[serde(flatten)]
27    ledger_details: super::ledger::LedgerDetails,
28}
29
30enum_with_extra! { "snake_case" => MoneyTransferTrigger,
31    User,
32    SavingsChallenge,
33}