Skip to main content

alibi_sqlx/store/entities/
two_factor.rs

1use chrono::{DateTime, Utc};
2
3#[derive(Clone, Debug, PartialEq, sqlx::FromRow, crate::SqlxModel)]
4#[auth(table = "two_factor")]
5pub struct Model {
6    pub id: String,
7    pub secret: String,
8    pub backup_codes: String,
9    pub user_id: String,
10    pub verified: Option<bool>,
11    pub failed_verification_count: Option<f64>,
12    pub locked_until: Option<DateTime<Utc>>,
13    pub created_at: DateTime<Utc>,
14    pub updated_at: DateTime<Utc>,
15}
16
17impl From<&Model> for alibi_core::TwoFactor {
18    fn from(model: &Model) -> Self {
19        Self {
20            id: model.id.clone(),
21            secret: model.secret.clone(),
22            backup_codes: model.backup_codes.clone(),
23            user_id: model.user_id.clone(),
24            verified: model.verified,
25            failed_verification_count: model.failed_verification_count,
26            locked_until: model.locked_until,
27            created_at: model.created_at,
28            updated_at: model.updated_at,
29        }
30    }
31}