pub struct Meeting {Show 20 fields
pub id: Uuid,
pub organization_id: Uuid,
pub building_id: Uuid,
pub meeting_type: MeetingType,
pub title: String,
pub description: Option<String>,
pub scheduled_date: DateTime<Utc>,
pub location: String,
pub status: MeetingStatus,
pub agenda: Vec<String>,
pub attendees_count: Option<i32>,
pub quorum_validated: bool,
pub quorum_percentage: Option<f64>,
pub total_quotas: Option<f64>,
pub present_quotas: Option<f64>,
pub is_second_convocation: bool,
pub minutes_document_id: Option<Uuid>,
pub minutes_sent_at: Option<DateTime<Utc>>,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}Expand description
Représente une assemblée générale de copropriétaires
Fields§
§id: Uuid§organization_id: Uuid§building_id: Uuid§meeting_type: MeetingType§title: String§description: Option<String>§scheduled_date: DateTime<Utc>§location: String§status: MeetingStatus§agenda: Vec<String>§attendees_count: Option<i32>§quorum_validated: bool§quorum_percentage: Option<f64>§total_quotas: Option<f64>§present_quotas: Option<f64>§is_second_convocation: bool§minutes_document_id: Option<Uuid>§minutes_sent_at: Option<DateTime<Utc>>§created_at: DateTime<Utc>§updated_at: DateTime<Utc>Implementations§
Source§impl Meeting
impl Meeting
pub fn new( organization_id: Uuid, building_id: Uuid, meeting_type: MeetingType, title: String, description: Option<String>, scheduled_date: DateTime<Utc>, location: String, ) -> Result<Self, String>
pub fn add_agenda_item(&mut self, item: String) -> Result<(), String>
pub fn complete(&mut self, attendees_count: i32) -> Result<(), String>
pub fn cancel(&mut self) -> Result<(), String>
pub fn reschedule(&mut self, new_date: DateTime<Utc>) -> Result<(), String>
pub fn is_upcoming(&self) -> bool
Sourcepub fn validate_quorum(
&mut self,
present_quotas: f64,
total_quotas: f64,
) -> Result<bool, String>
pub fn validate_quorum( &mut self, present_quotas: f64, total_quotas: f64, ) -> Result<bool, String>
Valide le quorum de l’AG (Art. 3.87 §5 CC). Quorum atteint si les quotes-parts présentes/représentées dépassent 50% du total. Retourne Ok(true) si quorum atteint, Ok(false) si insuffisant (2e convocation requise).
Sourcepub fn check_quorum_for_voting(&self) -> Result<(), String>
pub fn check_quorum_for_voting(&self) -> Result<(), String>
Vérifie si le quorum est atteint avant d’autoriser un vote. Retourne Err si le quorum n’a pas encore été validé ou n’est pas atteint.
EXCEPTION (Art. 3.87 §5 CC): No quorum check required for second convocation (is_second_convocation = true). Belgian law: 2e convocation = voting allowed without quorum requirement.
Sourcepub fn set_minutes_sent(&mut self, document_id: Uuid) -> Result<(), String>
pub fn set_minutes_sent(&mut self, document_id: Uuid) -> Result<(), String>
Sets minutes as sent (Issue #313: PV distribution tracking). Can only be called once meeting is Completed.
Sourcepub fn is_minutes_overdue(&self) -> bool
pub fn is_minutes_overdue(&self) -> bool
Checks if minutes are overdue (Issue #313: 30 days after meeting completion). Returns true if meeting is Completed, minutes not yet sent, and >30 days have passed.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Meeting
impl<'de> Deserialize<'de> for Meeting
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<Meeting> for MeetingResponse
impl From<Meeting> for MeetingResponse
impl StructuralPartialEq for Meeting
Auto Trait Implementations§
impl Freeze for Meeting
impl RefUnwindSafe for Meeting
impl Send for Meeting
impl Sync for Meeting
impl Unpin for Meeting
impl UnwindSafe for Meeting
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Chain<T> for T
impl<T> Chain<T> for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Fake for T
impl<T> Fake for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more