fireblocks_sdk/models/
momo_payment_info.rs

1// Fireblocks API
2//
3// Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.  - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
4//
5// The version of the OpenAPI document: 1.8.0
6// Contact: developers@fireblocks.com
7// Generated by: https://openapi-generator.tech
8
9use {
10    crate::models,
11    serde::{Deserialize, Serialize},
12};
13
14/// MomoPaymentInfo : Mobile Money (MOMO) payment information for African mobile
15/// payment services
16#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
17pub struct MomoPaymentInfo {
18    /// The payment rail type for mobile money transfers
19    #[serde(rename = "rail")]
20    pub rail: Rail,
21    /// The addressing system used for mobile money transfers
22    #[serde(rename = "addressingSystem")]
23    pub addressing_system: AddressingSystem,
24    /// The given name (first name) of the account holder
25    #[serde(rename = "accountHolderGivenName")]
26    pub account_holder_given_name: String,
27    /// The surname (last name) of the account holder
28    #[serde(rename = "accountHolderSurname")]
29    pub account_holder_surname: String,
30    /// The country for the transfer (ISO 3166-1 alpha-2 code)
31    #[serde(rename = "country")]
32    pub country: String,
33    /// The mobile phone number associated with the mobile money account
34    #[serde(rename = "mobilePhoneNumber")]
35    pub mobile_phone_number: String,
36    /// The mobile money service provider
37    #[serde(rename = "provider")]
38    pub provider: Provider,
39    /// The document ID of the beneficiary
40    #[serde(
41        rename = "beneficiaryDocumentId",
42        skip_serializing_if = "Option::is_none"
43    )]
44    pub beneficiary_document_id: Option<String>,
45    /// The relationship between sender and beneficiary
46    #[serde(
47        rename = "beneficiaryRelationship",
48        skip_serializing_if = "Option::is_none"
49    )]
50    pub beneficiary_relationship: Option<String>,
51}
52
53impl MomoPaymentInfo {
54    /// Mobile Money (MOMO) payment information for African mobile payment
55    /// services
56    pub fn new(
57        rail: Rail,
58        addressing_system: AddressingSystem,
59        account_holder_given_name: String,
60        account_holder_surname: String,
61        country: String,
62        mobile_phone_number: String,
63        provider: Provider,
64    ) -> MomoPaymentInfo {
65        MomoPaymentInfo {
66            rail,
67            addressing_system,
68            account_holder_given_name,
69            account_holder_surname,
70            country,
71            mobile_phone_number,
72            provider,
73            beneficiary_document_id: None,
74            beneficiary_relationship: None,
75        }
76    }
77}
78/// The payment rail type for mobile money transfers
79#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
80pub enum Rail {
81    #[serde(rename = "MOMO")]
82    Momo,
83}
84
85impl Default for Rail {
86    fn default() -> Rail {
87        Self::Momo
88    }
89}
90/// The addressing system used for mobile money transfers
91#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
92pub enum AddressingSystem {
93    #[serde(rename = "MOMO")]
94    Momo,
95}
96
97impl Default for AddressingSystem {
98    fn default() -> AddressingSystem {
99        Self::Momo
100    }
101}
102/// The mobile money service provider
103#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
104pub enum Provider {
105    #[serde(rename = "M_PESA")]
106    MPesa,
107    #[serde(rename = "AIRTEL")]
108    Airtel,
109    #[serde(rename = "MTN")]
110    Mtn,
111    #[serde(rename = "TIGO")]
112    Tigo,
113}
114
115impl Default for Provider {
116    fn default() -> Provider {
117        Self::MPesa
118    }
119}