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 created_at: DateTime<Utc>,
11    pub disabled_at: Option<DateTime<Utc>>,
12    pub disabled_reason: Option<String>,
13    pub disabled_until: Option<DateTime<Utc>>,
14}
15
16#[derive(Debug, Clone, Deserialize, Serialize)]
17pub struct AuthSession {
18    pub id: String,
19    pub user_id: AuthUserId,
20    pub token: String,
21    pub device_id: Option<String>,
22    pub expires_at: DateTime<Utc>,
23}
24
25#[derive(Debug, Clone, Deserialize, Serialize)]
26pub struct AuthSessionRecord {
27    pub id: String,
28    pub user_id: AuthUserId,
29    pub device_id: Option<String>,
30    pub created_at: DateTime<Utc>,
31    pub expires_at: DateTime<Utc>,
32    pub revoked_at: Option<DateTime<Utc>>,
33}