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