botserver/src/org/mod.rs

66 lines
1.6 KiB
Rust

use serde::{Deserialize, Serialize};
use sqlx::PgPool;
use uuid::Uuid;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Organization {
pub org_id: Uuid,
pub name: String,
pub slug: String,
pub created_at: chrono::DateTime<chrono::Utc>,
}
pub struct OrganizationService {
pub pool: PgPool,
}
impl OrganizationService {
pub fn new(pool: PgPool) -> Self {
Self { pool }
}
pub async fn create_organization(
&self,
name: &str,
slug: &str,
) -> Result<Organization, Box<dyn std::error::Error + Send + Sync>> {
let org = Organization {
org_id: Uuid::new_v4(),
name: name.to_string(),
slug: slug.to_string(),
created_at: chrono::Utc::now(),
};
Ok(org)
}
pub async fn get_organization(
&self,
org_id: Uuid,
) -> Result<Option<Organization>, Box<dyn std::error::Error + Send + Sync>> {
Ok(None)
}
pub async fn list_organizations(
&self,
_limit: i64,
_offset: i64,
) -> Result<Vec<Organization>, Box<dyn std::error::Error + Send + Sync>> {
Ok(vec![])
}
pub async fn update_organization(
&self,
_org_id: Uuid,
_name: Option<&str>,
_slug: Option<&str>,
) -> Result<Option<Organization>, Box<dyn std::error::Error + Send + Sync>> {
Ok(None)
}
pub async fn delete_organization(
&self,
_org_id: Uuid,
) -> Result<bool, Box<dyn std::error::Error + Send + Sync>> {
Ok(true)
}
}