$this->getStabiliCount(), 'condomini_totali' => $this->getCondominiCount(), 'tickets_aperti' => $this->getTicketsApertiCount(), 'fatture_mese' => $this->getFattureMeseSum(), 'notifiche_recenti' => $this->getNotificheRecenti(), 'ultimi_tickets' => $this->getUltimiTickets() ]; return response()->json($stats); } catch (\Exception $e) { // Se ci sono errori, restituiamo dati mock return response()->json([ 'stabili_totali' => 12, 'condomini_totali' => 248, 'tickets_aperti' => 7, 'fatture_mese' => 15420.00, 'notifiche_recenti' => [ ['tipo' => 'warning', 'messaggio' => 'Scadenza rata - Condominio Roma'], ['tipo' => 'info', 'messaggio' => 'Nuovo ticket supporto #1234'], ['tipo' => 'success', 'messaggio' => 'Fattura #2024-001 pagata'] ], 'ultimi_tickets' => [ ['id' => '#1234', 'descrizione' => 'Problema ascensore', 'stato' => 'Aperto'], ['id' => '#1233', 'descrizione' => 'Perdita idrica', 'stato' => 'Urgente'], ['id' => '#1232', 'descrizione' => 'Richiesta info', 'stato' => 'Risolto'] ] ]); } } private function getStabiliCount() { try { if (DB::getSchemaBuilder()->hasTable('stabili')) { return DB::table('stabili')->count(); } } catch (\Exception $e) {} return 12; // fallback } private function getCondominiCount() { try { if (DB::getSchemaBuilder()->hasTable('soggetti')) { return DB::table('soggetti')->where('tipo', 'condomino')->count(); } } catch (\Exception $e) {} return 248; // fallback } private function getTicketsApertiCount() { try { if (DB::getSchemaBuilder()->hasTable('tickets')) { return DB::table('tickets')->where('stato', 'aperto')->count(); } } catch (\Exception $e) {} return 7; // fallback } private function getFattureMeseSum() { try { if (DB::getSchemaBuilder()->hasTable('fatture')) { return DB::table('fatture') ->whereMonth('created_at', now()->month) ->whereYear('created_at', now()->year) ->sum('importo') ?? 0; } } catch (\Exception $e) {} return 15420.00; // fallback } private function getNotificheRecenti() { // Per ora restituiamo dati mock, poi implementeremo una tabella notifiche return [ ['tipo' => 'warning', 'messaggio' => 'Scadenza rata - Condominio Roma'], ['tipo' => 'info', 'messaggio' => 'Nuovo ticket supporto #1234'], ['tipo' => 'success', 'messaggio' => 'Fattura #2024-001 pagata'] ]; } private function getUltimiTickets() { try { if (DB::getSchemaBuilder()->hasTable('tickets')) { return DB::table('tickets') ->select('id', 'oggetto as descrizione', 'stato') ->orderBy('created_at', 'desc') ->limit(3) ->get() ->toArray(); } } catch (\Exception $e) {} return [ ['id' => '#1234', 'descrizione' => 'Problema ascensore', 'stato' => 'Aperto'], ['id' => '#1233', 'descrizione' => 'Perdita idrica', 'stato' => 'Urgente'], ['id' => '#1232', 'descrizione' => 'Richiesta info', 'stato' => 'Risolto'] ]; } }