Skip to main content

Module acp

Module acp 

Source
Expand description

Acp — Association des Copropriétaires (Art. 3.84-3.89 Code Civil belge).

Story 1.1 — première brique de la refacto domaine Organization(0..1) → ACP(1..N) → Building(1..N) (cf. docs/maury/refonte-ux-multi-role-acp/architecture.md §2.1, ADR-0010).

Une ACP est la personne juridique propriétaire collective de l’immeuble en copropriété. Elle est distincte du cabinet syndic (Organization) qui la gère : un cabinet peut gérer plusieurs ACPs, et une ACP peut être auto-gérée (aucun cabinet).

§Invariants

  • name non vide après trim, longueur ≥ 2 caractères (PRD FR1, FR3, INV-1).
  • slug kebab-case dérivé du name (unicité scope = repository).
  • address_street, address_postal_code, address_city non vides.
  • organization_id est Option<Uuid> (NULL = ACP auto-gérée — ADR-0010).
  • legal_status par défaut "copropriete_belge".

§Hexagonal

Aucune dépendance sqlx / actix_web. Les erreurs de domaine retournent AcpError (enum dédié), mappé vers AppError::Validation côté application (cf. application/error.rs, pattern WP-A* #433).

Structs§

Acp
Représente une Association des Copropriétaires (ACP) — racine d’agrégat.
AcpMetrics
Métriques agrégées d’une ACP (calculées par le repository via JOIN sur tous les buildings de l’ACP — Story H6). Pureté : aucun I/O ici.
AcpNotConformantError
Story H5 — Erreur typée de non-conformité d’une ACP (Art. 3.84 CC, INV-L3).
ReserveFundInsufficientError
Story H13 — Erreur typée : fonds de réserve sous le seuil légal des 5 % (Art. 3.86 §3, loi 2019) et non renoncé par l’AG (4/5). Mappée vers AppError::ReserveFundInsufficient (HTTP 422 + RESERVE_FUND_INSUFFICIENT) par From<> dans application/error.rs. Cf. ADR-0012.

Enums§

AcpError
Erreurs métier produites par le domaine Acp.
AcpLegalStatus
Statut juridique d’une ACP. Copropriete correspond à “copropriete_belge” en DB (encodage stable v0.1.0).

Constants§

DEFAULT_TOTAL_TANTIEMES
Dénominateur par défaut de l’acte de base (millièmes belges classiques). L’acte authentique peut fixer 10000 (dix-millièmes) ou une autre base — cf. Art. 3.84 CC + ADR-0010. Jamais hard-codé ailleurs : toute logique de conformité lit Acp::total_tantiemes.
RESERVE_FUND_RATE
Story H13 — Taux minimal légal du fonds de réserve : 5 % des charges ordinaires de l’exercice N-1 (Art. 3.86 §3 Code civil, loi du 18/06/2018 en vigueur depuis 2019). Obligatoire ; l’AG peut y renoncer à la majorité des 4/5 (reserve_fund_waived). Cf. ADR-0012.