Skip to main content

auth/
models.rs

1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
5pub struct AuthUserId(pub String);
6
7#[derive(Debug, Clone, Deserialize, Serialize)]
8pub struct AuthUser {
9    pub id: AuthUserId,
10    pub is_anonymous: bool,
11    pub created_at: DateTime<Utc>,
12    pub disabled_at: Option<DateTime<Utc>>,
13    pub disabled_reason: Option<String>,
14    pub disabled_until: Option<DateTime<Utc>>,
15}
16
17#[derive(Debug, Clone, Deserialize, Serialize)]
18pub struct AuthSession {
19    pub id: String,
20    pub user_id: AuthUserId,
21    pub token: String,
22    pub device_id: Option<String>,
23    pub expires_at: DateTime<Utc>,
24}
25
26#[derive(Debug, Clone, Deserialize, Serialize)]
27pub struct AuthSessionRecord {
28    pub id: String,
29    pub user_id: AuthUserId,
30    pub device_id: Option<String>,
31    pub client_ip: Option<String>,
32    pub user_agent: Option<String>,
33    pub created_at: DateTime<Utc>,
34    pub expires_at: DateTime<Utc>,
35    pub revoked_at: Option<DateTime<Utc>>,
36}