pub struct EtatDate {Show 30 fields
pub id: Uuid,
pub organization_id: Uuid,
pub building_id: Uuid,
pub unit_id: Uuid,
pub reference_date: DateTime<Utc>,
pub requested_date: DateTime<Utc>,
pub generated_date: Option<DateTime<Utc>>,
pub delivered_date: Option<DateTime<Utc>>,
pub status: EtatDateStatus,
pub language: EtatDateLanguage,
pub reference_number: String,
pub notary_name: String,
pub notary_email: String,
pub notary_phone: Option<String>,
pub building_name: String,
pub building_address: String,
pub unit_number: String,
pub unit_floor: Option<String>,
pub unit_area: Option<f64>,
pub ordinary_charges_quota: f64,
pub extraordinary_charges_quota: f64,
pub owner_balance: f64,
pub arrears_amount: f64,
pub monthly_provision_amount: f64,
pub total_balance: f64,
pub approved_works_unpaid: f64,
pub additional_data: Value,
pub pdf_file_path: Option<String>,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}Expand description
Représente un État Daté pour mutation immobilière (Art. 577-2 Code Civil belge)
Un état daté est un document légal obligatoire pour toute vente de lot en copropriété. Il contient 16 sections légales détaillant la situation financière et juridique du lot.
Délai légal: Maximum 15 jours pour génération (rappels si > 10j) Validité: 3 mois à partir de la date de référence
Fields§
§id: Uuid§organization_id: Uuid§building_id: Uuid§unit_id: Uuid§reference_date: DateTime<Utc>Date de référence pour les calculs financiers
requested_date: DateTime<Utc>Date de demande par le notaire
generated_date: Option<DateTime<Utc>>Date de génération du document
delivered_date: Option<DateTime<Utc>>Date de délivrance au notaire
status: EtatDateStatusStatut du workflow
language: EtatDateLanguageLangue du document
reference_number: StringNuméro de référence unique (ex: “ED-2025-001-BLD123-U456”)
notary_name: StringInformations du notaire demandeur
notary_email: String§notary_phone: Option<String>§building_name: String§building_address: String§unit_number: String§unit_floor: Option<String>§unit_area: Option<f64>§ordinary_charges_quota: f64Quote-part charges ordinaires (en %)
extraordinary_charges_quota: f64Quote-part charges extraordinaires (en %)
owner_balance: f64Solde du propriétaire (positif = crédit, négatif = débit)
arrears_amount: f64Montant des arriérés (dettes)
monthly_provision_amount: f64Montant mensuel des provisions
total_balance: f64Solde total (somme de tous les comptes)
approved_works_unpaid: f64Montant total des travaux votés mais non encore payés
additional_data: ValueDonnées structurées pour les sections complexes { “ongoing_disputes”: […], // Section 7: Litiges en cours “building_insurance”: {…}, // Section 8: Assurance immeuble “condo_regulations”: {…}, // Section 9: Règlement copropriété “recent_meeting_minutes”: […], // Section 10: PV dernières AG “budget”: {…}, // Section 11: Budget prévisionnel “reserve_fund”: {…}, // Section 12: Fonds de réserve “condo_debts_credits”: {…}, // Section 13: Dettes/créances copropriété “works_progress”: […], // Section 14: État d’avancement travaux “guarantees_mortgages”: […], // Section 15: Garanties et hypothèques “additional_observations”: “…” // Section 16: Observations diverses }
pdf_file_path: Option<String>Chemin du fichier PDF généré (si généré)
created_at: DateTime<Utc>§updated_at: DateTime<Utc>Implementations§
Source§impl EtatDate
impl EtatDate
pub fn new( organization_id: Uuid, building_id: Uuid, unit_id: Uuid, reference_date: DateTime<Utc>, language: EtatDateLanguage, notary_name: String, notary_email: String, notary_phone: Option<String>, building_name: String, building_address: String, unit_number: String, unit_floor: Option<String>, unit_area: Option<f64>, ordinary_charges_quota: f64, extraordinary_charges_quota: f64, ) -> Result<Self, String>
Sourcepub fn mark_in_progress(&mut self) -> Result<(), String>
pub fn mark_in_progress(&mut self) -> Result<(), String>
Marque l’état daté comme en cours de génération
Sourcepub fn mark_generated(&mut self, pdf_file_path: String) -> Result<(), String>
pub fn mark_generated(&mut self, pdf_file_path: String) -> Result<(), String>
Marque l’état daté comme généré
Sourcepub fn mark_delivered(&mut self) -> Result<(), String>
pub fn mark_delivered(&mut self) -> Result<(), String>
Marque l’état daté comme délivré au notaire
Sourcepub fn is_expired(&self) -> bool
pub fn is_expired(&self) -> bool
Vérifie si l’état daté est expiré (>3 mois depuis la date de référence)
Sourcepub fn is_overdue(&self) -> bool
pub fn is_overdue(&self) -> bool
Vérifie si la génération est en retard (>10 jours depuis la demande)
Sourcepub fn days_since_request(&self) -> i64
pub fn days_since_request(&self) -> i64
Calcule le nombre de jours depuis la demande
Trait Implementations§
Source§impl<'de> Deserialize<'de> for EtatDate
impl<'de> Deserialize<'de> for EtatDate
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<EtatDate> for EtatDateResponse
impl From<EtatDate> for EtatDateResponse
impl StructuralPartialEq for EtatDate
Auto Trait Implementations§
impl Freeze for EtatDate
impl RefUnwindSafe for EtatDate
impl Send for EtatDate
impl Sync for EtatDate
impl Unpin for EtatDate
impl UnwindSafe for EtatDate
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