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 = "passkey")]
7pub struct Model {
8 pub id: String,
9 pub name: Option<String>,
10 #[sqlx(rename = "publicKey")]
11 pub public_key: String,
12 #[sqlx(rename = "userId")]
13 pub user_id: String,
14 #[sqlx(rename = "credentialID")]
15 pub credential_id: String,
16 pub counter: i64,
17 #[sqlx(rename = "deviceType")]
18 pub device_type: String,
19 #[sqlx(rename = "backedUp")]
20 pub backed_up: bool,
21 pub transports: Option<String>,
22 pub aaguid: Option<String>,
23 #[sqlx(rename = "createdAt")]
24 pub created_at: Option<DateTime<Utc>>,
25}
26
27impl From<&Model> for Passkey {
28 fn from(model: &Model) -> Self {
29 Self {
30 id: model.id.clone(),
31 name: model.name.clone(),
32 public_key: model.public_key.clone(),
33 user_id: model.user_id.clone(),
34 credential_id: model.credential_id.clone(),
35 counter: u64::try_from(model.counter).unwrap_or_default(),
36 device_type: model.device_type.clone(),
37 backed_up: model.backed_up,
38 transports: model.transports.clone(),
39 created_at: model.created_at,
40
41 aaguid: model.aaguid.clone(),
42 }
43 }
44}