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 expires_at: DateTime<Utc>,
22}
23
24#[derive(Debug, Clone, Deserialize, Serialize)]
25pub struct AuthSessionRecord {
26 pub id: String,
27 pub user_id: AuthUserId,
28 pub created_at: DateTime<Utc>,
29 pub expires_at: DateTime<Utc>,
30 pub revoked_at: Option<DateTime<Utc>>,
31}