Files
lmnp-organizer/CONTEXT.md
T
nessar e02ad54bcb feat: add unit and integration tests for rental management domain
- Introduced RentPaymentCorrectionTest and RentPaymentTest to validate payment and refund logic.
- Added PhoneNumberTest to ensure proper normalization of phone numbers.
- Created TenantTest to verify attachment management and tenant referencing.
- Implemented ReplacementRentalApiJourneyIT for end-to-end testing of rental and payment workflows.
- Documented architectural decisions in ADR-0014, emphasizing strict DDD boundaries and transaction management.
2026-08-17 14:18:15 +02:00

11 KiB

LMNP Organizer

Application de gestion de locations meublées non professionnelles (LMNP).

Language

Dépôt de garantie (Code: SecurityDeposit): Somme d'argent versée par le locataire à l'entrée dans le logement pour garantir l'exécution de ses obligations. Avoid: Caution

Garant (Code: Guarantor): Personne physique ou morale qui s'engage par écrit (acte de cautionnement) à payer le loyer et les charges au propriétaire en cas de défaillance du locataire. Avoid: Caution, caution solidaire

Locataire (Code: Tenant): Personne enregistrée pour pouvoir être cosignataire d'un bail, y compris avant l'activation de celui-ci. Un locataire référencé par un bail est conservé afin de ne pas rompre l'historique. Avoid: Candidat, occupant

Appartement (Code: Apartment): Logement meublé du portefeuille d'un bailleur, pouvant être associé à des baux successifs. Un appartement référencé par un bail est conservé afin de ne pas rompre l'historique. Avoid: Bien, logement, unité locative

Bail (Code: Lease): Contrat de location écrit liant le propriétaire à un ou plusieurs locataires (co-signataires) pour un appartement donné, définissant les conditions de la location (loyer, charges, durée). Les brouillons peuvent se chevaucher, mais un bail ne peut être activé s'il chevauche un bail actif ou archivé du même appartement ; seul un brouillon peut être supprimé définitivement, tandis qu'un bail actif est archivé à sa clôture afin de conserver son historique. Avoid: Contrat, convention de location

Avenant (Code: LeaseAmendment): Modification datée d'un bail actif qui conserve les conditions contractuelles avant et après sa prise d'effet. Un avenant peut modifier les futurs loyer, charges, date de fin, locataires ou garants, mais jamais l'appartement, la date de début, une échéance déjà payée ou une version antérieure du bail. Ses nouvelles conditions ne sont affichées et rendues dans les documents qu'à compter de sa date d'effet ; un changement financier en cours de mois est calculé au prorata sans effet rétroactif, puis arrondi une seule fois après combinaison des périodes avant et après avenant. Avoid: Modification de bail, édition du bail

Échéance de loyer (Code: RentDue): Loyer mensuel créé uniquement à l'activation d'un bail, généré à partir de ses conditions et suivi selon deux faits indépendants : son règlement (non réglé, partiellement réglé ou réglé) et son échéance temporelle (à venir ou en retard). Une échéance entièrement réglée constitue un historique définitif ; seules les échéances non entièrement réglées sont recalculées par un avenant, et l'archivage n'efface pas l'historique. Avoid: Paiement, mensualité

Règlement de loyer (Code: RentPayment): Encaissement daté d'un montant strictement positif pouvant être affecté en tout ou partie à des échéances de loyer, sans que la somme de ses affectations dépasse le montant reçu ; le surplus reste non affecté jusqu'à son report, son remboursement ou un autre traitement. Un règlement en brouillon est modifiable ou supprimable, tandis qu'un règlement confirmé est immuable et ne peut être corrigé que par contrepassation puis remplacement. Avoid: Échéance, mensualité

Contrepassation de règlement (Code: RentPaymentReversal): Écriture immuable et consultable qui annule les effets d'un règlement confirmé sans effacer le fait historique ni sa trace d'audit. Ses affectations sont annulées et un éventuel règlement corrigé est enregistré séparément. Avoid: Suppression, modification, correction silencieuse

Quittance de loyer (Code: RentReceipt): Document délivré lorsqu'une échéance de loyer est entièrement réglée, détaillant uniquement les montants affectés au loyer et aux charges de la période. Tout surplus non affecté du règlement en est exclu. Avoid: Reçu de règlement, reçu de paiement

Reçu de règlement (Code: PaymentReceipt): Document attestant le montant total d'un règlement confirmé et détaillant ses affectations, ses remboursements confirmés ainsi que tout surplus non affecté. Il peut être délivré pour un règlement partiel mais ne remplace pas une quittance de loyer. Avoid: Quittance de loyer

Remboursement de trop-perçu (Code: RentPaymentRefund): Restitution positive de tout ou partie du montant non affecté d'un règlement confirmé, sans jamais dépasser son solde non affecté. Une fois confirmé, le remboursement est immuable afin de préserver la trace d'audit. Avoid: Suppression du règlement, affectation négative

Affectation de règlement (Code: PaymentAllocation): Part d'un règlement attribuée à une échéance de loyer sans dépasser le solde restant de celle-ci. Un règlement peut être réparti entre plusieurs échéances d'un même bail, mais jamais entre plusieurs baux. Avoid: Règlement, paiement

Échéancier courant: Ensemble continu d'échéances allant de la plus ancienne entre le dernier loyer payé et tout loyer impayé, jusqu'au prochain loyer à échoir. Sans loyer payé, il commence à la première échéance impayée du bail. Aucun impayé n'est masqué, même s'il précède un paiement plus récent. Avoid: Fenêtre mensuelle, loyers utiles

