<?php

namespace App\Filament\Widgets;

use Filament\Tables;
use Filament\Widgets\TableWidget as BaseWidget;
use App\Models\Tenant;

class TopTenantsByUploads extends BaseWidget
{
    protected static ?string $heading = null;

    public function getHeading()
    {
        return __('admin.widgets.top_tenants_by_uploads.heading');
    }
    protected ?string $pollingInterval = '60s';

    public function table(Tables\Table $table): Tables\Table
    {
        return $table
            ->query(
                Tenant::query()
                    ->withCount('photos')
                    ->orderByDesc('photos_count')
                    ->limit(5)
            )
            ->columns([
                Tables\Columns\TextColumn::make('id')->label(__('admin.common.hash'))->width('60px'),
                Tables\Columns\TextColumn::make('name')->label(__('admin.common.tenant'))->searchable(),
                Tables\Columns\TextColumn::make('photos_count')->label(__('admin.common.uploads'))->numeric(),
            ])
            ->paginated(false);
    }
}

