Domain Knowledge Base - Real Estate
Come funziona il dominio, prima di scrivere una riga di codice? Scegli un documento dall'albero a sinistra: ogni pagina spiega una parte del modello.
Business Rules - Dominio Real Estate (IT)
Regole di business fondamentali del dominio immobiliare italiano. Codice BR-NNN, priorità Alta/Media/Bassa.
> Disclaimer fiscale: Le regole che citano aliquote o importi fiscali (IMU, cedolare secca, plusvalenza) hanno finalità divulgativa. Per decisioni fiscali rivolgersi a un professionista abilitato. Fonte: Agenzia delle Entrate (2024).
---
BR-001: Identificazione univoca dell'immobile tramite codice catastale
Codice: BR-001
Nome: Identificazione catastale univoca
Descrizione: Ogni immobile deve essere identificato nel sistema tramite il codice catastale completo (Comune + sezione + foglio + particella + subalterno). L'indirizzo postale non è un identificatore univoco affidabile.
Motivazione: Il catasto è il registro ufficiale degli immobili in Italia; il codice catastale è l'unico identificatore privo di ambiguità e opponibile a terzi.
Priorità: Alta
Tracciabilità: schema.sql particelle_catastali (UNIQUE comune_id, sezione, foglio, particella, subalterno), Agenzia delle Entrate
BR-002: Valori monetari come interi in centesimi
Codice: BR-002
Nome: Monetario in centesimi interi
Descrizione: Tutti i valori monetari del dominio (prezzi di vendita, canoni di locazione, caparre, imposte, provvigioni, depositi cauzionali) devono essere rappresentati come interi in centesimi EUR.
Motivazione: I tipi floating-point IEEE 754 introducono errori di arrotondamento su milioni di transazioni. €350.000 = 35.000.000 centesimi; esatto sempre.
Priorità: Alta
Tracciabilità: schema.sql prezzo_cents BIGINT, schema.prisma *Cents: bigint
BR-003: Stato dell'immobile tramite macchina a stati esplicita
Codice: BR-003
Nome: State machine immobile
Descrizione: Lo stato dell'immobile segue una macchina a stati esplicita con transizioni validate. Gli stati validi sono: DISPONIBILE → IN_TRATTATIVA → COMPROMESSO → ROGITO_IN_CORSO → VENDUTO / RITIRATO. Non sono ammessi flag booleani multipli (isForSale, isSold, isRented).
Motivazione: Gli stati booleani multipli creano combinazioni incoerenti (es. isForSale = true e isSold = true). La state machine garantisce consistenza del dominio.
Priorità: Alta
Tracciabilità: schema.sql property_status ENUM, state-machines/immobile-lifecycle.md
BR-004: Deposito cauzionale massimo 3 mensilità
Codice: BR-004
Nome: Limite deposito cauzionale
Descrizione: Il deposito cauzionale in un contratto di locazione abitativa non può essere superiore a 3 mensilità del canone pattuito.
Motivazione: Limite imperativo di legge (art. 11 L. 392/1978). La violazione rende la clausola nulla per la parte eccedente.
Priorità: Alta
Tracciabilità: schema.sql CHECK (deposito_cauzionale_cents <= canone_mensile_cents * 3), L. 392/1978 art. 11
BR-005: APE obbligatorio per vendita e locazione
Codice: BR-005 Nome: APE obbligatorio Descrizione: Ogni immobile commercializzato per vendita o locazione deve avere un APE (Attestato di Prestazione Energetica) valido (non scaduto, max 10 anni). L'assenza o la scadenza dell'APE impedisce la pubblicazione dell'annuncio e invalida il contratto. Motivazione: Obbligo di legge (D.Lgs. 192/2005). L'APE deve essere allegato al contratto di compravendita o locazione, pena la nullità. Priorità: Alta Tracciabilità: use-cases.md UC-08, D.Lgs. 192/2005
BR-006: Registrazione del contratto di locazione entro 30 giorni
Codice: BR-006 Nome: Registrazione locazione Descrizione: Il locatore (o suo delegato) deve provvedere alla registrazione del contratto di locazione presso l'Agenzia delle Entrate entro 30 giorni dalla data di stipula. Motivazione: Obbligo normativo. La mancata registrazione comporta: sanzioni amministrative, decadenza dai benefici fiscali (cedolare secca), opponibilità limitata ai terzi. Priorità: Alta Tracciabilità: business-processes.md BP-PROC-05, Agenzia delle Entrate 2024
BR-007: Conformità catastale e urbanistica dichiarata nel rogito
Codice: BR-007 Nome: Doppia conformità nel rogito Descrizione: Prima del rogito, il venditore deve dichiarare la conformità catastale (planimetria depositata = stato di fatto) e la conformità urbanistica (immobile costruito in conformità ai titoli edilizi). In caso di non conformità, il venditore deve regolarizzare l'immobile (variazione DOCFA o sanatoria) prima del rogito. Motivazione: Obbligo di legge (D.L. 78/2010 per conformità catastale; art. 46 DPR 380/2001 per conformità urbanistica). La dichiarazione falsa è reato. Priorità: Alta Tracciabilità: business-processes.md BP-PROC-01 Fase 6, D.L. 78/2010, DPR 380/2001
BR-008: Disclaimer fiscale obbligatorio su contenuto con lessico fiscale
Codice: BR-008 Nome: Disclaimer fiscale Descrizione: Qualsiasi dato fiscale pubblicato (aliquote IMU, cedolare secca, plusvalenza, imposte di registro, TARI, rendita catastale) deve essere accompagnato da: (1) disclaimer "Le informazioni hanno finalità divulgativa - per decisioni fiscali rivolgersi a un professionista abilitato", (2) fonte istituzionale, (3) anno di riferimento. Motivazione: Compliance con Direttiva UE 2019/770 (contenuti digitali). Prevenzione di responsabilità per consulenza fiscale non autorizzata. Priorità: Alta Tracciabilità: plan 39-09 threat model T-39-09-FISCAL, EU Directive 2019/770
BR-009: LTV massimo 80% per mutui standard
Codice: BR-009 Nome: LTV massimo mutuo Descrizione: Il rapporto LTV (Loan-to-Value) tra importo del mutuo e valore peritale dell'immobile non deve superare l'80% per i mutui ipotecari standard. Motivazione: Linea guida Banca d'Italia e EBA Guidelines on Loan Origination. LTV > 80% richiede garanzie aggiuntive (Fondo Consap) o condizioni più restrittive. Priorità: Media Tracciabilità: data.jsonl re-it-data-007/008, Banca d'Italia 2024
BR-010: Dati OMI con semestre di riferimento
Codice: BR-010 Nome: Tracciabilità dati OMI Descrizione: Ogni dato di quotazione OMI (valore EUR/mq) deve essere associato al semestre di riferimento (es. "2024-S1") e alla zona OMI (es. "B1-Milano"). I dati OMI sono aggiornati ogni 6 mesi; la cache deve avere TTL di 180 giorni. Motivazione: I dati OMI cambiano ogni semestre. Pubblicare dati obsoleti senza indicazione del semestre induce in errore l'utente. Priorità: Media Tracciabilità: corpus.jsonl re-it-corp-021, Agenzia delle Entrate OMI 2024