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 = "organization_role")]
8pub struct Model {
9    pub id: String,
10    pub organization_id: String,
11    pub role: String,
12    pub permission: String,
13    pub created_at: DateTime<Utc>,
14    pub updated_at: Option<DateTime<Utc>>,
15}
16
17impl TryFrom<Model> for OrganizationRole {
18    type Error = AuthError;
19    fn try_from(model: Model) -> Result<Self, Self::Error> {
20        Ok(Self {
21            id: model.id,
22            organization_id: model.organization_id,
23            role: model.role,
24            permission: model.permission.into(),
25            created_at: model.created_at,
26            updated_at: model.updated_at,
27        })
28    }
29}