Skip to main content

alibi_sqlx/store/entities/
organization.rs

1pub use crate::json_metadata::JsonMetadata;
2use chrono::{DateTime, Utc};
3
4#[derive(Clone, Debug, PartialEq, sqlx::FromRow, crate::SqlxModel)]
5#[auth(table = "organization")]
6pub struct Model {
7    pub id: String,
8    pub name: String,
9    pub slug: String,
10    pub logo: Option<String>,
11    pub metadata: Option<JsonMetadata>,
12    pub created_at: DateTime<Utc>,
13    pub updated_at: DateTime<Utc>,
14}
15
16impl From<&Model> for alibi_core::Organization {
17    fn from(model: &Model) -> Self {
18        Self {
19            additional_fields: Default::default(),
20            id: model.id.clone(),
21            name: model.name.clone(),
22            slug: model.slug.clone(),
23            logo: model.logo.clone(),
24            metadata: model.metadata.as_ref().map(|metadata| (**metadata).clone()),
25            created_at: model.created_at,
26            updated_at: model.updated_at,
27        }
28    }
29}