nullnet_libtoken/
models.rs

1use serde::Deserialize;
2
3/// Represents a device associated with an account.
4/// Contains detailed information about the device, including identifiers, timestamps, and location data.
5#[derive(Debug, Deserialize)]
6pub struct Device {
7    pub id: String,
8    pub categories: Vec<String>,
9    pub code: Option<String>,
10    pub tombstone: u32,
11    pub status: String,
12    pub previous_status: Option<String>,
13    pub version: u32,
14    pub created_date: Option<String>,
15    pub created_time: Option<String>,
16    pub updated_date: Option<String>,
17    pub updated_time: Option<String>,
18    pub organization_id: String,
19    pub created_by: Option<String>,
20    pub updated_by: Option<String>,
21    pub deleted_by: Option<String>,
22    pub requested_by: Option<String>,
23    pub timestamp: Option<String>,
24    pub tags: Vec<String>,
25    pub first_name: Option<String>,
26    pub middle_name: Option<String>,
27    pub last_name: Option<String>,
28    pub date_of_birth: Option<String>,
29}
30
31/// Represents an organization associated with an account.
32/// Contains metadata about the organization, including its identifiers and hierarchy.
33#[derive(Debug, Deserialize)]
34pub struct Organization {
35    pub id: String,
36    pub categories: Vec<String>,
37    pub code: Option<String>,
38    pub tombstone: u32,
39    pub status: String,
40    pub previous_status: Option<String>,
41    pub version: u32,
42    pub created_date: String,
43    pub created_time: String,
44    pub updated_date: String,
45    pub updated_time: String,
46    pub organization_id: String,
47    pub created_by: Option<String>,
48    pub updated_by: Option<String>,
49    pub deleted_by: Option<String>,
50    pub requested_by: Option<String>,
51    pub timestamp: Option<String>,
52    pub tags: Vec<String>,
53    pub parent_organization_id: Option<String>,
54    pub name: String,
55}
56
57/// Represents an account containing a device and organization.
58/// Acts as a container for the relationships between devices and organizations.
59#[derive(Debug, Deserialize)]
60pub struct Account {
61    #[serde(alias = "contact")]
62    pub device: Device,
63    pub organization: Organization,
64    pub organization_id: String,
65    pub account_id: String,
66    pub organization_account_id: Option<String>,
67}