Files
nuhodds_fi4/app/Filament/Resources/Sports/SportResource.php
T
2025-08-27 12:51:03 +02:00

76 lines
2.2 KiB
PHP

<?php
namespace App\Filament\Resources\Sports;
use App\Filament\Clusters\Maintenance\MaintenanceCluster;
use App\Filament\Resources\Sports\Pages\ManageSports;
use App\Models\Sport;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Enums\IconSize;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\ToggleColumn;
use Filament\Tables\Filters\TernaryFilter;
use Filament\Tables\Table;
use UnitEnum;
class SportResource extends Resource
{
protected static ?string $model = Sport::class;
protected static ?int $navigationSort = 24;
protected static string|BackedEnum|null $navigationIcon = 'lucide-volleyball';
protected static ?string $recordTitleAttribute = 'name';
protected static string|UnitEnum|null $navigationGroup = 'Administration';
protected static ?string $cluster = MaintenanceCluster::class;
public static function form(Schema $schema): Schema
{
return $schema
->components([
//
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
IconColumn::make('icon')
->label('')
->size(IconSize::TwoExtraLarge)
->icon(function ($record): string {
return $record->icon;
}),
TextColumn::make('name'),
TextColumn::make('bapi')->alignCenter()->label('Betsapi'),
TextColumn::make('bwin')->alignCenter()->label('Bwin'),
TextColumn::make('b365')->alignCenter()->label('Bet365'),
TextColumn::make('logi')->alignCenter()->label('Logifuture'),
TextColumn::make('magl')->alignCenter()->label('Magloo'),
ToggleColumn::make('is_active'),
])
->filters([
TernaryFilter::make('is_active')->default(true),
]);
}
public static function getPages(): array
{
return [
'index' => ManageSports::route('/'),
];
}
public static function getNavigationBadge(): ?string
{
return parent::getEloquentQuery()->count();
}
}