fireblocks_sdk/models/
momo_payment_info.rs1use {
10 crate::models,
11 serde::{Deserialize, Serialize},
12};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
17pub struct MomoPaymentInfo {
18 #[serde(rename = "rail")]
20 pub rail: Rail,
21 #[serde(rename = "addressingSystem")]
23 pub addressing_system: AddressingSystem,
24 #[serde(rename = "accountHolderGivenName")]
26 pub account_holder_given_name: String,
27 #[serde(rename = "accountHolderSurname")]
29 pub account_holder_surname: String,
30 #[serde(rename = "country")]
32 pub country: String,
33 #[serde(rename = "mobilePhoneNumber")]
35 pub mobile_phone_number: String,
36 #[serde(rename = "provider")]
38 pub provider: Provider,
39 #[serde(
41 rename = "beneficiaryDocumentId",
42 skip_serializing_if = "Option::is_none"
43 )]
44 pub beneficiary_document_id: Option<String>,
45 #[serde(
47 rename = "beneficiaryRelationship",
48 skip_serializing_if = "Option::is_none"
49 )]
50 pub beneficiary_relationship: Option<String>,
51}
52
53impl MomoPaymentInfo {
54 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#[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#[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#[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}