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