Skip to main content

alibi_sqlx/store/entities/
organization_role.rs

1use crate::SqlxModel;
2use alibi_core::AuthError;
3use alibi_core::types::OrganizationRole;
4use chrono::{DateTime, Utc};
5
6#[derive(Clone, Debug, PartialEq, Eq, sqlx::FromRow, SqlxModel)]
7#[auth(table = "organizationRole")]
8pub struct Model {
9    pub id: String,
10    #[sqlx(rename = "organizationId")]
11    pub organization_id: String,
12    pub role: String,
13    pub permission: String,
14    #[sqlx(rename = "createdAt")]
15    pub created_at: DateTime<Utc>,
16    #[sqlx(rename = "updatedAt")]
17    pub updated_at: Option<DateTime<Utc>>,
18}
19
20impl TryFrom<Model> for OrganizationRole {
21    type Error = AuthError;
22    fn try_from(model: Model) -> Result<Self, Self::Error> {
23        Ok(Self {
24            id: model.id,
25            organization_id: model.organization_id,
26            role: model.role,
27            permission: model.permission.into(),
28            created_at: model.created_at,
29            updated_at: model.updated_at,
30        })
31    }
32}