Skip to main content

koprogo_api/domain/copropriete/
mod.rs

1//! Contexte borné **copropriété** — le noyau légal.
2//!
3//! Répond du Code civil, Livre 3, chapitre « De la copropriété forcée des
4//! immeubles ou groupes d'immeubles bâtis » (Art. 3.84 à 3.100), texte
5//! coordonné consulté sur Justel le 2026-09-02.
6//!
7//! Ce contexte ne connaît aucun autre : ni la plateforme qui l'héberge, ni
8//! la norme comptable qui traduit ses chiffres, ni les fonctions
9//! communautaires qui s'y greffent. Un identifiant venu d'ailleurs y reste
10//! un `Uuid` nu — c'est ce qui empêche une notion de plateforme de
11//! redevenir une clé d'accès à une notion légale (ADR-0045).
12//!
13//! Voir RFC-0002 pour le registre des invariants et leur couverture.
14//!
15//! **Arbitrages de placement.** `owner` y figure parce qu'un copropriétaire
16//! est d'abord un membre de l'assemblée générale (Art. 3.87 § 1er), pas une
17//! ligne de compte ; le mettre du côté comptable rejouerait l'erreur que
18//! l'ADR-0045 corrige. `document` y figure pour le registre des décisions
19//! (Art. 3.93 § 4), `technical_inspection` pour l'obligation de conservation
20//! de l'immeuble qui est l'objet même de l'ACP (Art. 3.86 § 3), et
21//! `contract_evaluation` pour l'évaluation annuelle des contrats
22//! (Art. 3.89 § 5, 12°).
23
24pub mod acp;
25pub mod acp_enabled_module;
26pub mod ag_session;
27pub mod age_request;
28pub mod board_alert;
29pub mod board_decision;
30pub mod board_member;
31pub mod building;
32pub mod commissaire_aux_comptes;
33pub mod comptes_de_lacp;
34pub mod conflit_dinterets;
35pub mod conseil_de_copropriete;
36pub mod consignation_pv;
37pub mod contract_evaluation;
38pub mod contrat_lie;
39pub mod convocation;
40pub mod convocation_recipient;
41pub mod decompte_des_lots;
42pub mod delai_de_convocation;
43pub mod document;
44pub mod envoi_convocation;
45pub mod evaluation_des_contrats;
46pub mod fenetre_ag_ordinaire;
47pub mod fonds_de_reserve;
48pub mod lien_notaire;
49pub mod majorites;
50pub mod mandate;
51pub mod meeting;
52pub mod mention_numero_entreprise;
53pub mod owner;
54pub mod personnalite_juridique;
55pub mod poll;
56pub mod poll_vote;
57pub mod procurations;
58pub mod registre_legal;
59pub mod releve_notaire;
60pub mod requete_ag;
61pub mod resolution;
62pub mod signatures_pv;
63pub mod solidarite;
64pub mod syndic_mandate;
65pub mod syndic_response;
66pub mod technical_inspection;
67pub mod unit;
68pub mod unit_owner;
69pub mod vote;
70
71pub use acp::{
72    Acp, AcpError, AcpLegalStatus, AcpMetrics, AcpNotConformantError, ReserveFundInsufficientError,
73};
74pub use ag_session::{AgSession, AgSessionStatus, VideoPlatform};
75pub use age_request::{AgeRequest, AgeRequestCosignatory, AgeRequestStatus};
76pub use board_alert::{AlertSeverity, AlerteRefusee, BoardAlert};
77pub use board_decision::{BoardDecision, DecisionStatus};
78pub use board_member::{BoardMember, BoardPosition};
79pub use building::{Building, BuildingMetrics, BuildingNotConformantError};
80pub use commissaire_aux_comptes::{commissariat_de_lexercice, Commissariat};
81pub use comptes_de_lacp::{AffectationDuCompte, CompteBancaire, ManquementBancaire};
82pub use conflit_dinterets::{verifier_conflit_dinterets, ConflitDinterets};
83pub use conseil_de_copropriete::{MembreDuConseil, RegimeDuConseil};
84pub use consignation_pv::{echeance as echeance_consignation_pv, EtatConsignation};
85pub use contract_evaluation::ContractEvaluation;
86pub use contrat_lie::{autorisation_valable, ContratRefuse, LienAvecLeSyndic};
87pub use convocation::{Convocation, ConvocationStatus, ConvocationType};
88pub use convocation_recipient::{AttendanceStatus, ConvocationRecipient, QualiteDuMandataire};
89pub use decompte_des_lots::{compte_dans_le_seuil, lots_comptes, SEUIL_LEGAL};
90pub use delai_de_convocation::{evaluer as evaluer_delai_de_convocation, DelaiDeConvocation};
91pub use document::{Document, DocumentType};
92pub use envoi_convocation::{envoi_regulier, AccordAutreMoyen, EnvoiIrregulier, ModeDenvoi};
93pub use evaluation_des_contrats::{verifier_exercice, ContratDeLacp, RapportDevaluation};
94pub use fenetre_ag_ordinaire::{FenetreAgOrdinaire, FenetreInvalide};
95pub use fonds_de_reserve::{DotationInsuffisante, StatutFondsReserve};
96pub use lien_notaire::{LienNotaire, LienNotaireError, DUREE_JOURS as DUREE_LIEN_NOTAIRE_JOURS};
97pub use majorites::{majorite_pour_modifier_les_quotes_parts, NatureDeDecision};
98pub use mandate::{Mandate, MandateKind, MandateScope, MAX_MANDATE_DURATION_DAYS};
99pub use meeting::{
100    Meeting, MeetingCompletionChecklist, MeetingMode, MeetingModeError, MeetingNotCompletableError,
101    MeetingStatus, MeetingType, MissingInvariant,
102};
103pub use mention_numero_entreprise::{
104    verifier_les_documents, DocumentProduit, MentionNumeroEntreprise,
105};
106pub use owner::Owner;
107pub use personnalite_juridique::{personnalite, PersonnaliteJuridique};
108pub use poll::{Poll, PollOption, PollStatus, PollType};
109pub use poll_vote::PollVote;
110pub use procurations::{
111    plafonner_les_voix, repartir_le_plafond, verifier_procurations, DecompteDesVoix,
112    EcartDePlafond, ProcurationRefusee,
113};
114pub use registre_legal::{rapport_de_conformite, InvariantLegal, REGISTRE};
115pub use releve_notaire::{DemandeDeReleve, EtatDemande};
116pub use requete_ag::{deposer as deposer_requete_ag, RequeteAg, RequeteIrrecevable};
117pub use resolution::{MajorityType, Resolution, ResolutionKind, ResolutionStatus, ResolutionType};
118pub use signatures_pv::{pv_valablement_signe, SeanceCloturee, SignatureManquante};
119pub use solidarite::{poursuivables_pour_le_tout, repartir_charge, Obligation, Titulaire};
120pub use syndic_mandate::{SyndicMandate, SyndicMandateError};
121pub use syndic_response::{
122    sla_window_for_severity, SyndicResponse, ALLOWED_ACTIONS, MAX_RESPONSE_BODY_LEN,
123    MIN_RESPONSE_BODY_LEN,
124};
125pub use technical_inspection::{
126    InspectionStatus, InspectionType, TechnicalInspection, TechnicalInspectionError,
127};
128pub use unit::{Unit, UnitType};
129pub use unit_owner::{
130    assert_single_voting_representative, assert_voting_right_active, voting_right_status,
131    LotHolder, OwnershipType, UnitOwner, VotingRightError, VotingRightStatus,
132    VotingRightSuspendedError,
133};
134pub use vote::{Vote, VoteChoice};