pub trait ResolutionRepository: Send + Sync {
// Required methods
fn create<'life0, 'life1, 'async_trait>(
&'life0 self,
resolution: &'life1 Resolution,
) -> Pin<Box<dyn Future<Output = Result<Resolution, 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<Resolution>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn find_by_meeting_id<'life0, 'async_trait>(
&'life0 self,
meeting_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Resolution>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn find_by_status<'life0, 'async_trait>(
&'life0 self,
status: ResolutionStatus,
) -> Pin<Box<dyn Future<Output = Result<Vec<Resolution>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn update<'life0, 'life1, 'async_trait>(
&'life0 self,
resolution: &'life1 Resolution,
) -> Pin<Box<dyn Future<Output = Result<Resolution, 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 update_vote_counts<'life0, 'async_trait>(
&'life0 self,
resolution_id: Uuid,
vote_count_pour: i32,
vote_count_contre: i32,
vote_count_abstention: i32,
total_voting_power_pour: f64,
total_voting_power_contre: f64,
total_voting_power_abstention: f64,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn close_voting<'life0, 'async_trait>(
&'life0 self,
resolution_id: Uuid,
final_status: ResolutionStatus,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_meeting_vote_summary<'life0, 'async_trait>(
&'life0 self,
meeting_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Resolution>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
Port (trait) for Resolution repository operations
Required Methods§
Sourcefn create<'life0, 'life1, 'async_trait>(
&'life0 self,
resolution: &'life1 Resolution,
) -> Pin<Box<dyn Future<Output = Result<Resolution, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create<'life0, 'life1, 'async_trait>(
&'life0 self,
resolution: &'life1 Resolution,
) -> Pin<Box<dyn Future<Output = Result<Resolution, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Create a new resolution
Sourcefn find_by_id<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Resolution>, 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<Resolution>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Find a resolution by ID
Sourcefn find_by_meeting_id<'life0, 'async_trait>(
&'life0 self,
meeting_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Resolution>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn find_by_meeting_id<'life0, 'async_trait>(
&'life0 self,
meeting_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Resolution>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Find all resolutions for a meeting
Sourcefn find_by_status<'life0, 'async_trait>(
&'life0 self,
status: ResolutionStatus,
) -> Pin<Box<dyn Future<Output = Result<Vec<Resolution>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn find_by_status<'life0, 'async_trait>(
&'life0 self,
status: ResolutionStatus,
) -> Pin<Box<dyn Future<Output = Result<Vec<Resolution>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Find resolutions by status
Sourcefn update<'life0, 'life1, 'async_trait>(
&'life0 self,
resolution: &'life1 Resolution,
) -> Pin<Box<dyn Future<Output = Result<Resolution, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update<'life0, 'life1, 'async_trait>(
&'life0 self,
resolution: &'life1 Resolution,
) -> Pin<Box<dyn Future<Output = Result<Resolution, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Update a resolution (for vote counts and status changes)
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 a resolution
Sourcefn update_vote_counts<'life0, 'async_trait>(
&'life0 self,
resolution_id: Uuid,
vote_count_pour: i32,
vote_count_contre: i32,
vote_count_abstention: i32,
total_voting_power_pour: f64,
total_voting_power_contre: f64,
total_voting_power_abstention: f64,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update_vote_counts<'life0, 'async_trait>(
&'life0 self,
resolution_id: Uuid,
vote_count_pour: i32,
vote_count_contre: i32,
vote_count_abstention: i32,
total_voting_power_pour: f64,
total_voting_power_contre: f64,
total_voting_power_abstention: f64,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Update vote counts for a resolution