pub struct SyndicDashboardStats {
pub total_buildings: i64,
pub total_units: i64,
pub declared_units: i64,
pub total_owners: i64,
pub pending_expenses_count: i64,
pub pending_expenses_amount: Decimal,
pub next_meeting: Option<NextMeetingInfo>,
}Fields§
§total_buildings: i64§total_units: i64Lots effectivement encodés (lignes de la table units).
declared_units: i64Lots déclarés à l’acte de base, sommés sur les immeubles de
l’organisation (buildings.total_units).
Les deux nombres mesurent des choses différentes et étaient affichés sous le même libellé : le tableau de bord annonçait « 0 lots au total » pendant que la liste des immeubles affichait « 8 Lots ». Tous deux étaient exacts, mais l’un comptait l’encodage et l’autre la déclaration. Les exposer ensemble lève l’ambiguïté, comme le fait déjà la fiche immeuble avec son « 0/8 ».
total_owners: i64§pending_expenses_count: i64§pending_expenses_amount: DecimalTotal des dépenses en attente, en EUR.
Decimal : la colonne expenses.amount est en NUMERIC(12,2) depuis
la migration 20260502000000. La lire en f64 était une dégradation
gratuite d’une valeur déjà exacte (même défaut que celui trouvé dans
find_overdue_expenses_without_reminders sous #661).
serde::float conserve la représentation JSON numérique attendue par
OwnerDashboard.svelte / SyndicDashboard.svelte, qui typent ce champ
number — aucun drift de contrat.
next_meeting: Option<NextMeetingInfo>Trait Implementations§
Source§impl Clone for SyndicDashboardStats
impl Clone for SyndicDashboardStats
Source§fn clone(&self) -> SyndicDashboardStats
fn clone(&self) -> SyndicDashboardStats
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 SyndicDashboardStats
impl Debug for SyndicDashboardStats
Auto Trait Implementations§
impl Freeze for SyndicDashboardStats
impl RefUnwindSafe for SyndicDashboardStats
impl Send for SyndicDashboardStats
impl Sync for SyndicDashboardStats
impl Unpin for SyndicDashboardStats
impl UnsafeUnpin for SyndicDashboardStats
impl UnwindSafe for SyndicDashboardStats
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> 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