1use {
2 crate::models::{UnmanagedExternalWallet, UnmanagedWallet, WalletAssetExternal},
3 serde::{Deserialize, Serialize},
4};
5
6#[derive(Debug, Deserialize, Serialize, Default)]
7pub struct WalletContainer {
8 pub id: String,
9 pub name: String,
10 pub assets: Vec<WalletAssetExternal>,
11 pub customer_ref_id: Option<String>,
12}
13
14impl From<UnmanagedWallet> for WalletContainer {
15 fn from(value: UnmanagedWallet) -> Self {
16 Self {
17 id: value.id,
18 name: value.name,
19 customer_ref_id: value.customer_ref_id,
20 assets: value
21 .assets
22 .into_iter()
23 .map(|w| WalletAssetExternal {
24 id: w.id,
25 locked_amount: w.locked_amount,
26 address: w.address,
28 tag: w.tag,
29 activation_time: w.activation_time,
30 status: w.status,
31 })
32 .collect(),
33 }
34 }
35}
36
37impl From<UnmanagedExternalWallet> for WalletContainer {
38 fn from(value: UnmanagedExternalWallet) -> Self {
39 Self {
40 id: value.id,
41 name: value.name,
42 customer_ref_id: value.customer_ref_id,
43 assets: value.assets,
44 }
45 }
46}