BoardDecisionRepository

Trait BoardDecisionRepository 

Source
pub trait BoardDecisionRepository: Send + Sync {
    // Required methods
    fn create<'life0, 'life1, 'async_trait>(
        &'life0 self,
        decision: &'life1 BoardDecision,
    ) -> Pin<Box<dyn Future<Output = Result<BoardDecision, 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<BoardDecision>, 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<BoardDecision>, String>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn find_by_meeting<'life0, 'async_trait>(
        &'life0 self,
        meeting_id: Uuid,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<BoardDecision>, String>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn find_by_status<'life0, 'async_trait>(
        &'life0 self,
        building_id: Uuid,
        status: DecisionStatus,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<BoardDecision>, String>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn find_overdue<'life0, 'async_trait>(
        &'life0 self,
        building_id: Uuid,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<BoardDecision>, String>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn find_deadline_approaching<'life0, 'async_trait>(
        &'life0 self,
        building_id: Uuid,
        days_threshold: i32,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<BoardDecision>, String>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn update<'life0, 'life1, 'async_trait>(
        &'life0 self,
        decision: &'life1 BoardDecision,
    ) -> Pin<Box<dyn Future<Output = Result<BoardDecision, 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_status<'life0, 'async_trait>(
        &'life0 self,
        building_id: Uuid,
        status: DecisionStatus,
    ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn count_overdue<'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;
}
Expand description

Port (interface) pour le repository des décisions du conseil

Required Methods§

Source

fn create<'life0, 'life1, 'async_trait>( &'life0 self, decision: &'life1 BoardDecision, ) -> Pin<Box<dyn Future<Output = Result<BoardDecision, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Crée une nouvelle décision à suivre

Source

fn find_by_id<'life0, 'async_trait>( &'life0 self, id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Option<BoardDecision>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Trouve une décision par son ID

Source

fn find_by_building<'life0, 'async_trait>( &'life0 self, building_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<BoardDecision>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Trouve toutes les décisions d’un immeuble

Source

fn find_by_meeting<'life0, 'async_trait>( &'life0 self, meeting_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<BoardDecision>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Trouve toutes les décisions d’une assemblée générale

Source

fn find_by_status<'life0, 'async_trait>( &'life0 self, building_id: Uuid, status: DecisionStatus, ) -> Pin<Box<dyn Future<Output = Result<Vec<BoardDecision>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Trouve les décisions par statut pour un immeuble

Source

fn find_overdue<'life0, 'async_trait>( &'life0 self, building_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<BoardDecision>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Trouve les décisions en retard (deadline dépassée et statut != completed/cancelled)

Source

fn find_deadline_approaching<'life0, 'async_trait>( &'life0 self, building_id: Uuid, days_threshold: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<BoardDecision>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Trouve les décisions avec deadline proche (< N jours)

Source

fn update<'life0, 'life1, 'async_trait>( &'life0 self, decision: &'life1 BoardDecision, ) -> Pin<Box<dyn Future<Output = Result<BoardDecision, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Met à jour une décision (changement de statut, ajout de notes)

Source

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,

Supprime une décision

Source

fn count_by_status<'life0, 'async_trait>( &'life0 self, building_id: Uuid, status: DecisionStatus, ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Compte les décisions par statut pour un immeuble

Source

fn count_overdue<'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,

Compte le total de décisions en retard pour un immeuble

Implementors§