diff --git a/app/Console/Commands/Grapper/Sofascore/Rose.php b/app/Console/Commands/Grapper/Sofascore/Rose.php index 7ef94db2..6e4b607a 100644 --- a/app/Console/Commands/Grapper/Sofascore/Rose.php +++ b/app/Console/Commands/Grapper/Sofascore/Rose.php @@ -39,13 +39,13 @@ class Rose $data = CurlSofa::load($url); $data['ss_team_id'] = $value->ss_team_id; - $data['ss_team_name'] = $value->ssteam_name; + $data['ss_team_name'] = $value->ss_team_name; /********************************* * add team to folder *********************************/ - File::put(Sofascore::$storage . '/' . Strings::clean($value->ssteam_name) . '.json', json_encode($data)); + File::put(Sofascore::$storage . '/' . Strings::clean($value->ss_team_name) . '.json', json_encode($data)); SofaScoreRosa::where('id', $value->id)->update(['grapped' => 1]); diff --git a/app/Console/Commands/Grapper/Sofascore/TournamentTeams.php b/app/Console/Commands/Grapper/Sofascore/TournamentTeams.php index 73bc99ce..cbc8f029 100644 --- a/app/Console/Commands/Grapper/Sofascore/TournamentTeams.php +++ b/app/Console/Commands/Grapper/Sofascore/TournamentTeams.php @@ -60,7 +60,7 @@ class TournamentTeams 'ss_team_id' => (int) $ss_team_id, ], [ 'country_id' => (int) $country_id, - 'ssteam_name' => $name, + 'ss_team_name' => $name, 'grapped' => 1, 'disabled' => 0, ]); diff --git a/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/Tables/SofaScoreRosasTable.php b/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/Tables/SofaScoreRosasTable.php index 17f0c837..57d47728 100644 --- a/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/Tables/SofaScoreRosasTable.php +++ b/app/Filament/Clusters/StaticData/Resources/SofaScoreRosas/Tables/SofaScoreRosasTable.php @@ -23,7 +23,7 @@ class SofaScoreRosasTable TextColumn::make('ss_team_id')->label('SSId')->badge()->width('1rem'), TextColumn::make('country.name')->label('Country'), TextColumn::make('tournament_rosa.tournament.name')->label('Tournament'), - TextColumn::make('ssteam_name')->label('Name'), + TextColumn::make('ss_team_name')->label('Name'), TextColumn::make('updated_at')->dateTime('Y-m-d H:i:s') ]) ->filters([ diff --git a/app/Filament/Clusters/StaticData/Resources/StatistikoDetails/Tables/StatistikoDetailsTable.php b/app/Filament/Clusters/StaticData/Resources/StatistikoDetails/Tables/StatistikoDetailsTable.php index 57d8c113..f26d8421 100644 --- a/app/Filament/Clusters/StaticData/Resources/StatistikoDetails/Tables/StatistikoDetailsTable.php +++ b/app/Filament/Clusters/StaticData/Resources/StatistikoDetails/Tables/StatistikoDetailsTable.php @@ -24,19 +24,15 @@ class StatistikoDetailsTable ->paginationPageOptions([8, 16, 24, 36]) ->columns([ Stack::make([ - TextColumn::make('ss_player_id')->prefix('Id: ')->searchable()->color('success')->icon('phosphor-copy')->copyable(), - TextColumn::make('player_name')->searchable()->prefix('Name: ')->color('primary')->icon('phosphor-copy')->copyable(), - TextColumn::make('birthdate')->date()->prefix('Birthdate: '), + TextColumn::make('player_name')->searchable()->color('primary')->icon('phosphor-copy')->copyable(), + TextColumn::make('ss_player_id')->searchable()->color('success')->icon('phosphor-copy')->copyable(), + TextColumn::make('positions.name')->badge()->color('black'), + TextColumn::make('team.ss_team_name')->prefix('Team: ')->color('warning'), + TextColumn::make('birthdate')->prefix('Birthdate: '), TextColumn::make('height')->prefix('Height: ')->suffix(' cm'), TextColumn::make('nationality')->prefix('Nationality: '), - TextColumn::make('position')->prefix('Position: '), - TextColumn::make('ss_national_team_id')->prefix('National Team Id: '), - TextColumn::make('tx_team_id')->prefix('Team Id: '), - TextColumn::make('team_name')->prefix('Team Name: '), TextColumn::make('preferred_foot')->prefix('Preferred Foot: '), TextColumn::make('last_update')->date()->prefix('Last Update: '), - TextColumn::make('created_at')->date()->prefix('Created: '), - TextColumn::make('updated_at')->date()->prefix('Updated: '), ]), ]) ->emptyStateHeading('No double player in details') diff --git a/app/Filament/Imports/Helper/ImportDetails.php b/app/Filament/Imports/Helper/ImportDetails.php index f296bdda..342bd2b6 100644 --- a/app/Filament/Imports/Helper/ImportDetails.php +++ b/app/Filament/Imports/Helper/ImportDetails.php @@ -22,37 +22,34 @@ class ImportDetails $row = array_values($row); + // ss_player_id + // ss_team_id + // tx_team_id + // player_name + // ss_national_team_id + // birthdate + // height + // nationality + // position + // preferred_foot + // last_update + if ($row[1] != '') { - - // 'ss_player_id', - // 'player_name', - // 'tx_team_id', - // 'ss_national_team_id', - // 'team_name', - // 'birthday', - // 'height', - // 'nationality', - // 'position', - // 'preferred_foot', - // 'last_update', - // 'created_at', - // 'updated_at', - StatistikoDetail::updateOrCreate( [ 'ss_player_id' => (int) $row[0], ], [ - 'player_name' => $row[1], - 'tx_team_id' => $row[2], - 'ss_national_team_id' => $row[3], - 'team_name' => $row[4], - 'birthdate' => Carbon::parse($row[5])->toDateString(), - 'height' => $row[6], + 'ss_team_id' => (int) $row[1], + 'tx_team_id' => (int) $row[2], + 'player_name' => $row[3], + 'ss_national_team_id' => (int) $row[4], + 'birthdate' => Carbon::parse($row[5])->format('Y-m-d'), + 'height' => (int) $row[6], 'nationality' => $row[7], 'position' => $row[8], 'preferred_foot' => $row[9], - 'last_update' => Carbon::parse($row[10])->toDateString(), + 'last_update' => Carbon::parse($row[10])->format('Y-m-d H:i:s'), 'created_at' => $now, 'updated_at' => $now, ] diff --git a/app/Models/SofaScorePlayerPosition.php b/app/Models/SofaScorePlayerPosition.php index 9706e1f9..447874bb 100644 --- a/app/Models/SofaScorePlayerPosition.php +++ b/app/Models/SofaScorePlayerPosition.php @@ -3,14 +3,13 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; +use MongoDB\Laravel\Eloquent\HybridRelations; class SofaScorePlayerPosition extends Model { - protected $primaryKey = 'ss_code'; + use HybridRelations; - public $incrementing = false; - - protected $keyType = 'string'; + protected $connection = 'mariadb'; protected $fillable = [ 'ss_code', diff --git a/app/Models/SofaScoreRosa.php b/app/Models/SofaScoreRosa.php index ac4b2d59..4ffd5c34 100644 --- a/app/Models/SofaScoreRosa.php +++ b/app/Models/SofaScoreRosa.php @@ -3,13 +3,18 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; +use MongoDB\Laravel\Eloquent\HybridRelations; class SofaScoreRosa extends Model { + use HybridRelations; + + protected $connection = 'mariadb'; + protected $fillable = [ 'sport_id', 'ss_team_id', - 'ssteam_name', + 'ss_team_name', 'ss_tournament_id', 'country_id', 'is_active', diff --git a/app/Models/SofaScoreRosaTournament.php b/app/Models/SofaScoreRosaTournament.php index 8636cc19..db8a9058 100644 --- a/app/Models/SofaScoreRosaTournament.php +++ b/app/Models/SofaScoreRosaTournament.php @@ -3,9 +3,12 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; +use MongoDB\Laravel\Eloquent\HybridRelations; class SofaScoreRosaTournament extends Model { + use HybridRelations; + protected $fillable = [ 'ss_team_id', 'ss_tournament_id', diff --git a/app/Models/StatistikoDetail.php b/app/Models/StatistikoDetail.php index 584a6f34..98e59f3c 100644 --- a/app/Models/StatistikoDetail.php +++ b/app/Models/StatistikoDetail.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Models; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use MongoDB\Laravel\Eloquent\Model; class StatistikoDetail extends Model @@ -14,10 +15,11 @@ class StatistikoDetail extends Model protected $fillable = [ 'ss_player_id', + 'ss_team_id', + 'tx_team_id', 'player_name', 'ss_national_team_id', - 'team_name', - 'birthday', + 'birthdate', 'height', 'nationality', 'position', @@ -27,20 +29,21 @@ class StatistikoDetail extends Model 'updated_at', ]; - protected function casts(): array + protected $casts = [ + 'last_update' => 'datetime', + ]; + + // public function season() + // { + // return $this->hasMany(SofaScorePlayerPerSeason::class, 'ss_player_id', 'ss_player_id'); + // } + + public function team(): BelongsTo { - return [ - 'birthdate' => 'date', - 'last_update' => 'date', - ]; + return $this->belongsTo(SofaScoreRosa::class, 'ss_team_id', 'ss_team_id'); } - public function season() - { - return $this->hasMany(SofaScorePlayerPerSeason::class, 'ss_player_id', 'ss_player_id'); - } - - public function ss_code() + public function positions(): BelongsTo { return $this->belongsTo(SofaScorePlayerPosition::class, 'position', 'ss_code'); } diff --git a/database/migrations/2026_04_20_085306_mongo_details.php b/database/migrations/2026_04_20_085306_mongo_details.php index d9891c01..01e8784f 100644 --- a/database/migrations/2026_04_20_085306_mongo_details.php +++ b/database/migrations/2026_04_20_085306_mongo_details.php @@ -15,7 +15,8 @@ return new class extends Migration { Schema::create('details', function (Blueprint $collection) { $collection->unique('ss_player_id'); - $collection->index('player_name'); + $collection->index('ss_team_id'); + $collection->index('tx_team_id'); }); } diff --git a/database/migrations/2026_07_20_150818_create_sofa_score_roses_table.php b/database/migrations/2026_07_20_150818_create_sofa_score_roses_table.php index 2073e0ce..73f44190 100644 --- a/database/migrations/2026_07_20_150818_create_sofa_score_roses_table.php +++ b/database/migrations/2026_07_20_150818_create_sofa_score_roses_table.php @@ -16,7 +16,7 @@ return new class extends Migration $table->integer('sport_id')->index(); $table->integer('ss_team_id')->index(); $table->integer('country_id')->default(0)->nullable()->index()->references('id')->on('countries'); - $table->string('ssteam_name'); + $table->string('ss_team_name'); $table->boolean('is_active')->default(false); $table->boolean('disabled')->default(false); $table->boolean('grapped')->default(false); diff --git a/database/migrations/2026_07_30_094111_create_sofa_score_player_positions_table.php b/database/migrations/2026_07_30_094111_create_sofa_score_player_positions_table.php index 45610a24..7c125b97 100644 --- a/database/migrations/2026_07_30_094111_create_sofa_score_player_positions_table.php +++ b/database/migrations/2026_07_30_094111_create_sofa_score_player_positions_table.php @@ -12,6 +12,7 @@ return new class extends Migration public function up(): void { Schema::create('sofa_score_player_positions', function (Blueprint $table) { + $table->id(); $table->string('ss_code')->index(); $table->string('name'); });