diff --git a/app/Filament/Resources/CompetitionGroups/CompetitionGroupResource.php b/app/Filament/Resources/CompetitionGroups/CompetitionGroupResource.php new file mode 100644 index 00000000..2267d50c --- /dev/null +++ b/app/Filament/Resources/CompetitionGroups/CompetitionGroupResource.php @@ -0,0 +1,48 @@ + ListCompetitionGroups::route('/'), + ]; + } + + public static function getNavigationBadge(): ?string + { + return parent::getEloquentQuery()->count(); + } +} diff --git a/app/Filament/Resources/CompetitionGroups/Pages/CreateCompetitionGroup.php b/app/Filament/Resources/CompetitionGroups/Pages/CreateCompetitionGroup.php new file mode 100644 index 00000000..6f23694e --- /dev/null +++ b/app/Filament/Resources/CompetitionGroups/Pages/CreateCompetitionGroup.php @@ -0,0 +1,11 @@ +components([ + // + ]); + } +} diff --git a/app/Filament/Resources/CompetitionGroups/Tables/CompetitionGroupsTable.php b/app/Filament/Resources/CompetitionGroups/Tables/CompetitionGroupsTable.php new file mode 100644 index 00000000..a6ca4947 --- /dev/null +++ b/app/Filament/Resources/CompetitionGroups/Tables/CompetitionGroupsTable.php @@ -0,0 +1,42 @@ +columns([ + IconColumn::make('sport.icon') + ->label('') + ->grow(false) + ->color('primary') + ->width(30) + ->icon(fn ($record) => $record->sport->icon) + ->tooltip(fn ($record) => $record->id) + ->visibleFrom('lg'), + TextColumn::make('country.name') + ->wrap() + ->color('gray') + ->label('Event') + ->icon(fn ($record) => $record->country->icon), + SelectColumn::make('level') + ->options([ + 'top' => 'Top Level', + 'medium' => 'Medium Level', + 'base' => 'Basic Level', + ]), + TextColumn::make('name'), + + ]) + ->filters([ + // + ]); + } +} diff --git a/app/Filament/Resources/Sports/SportResource.php b/app/Filament/Resources/Sports/SportResource.php index f2ca303a..081e924c 100644 --- a/app/Filament/Resources/Sports/SportResource.php +++ b/app/Filament/Resources/Sports/SportResource.php @@ -6,7 +6,6 @@ use App\Filament\Clusters\Administrator\AdministratorCluster; use App\Filament\Resources\Sports\Pages\ManageSports; use App\Models\Sport; use Filament\Resources\Resource; -use Filament\Schemas\Schema; use Filament\Support\Enums\IconSize; use Filament\Tables\Columns\IconColumn; use Filament\Tables\Columns\TextColumn; @@ -28,14 +27,6 @@ class SportResource extends Resource protected static string|\UnitEnum|null $navigationGroup = 'Static Data'; - public static function form(Schema $schema): Schema - { - return $schema - ->components([ - // - ]); - } - public static function table(Table $table): Table { return $table diff --git a/app/Filament/Resources/Supervisors/Tables/SupervisorsTable.php b/app/Filament/Resources/Supervisors/Tables/SupervisorsTable.php index 7807c68a..5116dbe9 100644 --- a/app/Filament/Resources/Supervisors/Tables/SupervisorsTable.php +++ b/app/Filament/Resources/Supervisors/Tables/SupervisorsTable.php @@ -51,6 +51,7 @@ class SupervisorsTable // TextColumn::make('maxsconds')->label('Max Time'), // IconColumn::make('is_cron')->boolean()->label('Cron')->falseColor('gray'), + ToggleColumn::make('use_lastcall')->label('Lastcall'), ToggleColumn::make('is_cron')->label('Cron'), ToggleColumn::make('is_active')->label('Active'), ]) diff --git a/app/Models/CompetitionGroup.php b/app/Models/CompetitionGroup.php index a86414e4..47543865 100644 --- a/app/Models/CompetitionGroup.php +++ b/app/Models/CompetitionGroup.php @@ -11,6 +11,7 @@ class CompetitionGroup extends Model 'name', 'sport_id', 'country_id', + 'level', ]; public function sport() diff --git a/app/Policies/CompetitionGroupPolicy.php b/app/Policies/CompetitionGroupPolicy.php new file mode 100644 index 00000000..a5db68ba --- /dev/null +++ b/app/Policies/CompetitionGroupPolicy.php @@ -0,0 +1,70 @@ +can('ViewAny:CompetitionGroup'); + } + + public function view(AuthUser $authUser, CompetitionGroup $competitionGroup): bool + { + return $authUser->can('View:CompetitionGroup'); + } + + public function create(AuthUser $authUser): bool + { + return $authUser->can('Create:CompetitionGroup'); + } + + public function update(AuthUser $authUser, CompetitionGroup $competitionGroup): bool + { + return $authUser->can('Update:CompetitionGroup'); + } + + public function delete(AuthUser $authUser, CompetitionGroup $competitionGroup): bool + { + return $authUser->can('Delete:CompetitionGroup'); + } + + public function restore(AuthUser $authUser, CompetitionGroup $competitionGroup): bool + { + return $authUser->can('Restore:CompetitionGroup'); + } + + public function forceDelete(AuthUser $authUser, CompetitionGroup $competitionGroup): bool + { + return $authUser->can('ForceDelete:CompetitionGroup'); + } + + public function forceDeleteAny(AuthUser $authUser): bool + { + return $authUser->can('ForceDeleteAny:CompetitionGroup'); + } + + public function restoreAny(AuthUser $authUser): bool + { + return $authUser->can('RestoreAny:CompetitionGroup'); + } + + public function replicate(AuthUser $authUser, CompetitionGroup $competitionGroup): bool + { + return $authUser->can('Replicate:CompetitionGroup'); + } + + public function reorder(AuthUser $authUser): bool + { + return $authUser->can('Reorder:CompetitionGroup'); + } + +} \ No newline at end of file diff --git a/composer.lock b/composer.lock index 651a8dcb..f9036fb5 100644 --- a/composer.lock +++ b/composer.lock @@ -10925,16 +10925,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.0", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" + "reference": "16dbf9937da8d4528ceb2145c9c7c0bd29e26374" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/16dbf9937da8d4528ceb2145c9c7c0bd29e26374", + "reference": "16dbf9937da8d4528ceb2145c9c7c0bd29e26374", "shasum": "" }, "require": { @@ -10966,9 +10966,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.1" }, - "time": "2025-08-30T15:50:23+00:00" + "time": "2026-01-12T11:33:04+00:00" }, { "name": "phpstan/phpstan", diff --git a/database/migrations/2023_05_25_112801_create_competition_groups_table.php b/database/migrations/2023_05_25_112801_create_competition_groups_table.php index 31e68325..4379171d 100644 --- a/database/migrations/2023_05_25_112801_create_competition_groups_table.php +++ b/database/migrations/2023_05_25_112801_create_competition_groups_table.php @@ -14,6 +14,7 @@ return new class extends Migration Schema::create('competition_groups', function (Blueprint $table) { $table->id(); $table->string('name'); + $table->string('level'); $table->integer('sport_id')->index()->references('id')->on('sports'); $table->integer('country_id')->default(0)->nullable()->index()->references('id')->on('countries'); $table->timestamps(); diff --git a/database/migrations/2023_08_06_085243_create_supervisor_table.php b/database/migrations/2023_08_06_085243_create_supervisor_table.php index 40ed2202..d3ad09b8 100644 --- a/database/migrations/2023_08_06_085243_create_supervisor_table.php +++ b/database/migrations/2023_08_06_085243_create_supervisor_table.php @@ -25,6 +25,7 @@ return new class extends Migration $table->integer('maxsconds')->default(30); $table->integer('lastcall')->default(0); + $table->boolean('use_lastcall')->default(0); $table->boolean('is_cron')->default(0); $table->boolean('is_active')->default(0);