nullnet_libtoken/
models.rs

1use 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}