Skip to main content

swarmhive_api_types/
user.rs

1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3use utoipa::ToSchema;
4use uuid::Uuid;
5
6#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize, ToSchema)]
7#[serde(rename_all = "snake_case")]
8pub enum UserStatus {
9    Active,
10    Disabled,
11    Invited,
12}
13
14#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ToSchema)]
15pub struct User {
16    pub id: Uuid,
17    pub org_id: Uuid,
18    pub email: String,
19    pub display_name: String,
20    pub avatar_url: Option<String>,
21    pub status: UserStatus,
22    /// `Some(when)` once the user has clicked a verification link sent to
23    /// `email`. NULL drives the admin SPA banner / blocks password-reset
24    /// dispatch (`add-invite-and-password-reset`).
25    pub email_verified_at: Option<DateTime<Utc>>,
26    pub created_at: DateTime<Utc>,
27    pub updated_at: DateTime<Utc>,
28}