nullnet_libtoken/
models.rs1use crate::utils::empty_object_or_null_is_none;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Serialize, Deserialize)]
5pub struct Account {
6 #[serde(default)]
7 pub is_root_account: bool,
8 pub profile: Profile,
9 #[serde(default, deserialize_with = "empty_object_or_null_is_none")]
10 pub contact: Option<Contact>,
11 #[serde(default, deserialize_with = "empty_object_or_null_is_none")]
12 pub device: Option<Device>,
13 pub organization: Organization,
14 pub id: String,
15 pub account_id: String,
16 pub organization_id: String,
17 pub account_organization_id: String,
18 pub account_status: String,
19 pub role_id: Option<String>,
20}
21
22#[derive(Debug, Serialize, Deserialize)]
23pub struct Profile {
24 pub id: String,
25 pub first_name: Option<String>,
26 pub last_name: Option<String>,
27 pub email: String,
28 pub account_id: String,
29 pub categories: Vec<String>,
30 pub code: Option<String>,
31 pub status: String,
32 pub organization_id: String,
33}
34
35#[derive(Debug, Serialize, Deserialize)]
36pub struct Contact {
37 pub id: String,
38 pub first_name: String,
39 pub last_name: String,
40 pub account_id: String,
41 pub code: String,
42 pub categories: Vec<String>,
43 pub status: String,
44 pub organization_id: String,
45 pub date_of_birth: Option<String>,
46}
47
48#[derive(Debug, Serialize, Deserialize)]
49pub struct Device {
50 pub id: String,
51 pub code: String,
52 pub categories: Vec<String>,
53 pub status: String,
54 pub organization_id: String,
55 pub timestamp: Option<String>,
56}
57
58#[derive(Debug, Serialize, Deserialize)]
59pub struct Organization {
60 pub id: String,
61 pub name: String,
62 pub code: String,
63 pub categories: Vec<String>,
64 pub status: String,
65 pub organization_id: String,
66 pub parent_organization_id: Option<String>,
67}