alibi_sqlx/store/entities/
passkey.rs1use crate::SqlxModel;
2use alibi_core::Passkey;
3use chrono::{DateTime, Utc};
4
5#[derive(Clone, Debug, PartialEq, Eq, sqlx::FromRow, SqlxModel)]
6#[auth(table = "passkeys")]
7pub struct Model {
8 pub id: String,
9 pub name: Option<String>,
10 pub public_key: String,
11 pub user_id: String,
12 pub credential_id: String,
13 pub counter: i64,
14 pub device_type: String,
15 pub backed_up: bool,
16 pub transports: Option<String>,
17 pub credential: String,
18 pub aaguid: Option<String>,
19 pub created_at: DateTime<Utc>,
20 pub updated_at: DateTime<Utc>,
21}
22
23impl From<&Model> for Passkey {
24 fn from(model: &Model) -> Self {
25 Self {
26 id: model.id.clone(),
27 name: model.name.clone(),
28 public_key: model.public_key.clone(),
29 user_id: model.user_id.clone(),
30 credential_id: model.credential_id.clone(),
31 counter: u64::try_from(model.counter).unwrap_or_default(),
32 device_type: model.device_type.clone(),
33 backed_up: model.backed_up,
34 transports: model.transports.clone(),
35 created_at: model.created_at,
36 updated_at: model.updated_at,
37 aaguid: model.aaguid.clone(),
38 credential: model.credential.clone(),
39 }
40 }
41}