alibi_sqlx/store/entities/
organization_role.rs1use 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}