# NETGESCON - ANALISI UNITÀ IMMOBILIARI

## 📋 OVERVIEW
Le unità immobiliari sono i singoli locali/appartamenti che compongono uno stabile. Ogni unità ha caratteristiche proprie e può avere diversi utilizzi e tipologie di proprietà/inquilinato.

## 🏠 STRUTTURA DATI UNITÀ IMMOBILIARE

### Identificativi Base
- **ID Unità** (Primary Key, Auto-increment)
- **Stabile ID** (Foreign Key)
- **Codice Unità** (es: "A-1-3-05" = Palazzina A, Scala 1, Piano 3, Interno 05)
- **Denominazione** (es: "Appartamento 5 - Piano Terzo")

### Posizione Fisica
- **Palazzina** (A, B, C... o numerico 1, 2, 3...)
- **Scala** (1, 2, 3... o A, B, C...)
- **Piano** (-2, -1, 0, 1, 2, 3... dove 0=piano terra)
- **Interno** (numero interno/appartamento)
- **Posizione Dettagliata** (fronte strada, cortile interno, angolo, etc)

### Dati Catastali Specifici
- **Sezione Urbana**
- **Foglio** 
- **Particella**
- **Subalterno** (UNIVOCO per ogni unità)
- **Categoria Catastale** (A/1, A/2, A/3, A/4, C/1, C/2, etc)
- **Classe**
- **Consistenza** (vani, mq, mc)
- **Rendita Catastale**
- **Superficie Commerciale** (mq)
- **Superficie Calpestabile** (mq)

### Tipologia e Utilizzo
- **Tipo Unità**
  - Abitazione
  - Studio professionale
  - Attività commerciale
  - Magazzino/Deposito
  - Box/Garage
  - Cantina
  - Soffitta
  - **Spazio Comune Redditizio** ⭐ (NOVITÀ)
  - **Locale Tecnico** ⭐ (NOVITÀ)
  - Altro

- **Utilizzo Attuale**
  - Abitazione principale
  - Abitazione secondaria
  - Studio medico
  - Studio legale
  - Struttura ricettiva (B&B, Airbnb)
  - Attività commerciale
  - **Locale commerciale in affitto** ⭐ (NOVITÀ)
  - **Sala eventi affittabile** ⭐ (NOVITÀ)
  - **Parcheggio a pagamento** ⭐ (NOVITÀ)
  - **Lavanderia comune** ⭐ (NOVITÀ)
  - **Deposito attrezzature** ⭐ (NOVITÀ)
  - Ufficio
  - Magazzino
  - Non utilizzato

### Autorizzazioni e Licenze
- **CIN** (Codice Identificativo Nazionale - strutture ricettive)
- **Licenza Commerciale** (se attività)
- **Autorizzazione Professionale** (studi medici/legali)
- **Cambio Destinazione d'Uso** (pratica comune)
- **Data Scadenza Autorizzazioni**
- **Note Autorizzazioni**

### Caratteristiche Strutturali
- **Numero Locali** 
- **Numero Bagni**
- **Numero Camere da Letto**
- **Presenza Cucina** (abitabile/cucinotto/angolo cottura)
- **Balconi/Terrazze** (numero + mq totali)
- **Giardino Privato** (SI/NO + mq)
- **Posto Auto** (assegnato/proprietà/nessuno)
- **Cantina** (assegnata/proprietà/nessuna)
- **Soffitta** (assegnata/proprietà/nessuna)

### Impianti
- **Riscaldamento** (centralizzato/autonomo/assente)
- **Climatizzazione** (presente/assente)
- **Impianto Elettrico** (anno rifacimento/conformità)
- **Impianto Idraulico** (anno rifacimento/stato)
- **Impianto Gas** (presente/assente/certificazione)
- **Infissi** (tipologia/anno sostituzione)

## 👥 GESTIONE PROPRIETÀ E INQUILINATO

