Skip to main content

alibi_sqlx/store/entities/
user.rs

1use crate::AuthEntity;
2use chrono::{DateTime, Utc};
3use serde::Serialize;
4
5#[derive(AuthEntity, Clone, Debug, PartialEq, Serialize, sqlx::FromRow)]
6#[auth(role = "user", table = "user", secondary_storage)]
7pub struct Model {
8    pub id: String,
9    pub name: String,
10    pub email: String,
11    #[sqlx(rename = "emailVerified")]
12    pub email_verified: bool,
13    pub image: Option<String>,
14    pub username: Option<String>,
15    #[sqlx(rename = "displayUsername")]
16    pub display_username: Option<String>,
17    #[sqlx(rename = "twoFactorEnabled")]
18    pub two_factor_enabled: Option<bool>,
19    pub role: Option<String>,
20    pub banned: Option<bool>,
21    #[sqlx(rename = "banReason")]
22    pub ban_reason: Option<String>,
23    #[sqlx(rename = "banExpires")]
24    pub ban_expires: Option<DateTime<Utc>>,
25    #[sqlx(rename = "isAnonymous")]
26    pub is_anonymous: Option<bool>,
27    #[sqlx(rename = "phoneNumber")]
28    pub phone_number: Option<String>,
29    #[sqlx(rename = "phoneNumberVerified")]
30    pub phone_number_verified: Option<bool>,
31    #[sqlx(rename = "lastLoginMethod")]
32    pub last_login_method: Option<String>,
33    #[sqlx(rename = "createdAt")]
34    pub created_at: DateTime<Utc>,
35    #[sqlx(rename = "updatedAt")]
36    pub updated_at: DateTime<Utc>,
37}