Skip to main content

SyndicMandate

Struct SyndicMandate 

Source
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: Uuid

L’ACP gérée. C’est elle qui possède la comptabilité, pas le syndic.

§organization_id: Uuid

Le 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

Source

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.

Source

pub fn is_active(&self) -> bool

Le mandat est-il en cours ?

Source

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.

Source

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).

Source

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.

Source

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.

Source

pub fn holder_at( mandats: &[SyndicMandate], moment: DateTime<Utc>, ) -> Option<Uuid>

Le mandataire à une date donnée, parmi un historique.

Renvoie None si l’ACP n’était confiée à personne — cas réel : une ACP encodée par le SuperAdmin mais pas encore confiée, ou une ACP auto-gérée (ADR-0010).

Trait Implementations§

Source§

impl Clone for SyndicMandate

Source§

fn clone(&self) -> SyndicMandate

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SyndicMandate

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for SyndicMandate

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for SyndicMandate

Source§

fn eq(&self, other: &SyndicMandate) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for SyndicMandate

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for SyndicMandate

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> Fake for T

§

fn fake<U>(&self) -> U
where Self: FakeBase<U>,

§

fn fake_with_rng<U, R>(&self, rng: &mut R) -> U
where R: RngExt + ?Sized, Self: FakeBase<U>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more