resolveSoggettoId($user); $unitaImmobiliari = $this->resolveUserUnita($user); $stabiliIds = $unitaImmobiliari->pluck('stabile_id')->filter()->unique(); // Statistiche principali $stats = [ 'unita_possedute' => $unitaImmobiliari->count(), 'ticket_aperti' => Ticket::where('soggetto_richiedente_id', $soggettoId) ->whereIn('stato', ['Aperto', 'Preso in Carico', 'In Lavorazione'])->count(), 'rate_scadute' => 0, // Implementeremo quando avremo le rate 'documenti_disponibili' => Documento::whereHasMorph('documentable', ['App\Models\Stabile'], function ($q) use ($stabiliIds) { $q->whereIn('id', $stabiliIds); })->count(), ]; // Ticket recenti $ticketRecenti = Ticket::where('soggetto_richiedente_id', $soggettoId) ->with(['stabile', 'categoriaTicket']) ->orderBy('created_at', 'desc') ->take(5) ->get(); // Rate in scadenza (placeholder) $rateInScadenza = collect(); // Ultimi documenti $ultimiDocumenti = Documento::whereHasMorph('documentable', ['App\Models\Stabile'], function ($q) use ($stabiliIds) { $q->whereIn('id', $stabiliIds); })->orderBy('created_at', 'desc')->take(5)->get(); $serviceContactsCount = UnitaRecapitoServizio::query() ->whereIn('unita_id', $unitaImmobiliari->pluck('id')->all()) ->where('attivo', true) ->count(); return view('condomino.dashboard', compact( 'stats', 'unitaImmobiliari', 'ticketRecenti', 'rateInScadenza', 'ultimiDocumenti', 'serviceContactsCount' )); } }