diff --git a/app/Console/Commands/Grapper/Sofascore/Helper/LoadDays.php b/app/Console/Commands/Grapper/Sofascore/Helper/LoadDays.php index 63298487..00890783 100644 --- a/app/Console/Commands/Grapper/Sofascore/Helper/LoadDays.php +++ b/app/Console/Commands/Grapper/Sofascore/Helper/LoadDays.php @@ -33,7 +33,7 @@ class LoadDays switch ($task->mode) { - case 'auto_updater': + case 'daily': $dates[] = [ 'day' => Carbon::now()->subDay()->format('Y-m-d'), 'slug' => $task->sport->ss_slug, diff --git a/app/Console/Commands/Grapper/Sofascore/SettingsToLocal.php b/app/Console/Commands/Grapper/Sofascore/SettingsToLocal.php index 3dac8c7c..df48e1d1 100644 --- a/app/Console/Commands/Grapper/Sofascore/SettingsToLocal.php +++ b/app/Console/Commands/Grapper/Sofascore/SettingsToLocal.php @@ -3,6 +3,7 @@ namespace App\Console\Commands\Grapper\Sofascore; use App\Console\Commands\Nuh; +use App\Models\SofaScoreRosa; use App\Models\SofaScoreTask; use App\Models\SofaScoreTaskTournament; use App\Utilities\Notice; @@ -29,5 +30,11 @@ class SettingsToLocal foreach ($rows as $row) { SofaScoreTaskTournament::insert((array) $row); } + + SofaScoreRosa::truncate(); + $rows = DB::connection('remote_mariadb')->table('sofa_score_rosas')->get(); + foreach ($rows as $row) { + SofaScoreRosa::insert((array) $row); + } } } diff --git a/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/Pages/ListSofaScoreRosas.php b/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/Pages/ListSofaScoreRosas.php index 2ed696e3..f1521d16 100644 --- a/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/Pages/ListSofaScoreRosas.php +++ b/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/Pages/ListSofaScoreRosas.php @@ -3,17 +3,9 @@ namespace App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Pages; use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\SofaScoreRosaResource; -use Filament\Actions\CreateAction; use Filament\Resources\Pages\ListRecords; class ListSofaScoreRosas extends ListRecords { protected static string $resource = SofaScoreRosaResource::class; - - protected function getHeaderActions(): array - { - return [ - CreateAction::make(), - ]; - } } diff --git a/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/SofaScoreRosaResource.php b/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/SofaScoreRosaResource.php index 44647e39..dea610d8 100644 --- a/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/SofaScoreRosaResource.php +++ b/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/SofaScoreRosaResource.php @@ -2,29 +2,30 @@ namespace App\Filament\Clusters\StaticData\Resources\SofaScoreRosas; -use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Pages\CreateSofaScoreRosa; -use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Pages\EditSofaScoreRosa; use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Pages\ListSofaScoreRosas; use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Schemas\SofaScoreRosaForm; use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Tables\SofaScoreRosasTable; use App\Filament\Clusters\StaticData\StaticDataCluster; use App\Models\SofaScoreRosa; -use BackedEnum; use Filament\Resources\Resource; use Filament\Schemas\Schema; -use Filament\Support\Icons\Heroicon; use Filament\Tables\Table; +use UnitEnum; class SofaScoreRosaResource extends Resource { protected static ?string $model = SofaScoreRosa::class; - protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack; - protected static ?string $cluster = StaticDataCluster::class; protected static ?string $recordTitleAttribute = 'name'; + protected static ?string $navigationLabel = 'Rosa'; + + protected static ?string $modelLabel = 'Rosa'; + + protected static string|UnitEnum|null $navigationGroup = 'SofaScore'; + public static function form(Schema $schema): Schema { return SofaScoreRosaForm::configure($schema); @@ -35,19 +36,15 @@ class SofaScoreRosaResource extends Resource return SofaScoreRosasTable::configure($table); } - public static function getRelations(): array - { - return [ - // - ]; - } - public static function getPages(): array { return [ 'index' => ListSofaScoreRosas::route('/'), - 'create' => CreateSofaScoreRosa::route('/create'), - 'edit' => EditSofaScoreRosa::route('/{record}/edit'), ]; } + + public static function getNavigationBadge(): ?string + { + return parent::getEloquentQuery()->count(); + } } diff --git a/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/Tables/SofaScoreRosasTable.php b/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/Tables/SofaScoreRosasTable.php index 946f9e7f..9e1f4756 100644 --- a/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/Tables/SofaScoreRosasTable.php +++ b/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/Tables/SofaScoreRosasTable.php @@ -2,13 +2,20 @@ namespace App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Tables; +use App\Models\Country; +use App\Models\SofaScoreRosa; +use Filament\Actions\Action; +use Filament\Actions\BulkAction; use Filament\Actions\BulkActionGroup; +use Filament\Actions\CreateAction; use Filament\Actions\DeleteBulkAction; use Filament\Actions\EditAction; -use Filament\Forms\Components\Toggle; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\ToggleColumn; +use Filament\Tables\Enums\FiltersLayout; +use Filament\Tables\Filters\SelectFilter; use Filament\Tables\Table; +use Illuminate\Support\Collection; class SofaScoreRosasTable { @@ -16,19 +23,65 @@ class SofaScoreRosasTable { return $table ->columns([ - TextColumn::make('ssteam_id')->badge()->alignCenter()->width('1rem'), - TextColumn::make('ssteam_name'), + TextColumn::make('ssteam_id')->label('Id')->badge()->width('1rem'), + TextColumn::make('country.name')->label('Country'), + TextColumn::make('ssteam_name')->label('Name'), ToggleColumn::make('is_active'), ]) ->filters([ - // + SelectFilter::make('country_id') + ->searchable() + ->label('Country') + ->options(function () { + $res = SofaScoreRosa::groupBy('country_id')->pluck('country_id')->toArray(); + return Country::query()->whereIn('id', $res)->orderBy('name')->pluck('name', 'id'); + }) + ], layout: FiltersLayout::AboveContent) + ->deferFilters(false) + ->headerActions([ + Action::make('all_on') + ->icon('phosphor-toggle-right-fill') + ->action(function (): void { + SofaScoreRosa::query()->update(['is_active' => 1]); + }), + Action::make('all_off') + ->icon('phosphor-toggle-left-fill') + ->color('danger') + ->action(function (): void { + SofaScoreRosa::query()->update(['is_active' => 0]); + }), + CreateAction::make() + ->icon('phosphor-plus') + ->label('Team'), ]) ->recordActions([ EditAction::make(), ]) ->toolbarActions([ BulkActionGroup::make([ - DeleteBulkAction::make(), + BulkAction::make('Enable selected') + ->color('primary') + ->icon('phosphor-toggle-right-fill') + ->action(function (Collection $records): void { + foreach ($records as $record) { + SofaScoreRosa::where('id', '=', $record->id) + ->update( + ['is_active' => 1] + ); + } + }), + BulkAction::make('Disable selected') + ->icon('phosphor-toggle-left-fill') + ->action(function (Collection $records): void { + foreach ($records as $record) { + SofaScoreRosa::where('id', '=', $record->id) + ->update( + ['is_active' => 0] + ); + } + }), + + // DeleteBulkAction::make(), ]), ]); } diff --git a/app/Filament/Clusters/StaticData/Resources/SofaScoreTasks/Schemas/SofaScoreTaskForm.php b/app/Filament/Clusters/StaticData/Resources/SofaScoreTasks/Schemas/SofaScoreTaskForm.php index 3fcb8fac..1eadc277 100644 --- a/app/Filament/Clusters/StaticData/Resources/SofaScoreTasks/Schemas/SofaScoreTaskForm.php +++ b/app/Filament/Clusters/StaticData/Resources/SofaScoreTasks/Schemas/SofaScoreTaskForm.php @@ -29,7 +29,7 @@ class SofaScoreTaskForm ->allowHtml() ->required() ->options([ - 'auto_updater' => 'Yesterday', + 'daily' => 'Yesterday', 'date' => 'Grap a date', 'range' => 'Grap a date range', ]), diff --git a/app/Filament/Clusters/StaticData/Resources/SofaScoreTasks/SofaScoreTaskResource.php b/app/Filament/Clusters/StaticData/Resources/SofaScoreTasks/SofaScoreTaskResource.php index b41dcfed..8bc4597c 100644 --- a/app/Filament/Clusters/StaticData/Resources/SofaScoreTasks/SofaScoreTaskResource.php +++ b/app/Filament/Clusters/StaticData/Resources/SofaScoreTasks/SofaScoreTaskResource.php @@ -20,9 +20,9 @@ class SofaScoreTaskResource extends Resource protected static ?string $cluster = StaticDataCluster::class; - protected static ?string $navigationLabel = 'SofaScore Tasks'; + protected static ?string $navigationLabel = 'Tasks'; - protected static ?string $modelLabel = 'SofaScore Tasks'; + protected static ?string $modelLabel = 'Tasks'; protected static ?int $navigationSort = 1; diff --git a/app/Filament/Clusters/StaticData/Resources/SofaScoreTasks/Tables/SofaScoreTasksTable.php b/app/Filament/Clusters/StaticData/Resources/SofaScoreTasks/Tables/SofaScoreTasksTable.php index d31d3e76..ac7f9eeb 100644 --- a/app/Filament/Clusters/StaticData/Resources/SofaScoreTasks/Tables/SofaScoreTasksTable.php +++ b/app/Filament/Clusters/StaticData/Resources/SofaScoreTasks/Tables/SofaScoreTasksTable.php @@ -24,7 +24,7 @@ class SofaScoreTasksTable TextColumn::make('mode') ->label('Grapping dates') ->formatStateUsing(fn(string $state, $record): string => match ($state) { - 'auto_updater' => 'Yesterday', + 'daily' => 'Yesterday', 'date' => $record->day_from, 'range' => $record->day_from . ' <=> ' . $record->day_to, }), diff --git a/app/Filament/Clusters/StaticData/Resources/SofaScoreTournaments/Tables/SofaScoreTournamentsTable.php b/app/Filament/Clusters/StaticData/Resources/SofaScoreTournaments/Tables/SofaScoreTournamentsTable.php index a0376390..40a89d08 100644 --- a/app/Filament/Clusters/StaticData/Resources/SofaScoreTournaments/Tables/SofaScoreTournamentsTable.php +++ b/app/Filament/Clusters/StaticData/Resources/SofaScoreTournaments/Tables/SofaScoreTournamentsTable.php @@ -5,21 +5,21 @@ namespace App\Filament\Clusters\StaticData\Resources\SofaScoreTournaments\Tables use App\Models\SofaScoreCategory; use App\Models\SofaScoreTournament; use App\Models\Sport; -use Filament\Actions\Action; -use Filament\Actions\BulkAction; -use Filament\Actions\BulkActionGroup; +// use Filament\Actions\Action; +// use Filament\Actions\BulkAction; +// use Filament\Actions\BulkActionGroup; use Filament\Forms\Components\Select; -use Filament\Forms\Components\ToggleButtons; +// use Filament\Forms\Components\ToggleButtons; use Filament\Schemas\Components\Utilities\Get; use Filament\Support\Enums\IconSize; use Filament\Tables\Columns\IconColumn; use Filament\Tables\Columns\TextColumn; -use Filament\Tables\Columns\ToggleColumn; +// use Filament\Tables\Columns\ToggleColumn; use Filament\Tables\Enums\FiltersLayout; use Filament\Tables\Filters\Filter; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; -use Illuminate\Database\Eloquent\Collection; +// use Illuminate\Database\Eloquent\Collection; class SofaScoreTournamentsTable { @@ -41,8 +41,8 @@ class SofaScoreTournamentsTable TextColumn::make('sofascore_category.name') ->icon(fn($record) => $record->sofascore_category->country->icon), TextColumn::make('name')->searchable()->sortable(), - ToggleColumn::make('enabled')->label('Enable'), - ToggleColumn::make('disabled')->label('Hidden'), + // ToggleColumn::make('enabled')->label('Enable'), + // ToggleColumn::make('disabled')->label('Hidden'), ]) ->filters([ Filter::make('filters') @@ -71,15 +71,15 @@ class SofaScoreTournamentsTable return SofaScoreCategory::query()->whereIn('id', $res)->orderBy('name')->pluck('name', 'id'); }) ->live(), - ToggleButtons::make('filter-disabled') - ->inline() - ->columnSpan(2) - ->default('active') - ->options([ - 'all' => 'All', - 'enabled' => 'Enabled', - 'hidden' => 'Hidden', - ]), + // ToggleButtons::make('filter-disabled') + // ->inline() + // ->columnSpan(2) + // ->default('active') + // ->options([ + // 'all' => 'All', + // 'enabled' => 'Enabled', + // 'hidden' => 'Hidden', + // ]), ]) ->query(function (Builder $query, array $data): Builder { return $query->when( @@ -121,56 +121,56 @@ class SofaScoreTournamentsTable ); }), ], layout: FiltersLayout::AboveContent) - ->deferFilters(false) - ->toolbarActions([ - BulkActionGroup::make([ - BulkAction::make('Enable selected') - ->icon('phosphor-toggle-right-fill') - ->color('primary') - ->action(function (Collection $records): void { - foreach ($records as $record) { - SofaScoreTournament::where('id', '=', $record->id) - ->update( - ['enabled' => 1] - ); - } - }), - BulkAction::make('Disable selected') - ->icon('phosphor-toggle-left-fill') - ->color('gray') - ->action(function (Collection $records): void { - foreach ($records as $record) { - SofaScoreTournament::where('id', '=', $record->id) - ->update( - ['enabled' => 0] - ); - } - }), - ])->label('Grapping'), - BulkActionGroup::make([ - BulkAction::make('Hide selected') - ->icon('phosphor-toggle-right-fill') - ->color('primary') - ->action(function (Collection $records): void { - foreach ($records as $record) { - SofaScoreTournament::where('id', '=', $record->id) - ->update( - ['disabled' => 1] - ); - } - }), - BulkAction::make('Show selected') - ->icon('phosphor-toggle-left-fill') - ->color('gray') - ->action(function (Collection $records): void { - foreach ($records as $record) { - SofaScoreTournament::where('id', '=', $record->id) - ->update( - ['disabled' => 0] - ); - } - }), - ])->label('Hidden'), - ]); + ->deferFilters(false); + // ->toolbarActions([ + // BulkActionGroup::make([ + // BulkAction::make('Enable selected') + // ->icon('phosphor-toggle-right-fill') + // ->color('primary') + // ->action(function (Collection $records): void { + // foreach ($records as $record) { + // SofaScoreTournament::where('id', '=', $record->id) + // ->update( + // ['enabled' => 1] + // ); + // } + // }), + // BulkAction::make('Disable selected') + // ->icon('phosphor-toggle-left-fill') + // ->color('gray') + // ->action(function (Collection $records): void { + // foreach ($records as $record) { + // SofaScoreTournament::where('id', '=', $record->id) + // ->update( + // ['enabled' => 0] + // ); + // } + // }), + // ])->label('Grapping'), + // BulkActionGroup::make([ + // BulkAction::make('Hide selected') + // ->icon('phosphor-toggle-right-fill') + // ->color('primary') + // ->action(function (Collection $records): void { + // foreach ($records as $record) { + // SofaScoreTournament::where('id', '=', $record->id) + // ->update( + // ['disabled' => 1] + // ); + // } + // }), + // BulkAction::make('Show selected') + // ->icon('phosphor-toggle-left-fill') + // ->color('gray') + // ->action(function (Collection $records): void { + // foreach ($records as $record) { + // SofaScoreTournament::where('id', '=', $record->id) + // ->update( + // ['disabled' => 0] + // ); + // } + // }), + // ])->label('Hidden'), + // ]); } } diff --git a/app/Models/SofaScoreRosa.php b/app/Models/SofaScoreRosa.php index dcd5f5d1..080ec53d 100644 --- a/app/Models/SofaScoreRosa.php +++ b/app/Models/SofaScoreRosa.php @@ -12,4 +12,9 @@ class SofaScoreRosa extends Model 'country_id', 'is_active', ]; + + public function country() + { + return $this->belongsTo(Country::class); + } } diff --git a/grapper.sh b/grapper.sh index 533eeef8..1ec1edf1 100755 --- a/grapper.sh +++ b/grapper.sh @@ -20,22 +20,22 @@ case "$1" in echo "\n⚽ sofa_score_task $1" echo "\n⚽ close all vpn" - # killall ssh + killall ssh echo "\n⚽ open vpn" - # ssh -f -N -L 13306:127.0.0.1:3306 -p 58371 root@162.55.242.190 + ssh -f -N -L 13306:127.0.0.1:3306 -p 58371 root@162.55.242.190 echo "\n⚽ Settings To Local" - # php artisan nuh --d --f 67 --fun=2 --task=$1 + php artisan nuh --d --f 67 --fun=2 --task=$1 echo "\n⚽ close vpn" - # killall ssh + killall ssh echo "\n⚽ Grapper" php artisan nuh --d --f 67 --fun=3 --task=$1 --restart=$2 echo "\n⚽ CreateZip" - # php artisan nuh --d --f 67 --fun=4 --task=$1 + php artisan nuh --d --f 67 --fun=4 --task=$1 # echo "\n⚽ SendMail" # php artisan nuh --d --f 67 --fun=5 --task=$1