1use {
10 crate::models,
11 serde::{Deserialize, Serialize},
12};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct SmartTransferTicket {
17 #[serde(rename = "id")]
19 pub id: String,
20 #[serde(rename = "type")]
22 pub r#type: Type,
23 #[serde(rename = "direction", skip_serializing_if = "Option::is_none")]
25 pub direction: Option<Direction>,
26 #[serde(rename = "status")]
28 pub status: Status,
29 #[serde(rename = "terms", skip_serializing_if = "Option::is_none")]
31 pub terms: Option<Vec<models::SmartTransferTicketTerm>>,
32 #[serde(rename = "expiresIn", skip_serializing_if = "Option::is_none")]
35 pub expires_in: Option<f64>,
36 #[serde(rename = "expiresAt", skip_serializing_if = "Option::is_none")]
39 pub expires_at: Option<String>,
40 #[serde(rename = "submittedAt", skip_serializing_if = "Option::is_none")]
42 pub submitted_at: Option<String>,
43 #[serde(rename = "expiredAt", skip_serializing_if = "Option::is_none")]
45 pub expired_at: Option<String>,
46 #[serde(rename = "canceledAt", skip_serializing_if = "Option::is_none")]
48 pub canceled_at: Option<String>,
49 #[serde(rename = "fulfilledAt", skip_serializing_if = "Option::is_none")]
51 pub fulfilled_at: Option<String>,
52 #[serde(rename = "externalRefId", skip_serializing_if = "Option::is_none")]
54 pub external_ref_id: Option<String>,
55 #[serde(rename = "note", skip_serializing_if = "Option::is_none")]
57 pub note: Option<String>,
58 #[serde(rename = "createdByNetworkId")]
60 pub created_by_network_id: String,
61 #[serde(rename = "createdByNetworkIdName")]
63 pub created_by_network_id_name: String,
64 #[serde(
66 rename = "canceledByNetworkIdName",
67 skip_serializing_if = "Option::is_none"
68 )]
69 pub canceled_by_network_id_name: Option<String>,
70 #[serde(rename = "createdAt")]
72 pub created_at: String,
73 #[serde(rename = "updatedAt")]
75 pub updated_at: String,
76 #[serde(rename = "canceledByMe", skip_serializing_if = "Option::is_none")]
77 pub canceled_by_me: Option<bool>,
78 #[serde(rename = "createdByMe", skip_serializing_if = "Option::is_none")]
79 pub created_by_me: Option<bool>,
80}
81
82impl SmartTransferTicket {
83 pub fn new(
85 id: String,
86 r#type: Type,
87 status: Status,
88 created_by_network_id: String,
89 created_by_network_id_name: String,
90 created_at: String,
91 updated_at: String,
92 ) -> SmartTransferTicket {
93 SmartTransferTicket {
94 id,
95 r#type,
96 direction: None,
97 status,
98 terms: None,
99 expires_in: None,
100 expires_at: None,
101 submitted_at: None,
102 expired_at: None,
103 canceled_at: None,
104 fulfilled_at: None,
105 external_ref_id: None,
106 note: None,
107 created_by_network_id,
108 created_by_network_id_name,
109 canceled_by_network_id_name: None,
110 created_at,
111 updated_at,
112 canceled_by_me: None,
113 created_by_me: None,
114 }
115 }
116}
117#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
119pub enum Type {
120 #[serde(rename = "ASYNC")]
121 Async,
122}
123
124impl Default for Type {
125 fn default() -> Type {
126 Self::Async
127 }
128}
129#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
131pub enum Direction {
132 #[serde(rename = "EXCHANGE")]
133 Exchange,
134 #[serde(rename = "SEND")]
135 Send,
136 #[serde(rename = "RECEIVE")]
137 Receive,
138 #[serde(rename = "INTERMEDIATE")]
139 Intermediate,
140}
141
142impl Default for Direction {
143 fn default() -> Direction {
144 Self::Exchange
145 }
146}
147#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
149pub enum Status {
150 #[serde(rename = "DRAFT")]
151 Draft,
152 #[serde(rename = "PENDING_APPROVAL")]
153 PendingApproval,
154 #[serde(rename = "OPEN")]
155 Open,
156 #[serde(rename = "IN_SETTLEMENT")]
157 InSettlement,
158 #[serde(rename = "FULFILLED")]
159 Fulfilled,
160 #[serde(rename = "EXPIRED")]
161 Expired,
162 #[serde(rename = "CANCELED")]
163 Canceled,
164}
165
166impl Default for Status {
167 fn default() -> Status {
168 Self::Draft
169 }
170}