use lenso_postgres_kit::{PostgresKitError, SchemaOperator, SetupOutcome, UpgradeOutcome};
use thiserror::Error;
use crate::schema::schema_plan;
#[derive(Clone, Copy, Debug, Default)]
pub struct OrganizationOperator;
impl OrganizationOperator {
pub async fn setup(
database_url: &str,
schema: &str,
) -> Result<SetupOutcome, OrganizationOperatorError> {
Ok(SchemaOperator::connect(database_url, schema_plan(schema)?)
.await?
.setup()
.await?)
}
pub async fn upgrade(
database_url: &str,
schema: &str,
) -> Result<UpgradeOutcome, OrganizationOperatorError> {
Ok(SchemaOperator::connect(database_url, schema_plan(schema)?)
.await?
.upgrade()
.await?)
}
}
#[derive(Debug, Error)]
pub enum OrganizationOperatorError {
#[error(transparent)]
Plan(#[from] lenso_postgres_kit::PlanError),
#[error(transparent)]
Postgres(#[from] PostgresKitError),
}