koprogo_api/application/ports/
organization_repository.rs

1use crate::domain::entities::Organization;
2use async_trait::async_trait;
3use uuid::Uuid;
4
5#[async_trait]
6pub trait OrganizationRepository: Send + Sync {
7    async fn create(&self, org: &Organization) -> Result<Organization, String>;
8    async fn find_by_id(&self, id: Uuid) -> Result<Option<Organization>, String>;
9    async fn find_by_slug(&self, slug: &str) -> Result<Option<Organization>, String>;
10    async fn find_all(&self) -> Result<Vec<Organization>, String>;
11    async fn update(&self, org: &Organization) -> Result<Organization, String>;
12    async fn delete(&self, id: Uuid) -> Result<bool, String>;
13    async fn count_buildings(&self, org_id: Uuid) -> Result<i64, String>;
14}