Skip to main content

alibi_sqlx/store/entities/
invitation.rs

1use chrono::{DateTime, Utc};
2
3#[derive(Clone, Debug, PartialEq, Eq, sqlx::FromRow, crate::SqlxModel)]
4#[auth(table = "invitation")]
5pub struct Model {
6    pub id: String,
7    pub organization_id: String,
8    pub email: String,
9    pub role: String,
10    pub team_id: Option<String>,
11    pub status: String,
12    pub inviter_id: String,
13    pub expires_at: DateTime<Utc>,
14    pub created_at: DateTime<Utc>,
15}
16
17impl From<&Model> for alibi_core::Invitation {
18    fn from(model: &Model) -> Self {
19        Self {
20            id: model.id.clone(),
21            organization_id: model.organization_id.clone(),
22            email: model.email.clone(),
23            role: Some(model.role.clone()),
24            team_id: model.team_id.clone(),
25            status: alibi_core::InvitationStatus::from(model.status.clone()),
26            inviter_id: model.inviter_id.clone(),
27            expires_at: model.expires_at,
28            created_at: model.created_at,
29        }
30    }
31}