recordTitleAttribute('nome_modello') ->columns([ Tables\Columns\ImageColumn::make('immagine_path') ->label('Anteprima') ->disk('public') ->height(60) ->square(), Tables\Columns\TextColumn::make('nome_modello') ->label('Modello') ->description(fn (Model $record) => trim(($record->sistema ? ucfirst($record->sistema) : '').' '.($record->type ?? ''))), Tables\Columns\TextColumn::make('dimensioni') ->label('Dimensioni') ->state(fn (Model $record) => $record->larghezza && $record->altezza ? "{$record->larghezza} × {$record->altezza} cm" : '—'), Tables\Columns\TextColumn::make('quantita')->label('Q.tà'), Tables\Columns\TextColumn::make('prezzo_unitario')->label('Prezzo un.')->money('EUR'), Tables\Columns\TextColumn::make('prezzo_totale')->label('Totale')->money('EUR'), ]) ->actions([ Tables\Actions\ViewAction::make() ->infolist(fn ($infolist) => $infolist->schema([ \Filament\Infolists\Components\ImageEntry::make('immagine_path') ->label('Anteprima') ->disk('public') ->height(220), \Filament\Infolists\Components\KeyValueEntry::make('configurazione_display') ->label('Configurazione selezionata') ->state(fn (Model $record) => collect(ConfigurazioneFormatter::toRows($record->payload)) ->mapWithKeys(fn ($row) => [$row['label'] => $row['value']]) ->all()) ->columnSpanFull(), ])), ]) ->paginated(false); } }