spatio_sdk/models/
session.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct Session {
16 #[serde(rename = "id")]
17 pub id: String,
18 #[serde(rename = "ipAddress", skip_serializing_if = "Option::is_none")]
19 pub ip_address: Option<String>,
20 #[serde(rename = "userAgent", skip_serializing_if = "Option::is_none")]
21 pub user_agent: Option<String>,
22 #[serde(rename = "deviceType", skip_serializing_if = "Option::is_none")]
23 pub device_type: Option<String>,
24 #[serde(rename = "browser", skip_serializing_if = "Option::is_none")]
25 pub browser: Option<String>,
26 #[serde(rename = "os", skip_serializing_if = "Option::is_none")]
27 pub os: Option<String>,
28 #[serde(rename = "country", skip_serializing_if = "Option::is_none")]
29 pub country: Option<String>,
30 #[serde(rename = "city", skip_serializing_if = "Option::is_none")]
31 pub city: Option<String>,
32 #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
33 pub created_at: Option<chrono::DateTime<chrono::FixedOffset>>,
34 #[serde(rename = "lastActiveAt", skip_serializing_if = "Option::is_none")]
35 pub last_active_at: Option<chrono::DateTime<chrono::FixedOffset>>,
36 #[serde(rename = "isCurrent", skip_serializing_if = "Option::is_none")]
37 pub is_current: Option<bool>,
38}
39
40impl Session {
41 pub fn new(id: String) -> Session {
42 Session {
43 id,
44 ip_address: None,
45 user_agent: None,
46 device_type: None,
47 browser: None,
48 os: None,
49 country: None,
50 city: None,
51 created_at: None,
52 last_active_at: None,
53 is_current: None,
54 }
55 }
56}
57