<?php

namespace App\View\Composers;

use Illuminate\View\View;
use App\Models\Stabile;

class SidebarComposer
{
    /**
     * Bind data to the view.
     */
    public function compose(View $view): void
    {
        // Ottieni tutti gli stabili per l'utente corrente
        $stabili = collect([
            (object)['denominazione' => 'Stabile Demo 1'],
            (object)['denominazione' => 'Stabile Demo 2'],
            (object)['denominazione' => 'Condominio Centrale'],
            (object)['denominazione' => 'Villaggio Verde'],
        ]);

        // Se l'utente è autenticato e ha stabili reali, usa quelli
        if (auth()->check()) {
            try {
                // Prova a ottenere stabili reali dal database
                $stabiliReali = Stabile::query()
                    ->select('id', 'denominazione')
                    ->orderBy('denominazione')
                    ->get();
                
                if ($stabiliReali->isNotEmpty()) {
                    $stabili = $stabiliReali;
                }
            } catch (\Exception $e) {
                // Se c'è un errore con il database, usa i dati demo
                logger('Errore caricamento stabili: ' . $e->getMessage());
            }
        }

        // Recupera stabile attivo dalla sessione o usa il primo
        $stabileAttivo = session('stabile_corrente', $stabili->first()->denominazione ?? 'Nessuno');
        $annoAttivo = session('anno_corrente', date('Y'));
        $gestione = session('gestione_corrente', 'Ord.');

        $view->with([
            'stabili' => $stabili,
            'stabileAttivo' => $stabileAttivo,
            'annoAttivo' => $annoAttivo,
            'gestione' => $gestione,
        ]);
    }
}
