pub struct BoardMember {
pub id: Uuid,
pub owner_id: Uuid,
pub building_id: Uuid,
pub position: BoardPosition,
pub mandate_start: DateTime<Utc>,
pub mandate_end: DateTime<Utc>,
pub elected_by_meeting_id: Uuid,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}Expand description
Membre du conseil de copropriété (Article 577-8/4 Code Civil belge) Obligation légale pour immeubles >20 lots Les membres doivent être des copropriétaires (Owner), pas nécessairement des utilisateurs de la plateforme
Fields§
§id: Uuid§owner_id: Uuid§building_id: Uuid§position: BoardPosition§mandate_start: DateTime<Utc>§mandate_end: DateTime<Utc>§elected_by_meeting_id: Uuid§created_at: DateTime<Utc>§updated_at: DateTime<Utc>Implementations§
Source§impl BoardMember
impl BoardMember
Sourcepub fn new(
owner_id: Uuid,
building_id: Uuid,
position: BoardPosition,
mandate_start: DateTime<Utc>,
mandate_end: DateTime<Utc>,
elected_by_meeting_id: Uuid,
) -> Result<Self, String>
pub fn new( owner_id: Uuid, building_id: Uuid, position: BoardPosition, mandate_start: DateTime<Utc>, mandate_end: DateTime<Utc>, elected_by_meeting_id: Uuid, ) -> Result<Self, String>
Crée un nouveau membre du conseil avec validation.
Validation per Art. 3.90 CC (conseil de copropriété) : durée du mandat
≈ 1 an. Fenêtre 330–395 jours, alignée sur la contrainte DB
mandate_duration_one_year. NB : le plafond 3 ans est la règle syndic
(Art. 3.89 CC) — un mandat distinct, non applicable au conseil
(cf. tests/features/legal_compliance.feature §Art. 3.89 / Art. 3.90).
Sourcepub fn is_active_at(&self, moment: DateTime<Utc>) -> bool
pub fn is_active_at(&self, moment: DateTime<Utc>) -> bool
Vérifie si le mandat est actif à un instant donné.
Borne de fin exclusive : cohérent avec MembreDuConseil::en_fonction_le
(conseil_de_copropriete.rs), qui documente pourquoi — « le jour de
l’AG, le mandat est échu ». Permet aussi de tester précisément la
bascule d’une démission (resign) sans dépendre de Utc::now().
Sourcepub fn resign(&mut self, at: DateTime<Utc>)
pub fn resign(&mut self, at: DateTime<Utc>)
Démissionne : le mandat s’arrête à at, immédiatement (Story 4.7,
@edge). N’avance jamais mandate_end — seulement l’avancer a du sens
pour une démission.
Sourcepub fn days_remaining(&self) -> i64
pub fn days_remaining(&self) -> i64
Calcule le nombre de jours restants dans le mandat Retourne 0 si le mandat est expiré
Sourcepub fn expires_soon(&self) -> bool
pub fn expires_soon(&self) -> bool
Vérifie si le mandat expire bientôt (< 60 jours)
Trait Implementations§
Source§impl Clone for BoardMember
impl Clone for BoardMember
Source§fn clone(&self) -> BoardMember
fn clone(&self) -> BoardMember
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BoardMember
impl Debug for BoardMember
Source§impl<'de> Deserialize<'de> for BoardMember
impl<'de> Deserialize<'de> for BoardMember
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>,
Auto Trait Implementations§
impl Freeze for BoardMember
impl RefUnwindSafe for BoardMember
impl Send for BoardMember
impl Sync for BoardMember
impl Unpin for BoardMember
impl UnsafeUnpin for BoardMember
impl UnwindSafe for BoardMember
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§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