alibi-sqlx 0.10.0

SQLx integration for Alibi
Documentation
use crate::SqlxModel;
pub use crate::json_metadata::JsonMetadata;
use alibi_core::Organization;
use chrono::{DateTime, Utc};

#[derive(Clone, Debug, PartialEq, sqlx::FromRow, SqlxModel)]
#[auth(table = "organization")]
pub struct Model {
    pub id: String,
    pub name: String,
    pub slug: String,
    pub logo: Option<String>,
    #[auth(column_type = "text")]
    pub metadata: Option<JsonMetadata>,
    #[sqlx(rename = "createdAt")]
    pub created_at: DateTime<Utc>,
}

impl From<&Model> for Organization {
    fn from(model: &Model) -> Self {
        Self {
            additional_fields: std::collections::BTreeMap::default(),
            id: model.id.clone(),
            name: model.name.clone(),
            slug: model.slug.clone(),
            logo: model.logo.clone(),
            metadata: model.metadata.as_ref().map(|metadata| (**metadata).clone()),
            created_at: model.created_at,
        }
    }
}