# 🗺️ ROADMAP VISIVA DEL PROGETTO (Mermaid) !-- Antigravity mostrerà questo blocco come un grafico interattivo delle fasi -- ```mermaid graph TD classDef completato fill#28a745,stroke#1e7e34,stroke-width2px,color#fff; classDef inCorso fill#ffc107,stroke#d39e00,stroke-width2px,color#000; classDef pianificato fill#6c757d,stroke#545b62,stroke-width2px,color#fff; subgraph Infrastruttura Core & Legacy A[Configurazione database.php gescon_import]completato -- B[Archivio locale SQLite]completato B -- C[Esecuzione 17 Migrazioni Staging]completato end subgraph Sincronizzazione & Git C -- D[Launcher supportoaggiornamento-nodo]completato D -- E[Tracking Git & Controllo Working Tree]completato E -- F[Avanzamento Asincrono Nodo]completato end subgraph Sviluppo Interfaccia & Blade F -- G[Fase 7 Condivisione Dati Centralizzati]inCorso G -- H[Maschere Blade Condomini]pianificato G -- I[Maschere Blade Spese e Rate]pianificato end ``` --- # 🧠 CONTESTO DI SISTEMA E DIZIONARIO ARCHITETTURALE (Gescon Legacy) Istruzione per l'Agent Non ignorare questo file. Usalo come unica sorgente di verità per lo stato dell'applicazione e per le convenzioni di scrittura del codice. ## 1. Stato Attuale Verificato (Fase 6) Database di Importazione Configurato il database di importazione `gescon_import` in `database.php` affinché utilizzi il driver `sqlite` e l'archivio locale `databasegescon_import.sqlite`. Migrazioni Isolate ed eseguite con successo le 17 migrazioni per la staging su SQLite locale. Sincronizzazione Abilitato il launcher di aggiornamento e sincronizzazione del nodo a `supportoaggiornamento-nodo` con tracking Git, controllo working tree e avanzamento asincrono. ## 2. Linee Guida di Programmazione Strutturata (Linguaggio Comune) Per evitare codice duplicato, query ripetitive nei controller e gestire l'alto numero di tabelle collegate della contabilità, applica tassativamente queste tre regole ### A. REGLA DI DEFAULT PER COMMENTI E FEEDBACK (Standard Open Source) Istruzione Mandataria per l'Agent Ogni volta che scrivi o modifichi il codice, o quando chiedi un commentoprocedura all'utente, devi commentare il codice in modo chiaro in lingua italiana. Specifica sempre a quale tabella del database SQLite (`gescon_import`) si riferisce l'operazione. Usa rigorosamente lo standard PHPDoc per i metodi, così da garantire la massima leggibilità per la futura community Open Source. ### B. Condivisione dei Dati Ricorrenti (Data Sharing) Problema I dati anagrafici fondamentali (es. lista condomini, condominio attivo) sono pochi ma servono in quasi tutte le maschere Blade. Soluzione Non eseguire query in ogni controller. Registra i dati globalmente nel metodo `boot()` di `AppServiceProvider.php` usando `Viewshare('condominiCondivisi', ...)` oppure tramite i View Components dedicati di Laravel. ### C. Gestione delle Relazioni Complesse tramite Viste (Database Views) Problema Il database contabile ha molte tabelle collegate, rendendo le query PHP con troppi `JOIN` pesanti e difficili da mantenere. Soluzione Crea delle Viste SQL direttamente nel database per unire le tabelle complesse in tabelle piatte virtuali. Mappa poi queste viste in Laravel come normali Modelli Eloquent in sola lettura per popolare le viste Blade in modo pulito. ### D. Strumentazione e Ispezione Strumento Visivo Utilizza l'estensione MCP DBCode integrata in Antigravity 2.0 per verificare la corrispondenza delle relazioni sulle tabelle SQLite ed evitare disallineamenti di schema durante la scrittura delle query. --- ## 3. Obiettivo Immediato (Fase 7) Implementare il meccanismo di condivisione centralizzata dei dati generali e generare i controller per le prime maschere Blade relative all'anagrafica centralizzata.