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