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