Skip to main content

alibi_sqlx/store/entities/
organization.rs

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