lenso-module-auth 0.2.3

First-party auth anchor module for the Lenso backend framework.
Documentation
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
pub struct AuthUserId(pub String);

#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct AuthUser {
    pub id: AuthUserId,
    pub is_anonymous: bool,
    pub created_at: DateTime<Utc>,
    pub disabled_at: Option<DateTime<Utc>>,
    pub disabled_reason: Option<String>,
    pub disabled_until: Option<DateTime<Utc>>,
}

#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct AuthSession {
    pub id: String,
    pub user_id: AuthUserId,
    pub token: String,
    pub device_id: Option<String>,
    pub expires_at: DateTime<Utc>,
}

#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct AuthSessionRecord {
    pub id: String,
    pub user_id: AuthUserId,
    pub device_id: Option<String>,
    pub client_ip: Option<String>,
    pub user_agent: Option<String>,
    pub created_at: DateTime<Utc>,
    pub expires_at: DateTime<Utc>,
    pub revoked_at: Option<DateTime<Utc>>,
}