alibi_sqlx/store/entities/
organization.rs1use 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 pub metadata: Option<JsonMetadata>,
14 pub created_at: DateTime<Utc>,
15 pub updated_at: DateTime<Utc>,
16}
17
18impl From<&Model> for Organization {
19 fn from(model: &Model) -> Self {
20 Self {
21 additional_fields: std::collections::BTreeMap::default(),
22 id: model.id.clone(),
23 name: model.name.clone(),
24 slug: model.slug.clone(),
25 logo: model.logo.clone(),
26 metadata: model.metadata.as_ref().map(|metadata| (**metadata).clone()),
27 created_at: model.created_at,
28 updated_at: model.updated_at,
29 }
30 }
31}