1use {
10 crate::models,
11 serde::{Deserialize, Serialize},
12};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct TokenOwnershipResponse {
16 #[serde(rename = "id")]
18 pub id: String,
19 #[serde(rename = "tokenId")]
21 pub token_id: String,
22 #[serde(rename = "standard")]
24 pub standard: String,
25 #[serde(rename = "metadataURI", skip_serializing_if = "Option::is_none")]
27 pub metadata_uri: Option<String>,
28 #[serde(rename = "cachedMetadataURI", skip_serializing_if = "Option::is_none")]
30 pub cached_metadata_uri: Option<String>,
31 #[serde(rename = "media", skip_serializing_if = "Option::is_none")]
33 pub media: Option<Vec<models::MediaEntityResponse>>,
34 #[serde(rename = "spam", skip_serializing_if = "Option::is_none")]
36 pub spam: Option<models::SpamOwnershipResponse>,
37 #[serde(rename = "collection", skip_serializing_if = "Option::is_none")]
39 pub collection: Option<models::TokenCollectionResponse>,
40 #[serde(rename = "balance")]
42 pub balance: String,
43 #[serde(rename = "vaultAccountId", skip_serializing_if = "Option::is_none")]
45 pub vault_account_id: Option<String>,
46 #[serde(rename = "ownershipStartTime")]
48 pub ownership_start_time: f64,
49 #[serde(rename = "ownershipLastUpdateTime")]
51 pub ownership_last_update_time: f64,
52 #[serde(rename = "blockchainDescriptor")]
54 pub blockchain_descriptor: BlockchainDescriptor,
55 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
57 pub description: Option<String>,
58 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
60 pub name: Option<String>,
61 #[serde(rename = "ncwId", skip_serializing_if = "Option::is_none")]
63 pub ncw_id: Option<String>,
64 #[serde(rename = "ncwAccountId", skip_serializing_if = "Option::is_none")]
66 pub ncw_account_id: Option<String>,
67 #[serde(rename = "status")]
69 pub status: Status,
70}
71
72impl TokenOwnershipResponse {
73 pub fn new(
74 id: String,
75 token_id: String,
76 standard: String,
77 balance: String,
78 ownership_start_time: f64,
79 ownership_last_update_time: f64,
80 blockchain_descriptor: BlockchainDescriptor,
81 status: Status,
82 ) -> TokenOwnershipResponse {
83 TokenOwnershipResponse {
84 id,
85 token_id,
86 standard,
87 metadata_uri: None,
88 cached_metadata_uri: None,
89 media: None,
90 spam: None,
91 collection: None,
92 balance,
93 vault_account_id: None,
94 ownership_start_time,
95 ownership_last_update_time,
96 blockchain_descriptor,
97 description: None,
98 name: None,
99 ncw_id: None,
100 ncw_account_id: None,
101 status,
102 }
103 }
104}
105#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
107pub enum BlockchainDescriptor {
108 #[serde(rename = "ETH")]
109 Eth,
110 #[serde(rename = "ETH_TEST3")]
111 EthTest3,
112 #[serde(rename = "ETH_TEST5")]
113 EthTest5,
114 #[serde(rename = "ETH_TEST6")]
115 EthTest6,
116 #[serde(rename = "POLYGON")]
117 Polygon,
118 #[serde(rename = "POLYGON_TEST_MUMBAI")]
119 PolygonTestMumbai,
120 #[serde(rename = "AMOY_POLYGON_TEST")]
121 AmoyPolygonTest,
122 #[serde(rename = "XTZ")]
123 Xtz,
124 #[serde(rename = "XTZ_TEST")]
125 XtzTest,
126 #[serde(rename = "BASECHAIN_ETH")]
127 BasechainEth,
128 #[serde(rename = "BASECHAIN_ETH_TEST3")]
129 BasechainEthTest3,
130 #[serde(rename = "BASECHAIN_ETH_TEST5")]
131 BasechainEthTest5,
132 #[serde(rename = "ETHERLINK")]
133 Etherlink,
134 #[serde(rename = "ETHERLINK_TEST")]
135 EtherlinkTest,
136 #[serde(rename = "MANTLE")]
137 Mantle,
138 #[serde(rename = "MANTLE_TEST")]
139 MantleTest,
140 #[serde(rename = "GUN_GUNZILLA_TEST")]
141 GunGunzillaTest,
142 #[serde(rename = "ETH_SONEIUM")]
143 EthSoneium,
144 #[serde(rename = "SONEIUM_MINATO_TEST")]
145 SoneiumMinatoTest,
146 #[serde(rename = "IOTX_IOTEX")]
147 IotxIotex,
148}
149
150impl Default for BlockchainDescriptor {
151 fn default() -> BlockchainDescriptor {
152 Self::Eth
153 }
154}
155#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
157pub enum Status {
158 #[serde(rename = "LISTED")]
159 Listed,
160 #[serde(rename = "ARCHIVED")]
161 Archived,
162}
163
164impl Default for Status {
165 fn default() -> Status {
166 Self::Listed
167 }
168}