1use {
10 crate::models,
11 serde::{Deserialize, Serialize},
12};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct SmartTransferTicketTerm {
17 #[serde(rename = "id")]
19 pub id: String,
20 #[serde(rename = "ticketId")]
22 pub ticket_id: String,
23 #[serde(rename = "asset")]
25 pub asset: String,
26 #[serde(rename = "amount")]
28 pub amount: String,
29 #[serde(rename = "amountUsd", skip_serializing_if = "Option::is_none")]
31 pub amount_usd: Option<String>,
32 #[serde(rename = "fromNetworkId")]
34 pub from_network_id: String,
35 #[serde(rename = "fromNetworkIdName")]
37 pub from_network_id_name: String,
38 #[serde(rename = "toNetworkId")]
40 pub to_network_id: String,
41 #[serde(rename = "toNetworkIdName")]
43 pub to_network_id_name: String,
44 #[serde(rename = "txHash", deserialize_with = "Option::deserialize")]
46 pub tx_hash: Option<String>,
47 #[serde(rename = "fbTxId", deserialize_with = "Option::deserialize")]
50 pub fb_tx_id: Option<String>,
51 #[serde(rename = "txStatus", deserialize_with = "Option::deserialize")]
53 pub tx_status: Option<TxStatus>,
54 #[serde(rename = "status")]
56 pub status: Status,
57 #[serde(rename = "createdAt")]
59 pub created_at: String,
60 #[serde(rename = "updatedAt")]
62 pub updated_at: String,
63}
64
65impl SmartTransferTicketTerm {
66 pub fn new(
68 id: String,
69 ticket_id: String,
70 asset: String,
71 amount: String,
72 from_network_id: String,
73 from_network_id_name: String,
74 to_network_id: String,
75 to_network_id_name: String,
76 tx_hash: Option<String>,
77 fb_tx_id: Option<String>,
78 tx_status: Option<TxStatus>,
79 status: Status,
80 created_at: String,
81 updated_at: String,
82 ) -> SmartTransferTicketTerm {
83 SmartTransferTicketTerm {
84 id,
85 ticket_id,
86 asset,
87 amount,
88 amount_usd: None,
89 from_network_id,
90 from_network_id_name,
91 to_network_id,
92 to_network_id_name,
93 tx_hash,
94 fb_tx_id,
95 tx_status,
96 status,
97 created_at,
98 updated_at,
99 }
100 }
101}
102#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
104pub enum TxStatus {
105 #[serde(rename = "queued")]
106 Queued,
107 #[serde(rename = "submitted")]
108 Submitted,
109 #[serde(rename = "pendingSignature")]
110 PendingSignature,
111 #[serde(rename = "pendingAuthorization")]
112 PendingAuthorization,
113 #[serde(rename = "broadcasting")]
114 Broadcasting,
115 #[serde(rename = "confirming")]
116 Confirming,
117 #[serde(rename = "pendingAmlScreening")]
118 PendingAmlScreening,
119 #[serde(rename = "completed")]
120 Completed,
121 #[serde(rename = "cancelled")]
122 Cancelled,
123 #[serde(rename = "failed")]
124 Failed,
125 #[serde(rename = "rejected")]
126 Rejected,
127 #[serde(rename = "blocked")]
128 Blocked,
129 #[serde(rename = "thirdPartyPendingManualApproval")]
130 ThirdPartyPendingManualApproval,
131 #[serde(rename = "thirdPartyPending")]
132 ThirdPartyPending,
133 #[serde(rename = "partiallyCompleted")]
134 PartiallyCompleted,
135 #[serde(rename = "cancelling")]
136 Cancelling,
137}
138
139impl Default for TxStatus {
140 fn default() -> TxStatus {
141 Self::Queued
142 }
143}
144#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
146pub enum Status {
147 #[serde(rename = "CREATED")]
148 Created,
149 #[serde(rename = "FUNDING")]
150 Funding,
151 #[serde(rename = "FUNDING_FAILED")]
152 FundingFailed,
153 #[serde(rename = "FUNDED")]
154 Funded,
155 #[serde(rename = "REJECTED")]
156 Rejected,
157}
158
159impl Default for Status {
160 fn default() -> Status {
161 Self::Created
162 }
163}