Files
dvla-api/app/Filament/Widgets/WebsiteRequestsWidget.php
Ovidiu U 759e4f2784 init
2026-05-12 09:47:26 +01:00

41 lines
1.2 KiB
PHP

<?php
namespace App\Filament\Widgets;
use App\Models\Website;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Filament\Widgets\TableWidget;
use Illuminate\Database\Eloquent\Builder;
class WebsiteRequestsWidget extends TableWidget
{
protected static ?string $heading = 'Websites by Current Month Requests';
protected static ?int $sort = 1;
protected int | string | array $columnSpan = 1;
public function table(Table $table): Table
{
return $table
->query(fn (): Builder => Website::query()
->withCount(['apiRequests' => fn (Builder $query) => $query
->whereBetween('created_at', [now()->startOfMonth(), now()->endOfMonth()])
])
->orderByDesc('api_requests_count')
)
->columns([
TextColumn::make('name'),
TextColumn::make('tier.name')
->label('Tier'),
TextColumn::make('api_requests_count')
->label('Requests This Month')
->numeric()
->alignEnd(),
])
->searchable(false)
->paginated(false);
}
}