### Proprietari
- **Tipo Proprietà**
  - Unico Proprietario
  - Comproprietà (più proprietari)
  - Nuda Proprietà + Usufrutto
  - Società/Ente

- **Quota Proprietà** (%, se comproprietà)
- **Data Acquisto**
- **Provenienza** (acquisto, eredità, donazione, etc)

### Inquilini/Conduttori
- **Presenza Inquilino** (SI/NO)
- **Tipo Contratto**
  - Abitazione (4+4 anni)
  - Abitazione transitorio
  - Commerciale (6+6 anni)
  - Turistico breve
  - Comodato gratuito
  - Altro

- **Data Inizio Contratto**
- **Data Scadenza Contratto**
- **Canone Mensile**
- **Modalità Pagamento**
- **Deposito Cauzionale**

### Deleghe e Rappresentanze
- **Delega Amministratore** (chi può parlare per l'unità)
- **Delega Assemblea** (chi vota in assemblea)
- **Referente Principale** (persona di contatto)
- **Amministratore di Sostegno** (se presente)

## 💰 GESTIONE ECONOMICA UNITÀ

### Millesimi di Proprietà
- **Millesimi Generali** (quota su 1000 totali)
- **Millesimi Riscaldamento** (se centralizzato)
- **Millesimi Acqua** (se centralizzata)
- **Millesimi Ascensore** (se presente e utilizzabile)
- **Millesimi Scale** (per manutenzione scale specifiche)
- **Altri Millesimi Particolari**

### Divisione Spese
**REGOLA BASE**: Ogni voce di spesa può essere divisa diversamente tra Proprietario e Inquilino

#### Spese Ordinarie
- **Pulizia Scale**: 100% Proprietario / 0% Inquilino (default)
- **Energia Elettrica**: 100% Proprietario / 0% Inquilino
- **Manutenzione Ascensore**: 100% Proprietario / 0% Inquilino
- **Amministratore**: 100% Proprietario / 0% Inquilino
- **Assicurazione**: 100% Proprietario / 0% Inquilino

#### Spese Straordinarie
- **Rifacimento Tetto**: 100% Proprietario / 0% Inquilino
- **Rifacimento Facciate**: 100% Proprietario / 0% Inquilino
- **Sostituzione Ascensore**: 100% Proprietario / 0% Inquilino

#### Spese Miste (configurabili)
- **Portineria**: 70% Proprietario / 30% Inquilino (esempio)
- **Giardinaggio**: 80% Proprietario / 20% Inquilino (esempio)

#### Spese Particolari per Utilizzo
**Strutture Ricettive** (B&B, Airbnb):
- Maggiorazione del 50% su tutte le spese ordinarie
- Deposito cauzionale maggiorato
- Controlli periodici conformità

**Attività Commerciali**:
- Calcolo in base a orari apertura
- Maggiorazioni per utilizzo intensivo
- Spese pubblicitarie condominiali

### Rendite e Entrate
- **Canoni Pubblicità** (su tetto/facciate): 100% Proprietario
- **Affitti Antenne/Ripetitori**: 100% Proprietario  
- **Rimborsi Assicurazioni**: ripartiti secondo evento
- **Bonus/Detrazioni Fiscali**: 100% Proprietario (salvo accordi)

## 🏗️ SCHEMA DATABASE (Preliminare)

```sql
-- Tabella principale unità immobiliari
CREATE TABLE unita_immobiliari (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    stabile_id BIGINT NOT NULL,
    codice_unita VARCHAR(20) NOT NULL,
    denominazione VARCHAR(255),
    
    -- Posizione fisica
    palazzina VARCHAR(10),
    scala VARCHAR(10), 
    piano TINYINT,
    interno VARCHAR(10),
    posizione_dettagliata VARCHAR(255),
    
    -- Dati catastali
    sezione_urbana VARCHAR(10),
    foglio VARCHAR(20),
    particella VARCHAR(20), 
    subalterno VARCHAR(20) UNIQUE NOT NULL,
    categoria_catastale VARCHAR(10),
    classe VARCHAR(10),
    consistenza DECIMAL(8,2),
    rendita_catastale DECIMAL(10,2),
    
    -- Superfici
    superficie_commerciale DECIMAL(8,2),
    superficie_calpestabile DECIMAL(8,2),
    
    -- Tipologia
    tipo_unita ENUM('abitazione','studio','commerciale','magazzino','box','cantina','soffitta','altro'),
    utilizzo_attuale VARCHAR(255),
    
    -- Caratteristiche
    numero_locali TINYINT,
    numero_bagni TINYINT,
    numero_camere TINYINT,
    ha_balcone BOOLEAN DEFAULT FALSE,
    mq_balconi DECIMAL(6,2),
    ha_giardino BOOLEAN DEFAULT FALSE,
    mq_giardino DECIMAL(8,2),
    
    -- Millesimi
    millesimi_generali DECIMAL(6,3) NOT NULL,
    millesimi_riscaldamento DECIMAL(6,3),
    millesimi_acqua DECIMAL(6,3),
    millesimi_ascensore DECIMAL(6,3),
    
    -- Impianti e stato
    riscaldamento ENUM('centralizzato','autonomo','assente'),
    anno_ristrutturazione YEAR,
    stato_conservazione ENUM('ottimo','buono','discreto','da_ristrutturare'),
    
    -- Audit
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    created_by INT,
    updated_by INT,
    
    -- Vincoli e indici
    FOREIGN KEY (stabile_id) REFERENCES stabili(id) ON DELETE CASCADE,
    INDEX idx_stabile (stabile_id),
    INDEX idx_subalterno (subalterno),
    INDEX idx_posizione (stabile_id, palazzina, scala, piano, interno),
    UNIQUE KEY unique_unita (stabile_id, palazzina, scala, piano, interno)
);

-- Tabella proprietari unità
CREATE TABLE proprieta_unita (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    unita_id BIGINT NOT NULL,
    persona_id BIGINT NOT NULL, -- FK a anagrafica
    tipo_proprieta ENUM('unico','comproprietario','nudo_proprietario','usufruttuario','societa'),
    quota_proprieta DECIMAL(5,2) DEFAULT 100.00, -- % di proprietà
    data_acquisizione DATE,
    modalita_acquisizione ENUM('acquisto','eredita','donazione','altro'),
    note TEXT,
    attivo BOOLEAN DEFAULT TRUE,
    
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    FOREIGN KEY (unita_id) REFERENCES unita_immobiliari(id) ON DELETE CASCADE,
    INDEX idx_unita (unita_id),
    INDEX idx_persona (persona_id)
);

-- Tabella inquilini/conduttori
CREATE TABLE contratti_locazione (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    unita_id BIGINT NOT NULL,
    persona_id BIGINT NOT NULL, -- FK a anagrafica  
    tipo_contratto ENUM('abitazione_ordinario','abitazione_transitorio','commerciale','turistico','comodato','altro'),
    data_inizio DATE NOT NULL,
    data_scadenza DATE,
    canone_mensile DECIMAL(8,2),
    deposito_cauzionale DECIMAL(8,2),
    modalita_pagamento VARCHAR(255),
    attivo BOOLEAN DEFAULT TRUE,
    note TEXT,
    
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    FOREIGN KEY (unita_id) REFERENCES unita_immobiliari(id) ON DELETE CASCADE,
    INDEX idx_unita (unita_id),
    INDEX idx_inquilino (persona_id),
    INDEX idx_scadenza (data_scadenza)
);

-- Tabella divisione spese per unità
CREATE TABLE divisione_spese_unita (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    unita_id BIGINT NOT NULL,
    tipo_spesa VARCHAR(100) NOT NULL, -- 'ordinaria_pulizia', 'straordinaria_tetto', etc
    percentuale_proprietario DECIMAL(5,2) DEFAULT 100.00,
    percentuale_inquilino DECIMAL(5,2) DEFAULT 0.00,
    note VARCHAR(255),
    
    FOREIGN KEY (unita_id) REFERENCES unita_immobiliari(id) ON DELETE CASCADE,
    UNIQUE KEY unique_spesa_unita (unita_id, tipo_spesa),
    INDEX idx_unita (unita_id)
);

-- Tabella autorizzazioni/licenze unità
CREATE TABLE autorizzazioni_unita (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    unita_id BIGINT NOT NULL,
    tipo_autorizzazione ENUM('cin','licenza_commerciale','autorizzazione_sanitaria','cambio_destinazione','altro'),
    codice_autorizzazione VARCHAR(100),
    data_rilascio DATE,
    data_scadenza DATE,
    ente_rilascio VARCHAR(255),
    stato ENUM('attiva','scaduta','sospesa','revocata'),
    note TEXT,
    
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    FOREIGN KEY (unita_id) REFERENCES unita_immobiliari(id) ON DELETE CASCADE,
    INDEX idx_unita (unita_id),
    INDEX idx_scadenza (data_scadenza),
    INDEX idx_tipo (tipo_autorizzazione)
);
```

## 🔄 AUTOMATISMI E FUNZIONALITÀ

### Generazione Automatica da Stabile
Quando si crea uno stabile, per ogni unità generata automaticamente:

1. **Calcolo Codice Unità**: `{Palazzina}-{Scala}-{Piano}-{Interno}`
2. **Eredità Dati Catastali**: Sezione, Foglio, Particella dallo stabile
3. **Generazione Subalterno**: Progressivo o manuale
4. **Calcolo Millesimi**: Automatico se tutti uguali, manuale se diversi
5. **Posizionamento Fisico**: Coordinate nella struttura del building

### Calcoli Automatici Millesimi
```php
// Se tutti appartamenti uguali
$millesimi_per_unita = 1000 / $numero_totale_unita;

// Se in base a superficie
$millesimi_unita = ($superficie_unita / $superficie_totale_stabile) * 1000;

// Verifica totale = 1000
$controllo_somma = array_sum($millesimi_tutte_unita); // DEVE essere 1000
```

### Gestione Vicini per Problemi
```php
// Algoritmo identificazione unità sovrastante
function getUnitaSovrastante($unita) {
    return UnitaImmobiliare::where('stabile_id', $unita->stabile_id)
        ->where('palazzina', $unita->palazzina)
        ->where('scala', $unita->scala)  
        ->where('piano', $unita->piano + 1)
        ->where('interno', $unita->interno)
        ->first();
}

// Unità laterali stesso piano
function getUnitaLaterali($unita) {
    return UnitaImmobiliare::where('stabile_id', $unita->stabile_id)
        ->where('palazzina', $unita->palazzina)
        ->where('scala', $unita->scala)
        ->where('piano', $unita->piano)
        ->where('interno', '!=', $unita->interno)
        ->get();
}
```

## 📊 REPORTISTICA E ANALISI

### Dashboard Unità
- **Occupazione**: % unità occupate vs libere
- **Tipologie Utilizzo**: grafico torta
- **Morosità**: unità con rate non pagate
- **Scadenze Contratti**: prossime 6 mesi
- **Autorizzazioni in Scadenza**: alert automatici

### Verifiche Conformità
- **Check Millesimi**: somma = 1000
- **Verifica Codici Catastali**: univocità subalterni
- **Controllo Quote Proprietà**: somma = 100% per unità
- **Audit Modifiche**: log di tutte le variazioni

## 🚀 FUNZIONALITÀ AVANZATE

### Integrazione con Catasto
- **Verifica automatica** dati catastali online
- **Aggiornamento rendite** catastali
- **Download visure** automatiche
- **Alert variazioni** catastali

### Gestione Smart
- **QR Code per unità**: accesso rapido a dati
- **App mobile proprietari**: controllo dati propri
- **Notifiche push**: scadenze, comunicazioni
- **Chat condominiale**: comunicazione tra unità

### Analytics Avanzate  
- **Analisi consumi**: per tipologia utilizzo
- **Predizione morosità**: machine learning
- **Ottimizzazione spese**: suggerimenti automatici
- **Benchmark mercato**: confronto valori immobiliari

## 🏛️ SPAZI COMUNI COME UNITÀ IMMOBILIARI ⭐ NOVITÀ

### Concetto Innovativo
Gli **spazi comuni redditizi** vengono gestiti come vere e proprie unità immobiliari per:
- **Tracciamento separato dei ricavi**
- **Gestione fiscale specifica**
- **Ripartizione trasparente delle rendite**
- **Manutenzione dedicata**
- **Contratti d'affitto regolari**

### Tipologie Spazi Comuni Redditizi

#### Locali Commerciali di Proprietà Condominiale
- **Negozi piano terra**
  - Superficie commerciale
  - Vetrine su strada
  - Accesso indipendente
  - Utenze separate
- **Uffici/Studi**
  - Superficie ufficio
  - Accessi dedicati
  - Impianti autonomi

#### Spazi Eventi e Servizi
- **Sala Condominiale**
  - Capienza persone
  - Attrezzature incluse
  - Tariffazione oraria/giornaliera
  - Regolamento utilizzo
- **Terrazza/Giardino Comune**
  - Superficie utilizzabile
  - Capienza eventi
  - Attrezzature fisse
  - Limitazioni orarie

#### Servizi a Pagamento
- **Lavanderia Comune**
  - Numero postazioni
  - Attrezzature (lavatrici, asciugatrici)
  - Tariffazione per utilizzo
  - Manutenzione programmata
- **Parcheggi Visitatori Premium**
  - Posti auto numerati
  - Tariffazione oraria/giornaliera
  - Sistema di controllo accessi
  - Videosorveglianza

### Gestione Economica Spazi Comuni

#### Ricavi e Contratti
- **Contratti di Locazione**
  - Durata contratto
  - Canone mensile
  - Clausole di adeguamento ISTAT
  - Spese accessorie a carico inquilino
- **Tariffari Servizi**
  - Costi orari/giornalieri
  - Sconti per condomini
  - Pacchetti promozionali
  - Penali per danni

#### Divisione Spese e Ricavi
- **Algoritmo Ripartizione Ricavi**
  - Detrazione spese di gestione
  - Accantonamento manutenzione (%)
  - Distribuzione residuo per millesimi
  - Opzione reinvestimento miglioramenti
- **Spese Specifiche**
  - Manutenzione dedicata
  - Utenze separate (quando possibile)
  - Assicurazioni specifiche
  - Tasse e imposte

#### Reporting Fiscale
- **Dichiarazioni Redditi**
  - Redditi da locazione
  - Cedolare secca (se applicabile)
  - Detrazioni spese manutenzione
- **IVA su Servizi**
  - Regime forfettario
  - Fatturazione elettronica
  - Registri IVA

### Locali Tecnici Come Unità Speciali

#### Categorizzazione
- **Centrale Termica**
  - Superficie e volume
  - Potenza impianti
  - Certificazioni sicurezza
  - Schedule manutenzione
- **Locale Contatori**
  - Numero utenze gestite
  - Tipologie (gas, acqua, elettrico)
  - Accessibilità enti
- **Locale Pompe/Autoclave**
  - Potenza impianti
  - Certificazioni
  - Manutenzione programmata

#### Gestione Accessi e Sicurezza
- **Chiavi e Autorizzazioni**
  - Amministratore (accesso completo)
  - Ditte manutenzione (accesso programmato)
  - Condomini (accesso limitato e accompagnato)
  - Vigili del Fuoco (accesso emergenza)
- **Registro Accessi**
  - Data e ora accesso
  - Persona autorizzata
  - Motivo intervento
  - Durata permanenza
  - Note anomalie

---

**Data Analisi:** 14/07/2025  
**Stato:** BOZZA - In Definizione  
**Prossimo Step:** Integrazione con Anagrafica + Design API
