pub struct SyndicMandate {
pub id: Uuid,
pub acp_id: Uuid,
pub organization_id: Uuid,
pub started_at: DateTime<Utc>,
pub ended_at: Option<DateTime<Utc>>,
pub appointed_by_meeting_id: Option<Uuid>,
pub revoked_by_meeting_id: Option<Uuid>,
pub end_reason: Option<String>,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}Expand description
Mandat de gestion d’une ACP par un cabinet syndic, borné dans le temps.
ended_at == None signifie « mandat en cours ». Un mandat clos n’est
jamais supprimé : c’est lui qui permet de répondre à « qui gérait cette
ACP à telle date ».
Fields§
§id: Uuid§acp_id: UuidL’ACP gérée. C’est elle qui possède la comptabilité, pas le syndic.
organization_id: UuidLe cabinet syndic mandataire.
started_at: DateTime<Utc>Prise d’effet du mandat.
ended_at: Option<DateTime<Utc>>Fin du mandat. None = en cours.
appointed_by_meeting_id: Option<Uuid>Décision d’assemblée générale ayant désigné le syndic (Art. 3.89 CC).
Optionnel : la première mise en gestion d’une ACP encodée par le SuperAdmin SaaS précède l’AG qui la confirmera.
revoked_by_meeting_id: Option<Uuid>Décision d’assemblée générale ayant mis fin au mandat.
end_reason: Option<String>Motif de fin, pour la trace : non-renouvellement, révocation, démission, cession de portefeuille.
created_at: DateTime<Utc>§updated_at: DateTime<Utc>Implementations§
Source§impl SyndicMandate
impl SyndicMandate
Sourcepub fn new(
acp_id: Uuid,
organization_id: Uuid,
started_at: DateTime<Utc>,
appointed_by_meeting_id: Option<Uuid>,
) -> Self
pub fn new( acp_id: Uuid, organization_id: Uuid, started_at: DateTime<Utc>, appointed_by_meeting_id: Option<Uuid>, ) -> Self
Confie une ACP à un cabinet syndic.
Sourcepub fn covers(&self, moment: DateTime<Utc>) -> bool
pub fn covers(&self, moment: DateTime<Utc>) -> bool
Le mandat couvrait-il cette date ?
Bornes : début INCLUS, fin EXCLUE. Le jour où un mandat s’achève est le premier jour du suivant — deux syndics ne peuvent pas être en fonction au même instant sur la même ACP, et aucun instant n’est laissé sans mandataire au moment d’une passation.
C’est ce que consulte un état daté : il porte sur une date de référence et engage le syndic en fonction à cette date.
Sourcepub fn echeance_legale(&self) -> DateTime<Utc>
pub fn echeance_legale(&self) -> DateTime<Utc>
L’échéance légale du mandat : trois ans après sa prise d’effet.
Au-delà, le mandat est expiré de plein droit — l’assemblée doit l’avoir renouvelé par décision expresse (Art. 3.89 § 1er).
Sourcepub fn est_expire_de_plein_droit(&self, moment: DateTime<Utc>) -> bool
pub fn est_expire_de_plein_droit(&self, moment: DateTime<Utc>) -> bool
Le mandat a-t-il dépassé ses trois ans à cette date ?
Un mandat sans date de fin qui franchit son échéance N’EST PLUS valable : le silence de l’assemblée ne le reconduit pas. C’est précisément ce que le plafond empêche.
Vrai aussi pour un mandat clos APRÈS son échéance : la clôture tardive ne régularise pas la période excédentaire.
Sourcepub fn revoke(
&mut self,
ended_at: DateTime<Utc>,
revoked_by_meeting_id: Option<Uuid>,
end_reason: Option<String>,
) -> Result<(), SyndicMandateError>
pub fn revoke( &mut self, ended_at: DateTime<Utc>, revoked_by_meeting_id: Option<Uuid>, end_reason: Option<String>, ) -> Result<(), SyndicMandateError>
Met fin au mandat.
Refuse une fin postérieure à l’échéance légale : dater la clôture d’un mandat au-delà de ses trois ans reviendrait à écrire dans le registre qu’il a couvert une période qu’il ne pouvait pas couvrir.
Trait Implementations§
Source§impl Clone for SyndicMandate
impl Clone for SyndicMandate
Source§fn clone(&self) -> SyndicMandate
fn clone(&self) -> SyndicMandate
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 SyndicMandate
impl Debug for SyndicMandate
Source§impl<'de> Deserialize<'de> for SyndicMandate
impl<'de> Deserialize<'de> for SyndicMandate
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 PartialEq for SyndicMandate
impl PartialEq for SyndicMandate
Source§fn eq(&self, other: &SyndicMandate) -> bool
fn eq(&self, other: &SyndicMandate) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for SyndicMandate
impl Serialize for SyndicMandate
impl StructuralPartialEq for SyndicMandate
Auto Trait Implementations§
impl Freeze for SyndicMandate
impl RefUnwindSafe for SyndicMandate
impl Send for SyndicMandate
impl Sync for SyndicMandate
impl Unpin for SyndicMandate
impl UnsafeUnpin for SyndicMandate
impl UnwindSafe for SyndicMandate
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