Skip to main content

alibi_sqlx/store/entities/
device_code.rs

1use crate::SqlxModel;
2use alibi_core::DeviceCode;
3use chrono::{DateTime, Utc};
4
5#[derive(Clone, Debug, PartialEq, Eq, sqlx::FromRow, SqlxModel)]
6#[auth(table = "deviceCode")]
7pub struct Model {
8    pub id: String,
9    #[sqlx(rename = "deviceCode")]
10    pub device_code: String,
11    #[sqlx(rename = "userCode")]
12    pub user_code: String,
13    #[sqlx(rename = "userId")]
14    pub user_id: Option<String>,
15    #[sqlx(rename = "expiresAt")]
16    pub expires_at: DateTime<Utc>,
17    pub status: String,
18    #[sqlx(rename = "lastPolledAt")]
19    pub last_polled_at: Option<DateTime<Utc>>,
20    #[sqlx(rename = "pollingInterval")]
21    pub polling_interval: Option<i64>,
22    #[sqlx(rename = "clientId")]
23    pub client_id: Option<String>,
24    pub scope: Option<String>,
25}
26
27impl From<&Model> for DeviceCode {
28    fn from(model: &Model) -> Self {
29        Self {
30            id: model.id.clone(),
31            device_code: model.device_code.clone(),
32            user_code: model.user_code.clone(),
33            user_id: model.user_id.clone(),
34            expires_at: model.expires_at,
35            status: model.status.clone(),
36            last_polled_at: model.last_polled_at,
37            polling_interval: model.polling_interval,
38            client_id: model.client_id.clone(),
39            scope: model.scope.clone(),
40        }
41    }
42}