pub trait LocalExchangeRepository: Send + Sync {
Show 16 methods
// Required methods
fn create<'life0, 'life1, 'async_trait>(
&'life0 self,
exchange: &'life1 LocalExchange,
) -> Pin<Box<dyn Future<Output = Result<LocalExchange, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn find_by_id<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<LocalExchange>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn find_by_building<'life0, 'async_trait>(
&'life0 self,
building_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn find_by_building_and_status<'life0, 'life1, 'async_trait>(
&'life0 self,
building_id: Uuid,
status: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn find_by_provider<'life0, 'async_trait>(
&'life0 self,
provider_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn find_by_requester<'life0, 'async_trait>(
&'life0 self,
requester_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn find_by_owner<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn find_active_by_building<'life0, 'async_trait>(
&'life0 self,
building_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn find_available_by_building<'life0, 'async_trait>(
&'life0 self,
building_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn find_by_type<'life0, 'life1, 'async_trait>(
&'life0 self,
building_id: Uuid,
exchange_type: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn update<'life0, 'life1, 'async_trait>(
&'life0 self,
exchange: &'life1 LocalExchange,
) -> Pin<Box<dyn Future<Output = Result<LocalExchange, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn delete<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn count_by_building<'life0, 'async_trait>(
&'life0 self,
building_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn count_by_building_and_status<'life0, 'life1, 'async_trait>(
&'life0 self,
building_id: Uuid,
status: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_total_credits_exchanged<'life0, 'async_trait>(
&'life0 self,
building_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<i32, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_average_exchange_rating<'life0, 'async_trait>(
&'life0 self,
building_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<f32>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
Repository trait for LocalExchange entity (SEL - Local Exchange Trading System)
Required Methods§
Sourcefn create<'life0, 'life1, 'async_trait>(
&'life0 self,
exchange: &'life1 LocalExchange,
) -> Pin<Box<dyn Future<Output = Result<LocalExchange, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create<'life0, 'life1, 'async_trait>(
&'life0 self,
exchange: &'life1 LocalExchange,
) -> Pin<Box<dyn Future<Output = Result<LocalExchange, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Create a new exchange offer
Sourcefn find_by_id<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn find_by_id<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Find an exchange by ID
Sourcefn find_by_building<'life0, 'async_trait>(
&'life0 self,
building_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn find_by_building<'life0, 'async_trait>(
&'life0 self,
building_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Find all exchanges for a building
Sourcefn find_by_building_and_status<'life0, 'life1, 'async_trait>(
&'life0 self,
building_id: Uuid,
status: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_by_building_and_status<'life0, 'life1, 'async_trait>(
&'life0 self,
building_id: Uuid,
status: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Find exchanges by building and status
Sourcefn find_by_provider<'life0, 'async_trait>(
&'life0 self,
provider_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn find_by_provider<'life0, 'async_trait>(
&'life0 self,
provider_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Find exchanges by provider
Sourcefn find_by_requester<'life0, 'async_trait>(
&'life0 self,
requester_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn find_by_requester<'life0, 'async_trait>(
&'life0 self,
requester_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Find exchanges by requester
Sourcefn find_by_owner<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn find_by_owner<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Find exchanges by owner (as provider OR requester)
Sourcefn find_active_by_building<'life0, 'async_trait>(
&'life0 self,
building_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn find_active_by_building<'life0, 'async_trait>(
&'life0 self,
building_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Find active exchanges (Offered, Requested, InProgress)
Sourcefn find_available_by_building<'life0, 'async_trait>(
&'life0 self,
building_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn find_available_by_building<'life0, 'async_trait>(
&'life0 self,
building_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Find available exchanges (status = Offered)
Sourcefn find_by_type<'life0, 'life1, 'async_trait>(
&'life0 self,
building_id: Uuid,
exchange_type: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_by_type<'life0, 'life1, 'async_trait>(
&'life0 self,
building_id: Uuid,
exchange_type: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<LocalExchange>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Find exchanges by type
Sourcefn update<'life0, 'life1, 'async_trait>(
&'life0 self,
exchange: &'life1 LocalExchange,
) -> Pin<Box<dyn Future<Output = Result<LocalExchange, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update<'life0, 'life1, 'async_trait>(
&'life0 self,
exchange: &'life1 LocalExchange,
) -> Pin<Box<dyn Future<Output = Result<LocalExchange, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Update an exchange
Sourcefn delete<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Delete an exchange
Sourcefn count_by_building<'life0, 'async_trait>(
&'life0 self,
building_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count_by_building<'life0, 'async_trait>(
&'life0 self,
building_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Count exchanges by building
Sourcefn count_by_building_and_status<'life0, 'life1, 'async_trait>(
&'life0 self,
building_id: Uuid,
status: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn count_by_building_and_status<'life0, 'life1, 'async_trait>(
&'life0 self,
building_id: Uuid,
status: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Count exchanges by building and status