Amortissement (Code: Amortization): Perte de valeur comptable d'un actif (bâtiment décomposé en composants, mobilier) étalée sur sa durée d'utilisation théorique, déductible fiscalement sous le régime réel. Avoid: Dépréciation, usure

Exercice fiscal (Code: FiscalYear): Période comptable (du 1er janvier au 31 décembre en France) servant de base à l'établissement de la déclaration fiscale annuelle de l'activité LMNP. Avoid: Année fiscale, période comptable

Prêt immobilier (Code: Mortgage): Financement bancaire souscrit pour l'acquisition d'un bien immobilier, dont les intérêts et l'assurance sont déductibles fiscalement au régime réel. Avoid: Emprunt, crédit

Tableau d'amortissement (Code: AmortizationSchedule): Échéancier de remboursement d'un prêt détaillant, pour chaque mensualité, la part de capital amorti, d'intérêts, d'assurance et le capital restant dû. Avoid: Échéancier, plan de remboursement

Amortissement par composants (Code: ComponentAmortization): Méthode comptable consistant à décomposer la valeur d'acquisition d'un immeuble en différents postes (gros œuvre, toiture, finitions) pour les amortir sur leurs durées de vie respectives. Avoid: Amortissement global

Quote-part de terrain (Code: LandShare): Part du prix d'achat globale du bien immobilier correspondant à la valeur du sol (terrain) et exclue de la base amortissable car non sujette à dépréciation. Avoid: Part terrain

Charge déductible (Code: DeductibleExpense): Dépense courante d'exploitation (assurance, taxe foncière, frais bancaires) déduite à 100% du résultat de l'exercice au cours duquel elle est payée. Avoid: Frais généraux, dépense directe

Immobilisation (Code: CapitalizedAsset): Dépense de valeur significative (seuil fiscal de 500 € HT en France) pour des travaux ou du mobilier, inscrite à l'actif du bilan pour être amortie sur plusieurs exercices. Avoid: Investissement, charge à amortir

Inventaire du mobilier (Code: FurnitureInventory): Liste exhaustive et détaillée des meubles, appareils et équipements mis à la disposition du locataire dans un logement meublé, obligatoirement annexée au bail. Avoid: Liste des meubles

État des lieux (Code: PropertyConditionReport): Constat écrit et contradictoire de l'état de chaque pièce du logement et de ses équipements lors de l'entrée (remise des clés) ou de la sortie (restitution des clés) du locataire, illustré de photos de preuve. Avoid: Constat, check-list d'entrée

Parcours de photos (Code: PhotoSequence): Séquence guidée de clichés requis (ex. climatisation, cuisine, salle de bain) à prendre obligatoirement dans l'application lors de l'établissement d'un état des lieux pour fiabiliser le constat. Avoid: Album photos, galerie

Calendrier (Code: Calendar): Vue chronologique centralisant l'ensemble des échéances générées par le système et les événements saisis manuellement. Avoid: Agenda, planning

Événement (Code: Event): Fait daté marquant une étape clé de la gestion (échéance de loyer, fin de contrat, assemblée générale, visite de maintenance). Avoid: Tâche, rappel

Bailleur (Code: Landlord): Personne physique ou entité fiscale (ex. indivision) propriétaire des appartements, titulaire des prêts et émettrice des baux. Avoid: Propriétaire, bailleur social

La première version du profil bailleur ne couvre qu'une personne physique : prénom, nom, e-mail, téléphone et adresse postale. Chaque profil est lié au sujet OIDC (sub) de son compte ; l'e-mail est une coordonnée modifiable mais unique. Chaque bailleur possède un portefeuille isolé des autres comptes. Le profil est modifiable depuis les réglages. Ses coordonnées sont reprises dans leur intégralité dans les baux et les quittances de loyer. Aucun de ces PDF ne peut être généré tant que le profil n'est pas complet.

Liasse fiscale (Code: TaxDeclarationPack): Ensemble des documents comptables déclaratifs (formulaires Cerfa 2033-A à 2033-G en France) à transmettre annuellement à l'administration fiscale au régime réel. Avoid: Déclaration fiscale, liasse d'impôt

Déficit reportable (Code: TaxLossCarryforward): Déficit fiscal d'un exercice (charges supérieures aux recettes) reportable sur les bénéfices LMNP des 10 années suivantes. Avoid: Perte fiscale, déficit reporté

Amortissement différé (Code: DeferredAmortization): Part des amortissements exclue des charges déductibles d'un exercice pour ne pas générer ou aggraver un déficit fiscal, reportable indéfiniment sur les exercices futurs bénéficiaires. Avoid: Amortissement reporté, amortissement bloqué

Pièce jointe (Code: Attachment): Fichier numérique (facture PDF, photo de preuve d'état des lieux, contrat signé) associé à un enregistrement et stocké de manière persistante sur le serveur. Avoid: Fichier, document brut

Tableau de bord (Code: Dashboard): Interface d'accueil synthétique regroupant les indicateurs clés opérationnels et financiers du bailleur (revenus, taux d'occupation, cash-flow, retards de paiement) sous forme de compteurs et de graphiques. Avoid: Page d'accueil, synthèse

Archivage (Code: DataArchiving): Processus de conservation sécurisée et restreinte des données fiscales et financières d'anciens locataires après clôture ou résiliation du bail pour se conformer aux obligations légales. Avoid: Mise de côté, suppression logique

Purge (Code: DataPurging): Action de suppression définitive et irréversible de fichiers ou données personnelles sensibles (justificatifs de loyers, photos d'états des lieux, dossiers de candidats) à l'expiration de leur durée de conservation légale RGPD. Avoid: Nettoyage, effacement temporaire