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 = "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}