use super::ids::Base62Id; use crate::models::users::UserId; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; #[derive(Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(from = "Base62Id")] #[serde(into = "Base62Id")] pub struct SessionId(pub u64); #[derive(Serialize, Deserialize, Clone)] pub struct Session { pub id: SessionId, pub session: String, pub user_id: UserId, pub created: DateTime, pub last_login: DateTime, pub expires: DateTime, pub refresh_expires: DateTime, pub os: Option, pub platform: Option, pub user_agent: String, pub city: Option, pub country: Option, pub ip: String, }