castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('home_id') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('away_id') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('player_id') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('starttime') ->castStateUsing(function ($state) { $state = Carbon::parse($state)->format('Y-m-d h:i:s'); return $state; }) ->requiredMapping(), ImportColumn::make('home_away') ->castStateUsing(function (string $state): ?string { if (blank($state)) { return null; } return (string) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('home_ft') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('away_ft') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('home_ht') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('away_ht') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('goals') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('assists') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('tackles') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('total_passes') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('passes_done') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('total_duels') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('duels_won') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('total_ground_duels') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('ground_duels_won') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('total_aerial_duels') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('aerial_duels_won') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('minutes_played') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('shots_on_target') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('shots_off_target') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('shots_blocked') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('total_dribble') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('dribble_done') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('position') ->castStateUsing(function (string $state): ?string { if (blank($state)) { return null; } return (string) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('rating') ->castStateUsing(function (string $state): ?float { if (blank($state)) { return null; } return (float) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('bcm') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('hw') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('pw') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('pm') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('possession_lost') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('fouls') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('was_fouled') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('offsides') ->castStateUsing(function (string $state): ?int { if (blank($state)) { return null; } return (int) $state; }) ->requiredMapping() ->numeric(), ImportColumn::make('date_acquisition') ->castStateUsing(function ($state) { $state = Carbon::parse($state)->format('Y-m-d h:i:s'); return $state; }) ->requiredMapping(), ]; } public function resolveRecord(): UbEvent { return UbEvent::firstOrNew([ 'league_id' => (int) $this->data['league_id'], 'home_id,' => (int) $this->data['home_id'], 'player_id' => (int) $this->data['player_id'], 'away_id,' => (int) $this->data['away_id'], 'starttime' => Carbon::parse(strtotime($this->data['starttime'])), ]); } public static function getCompletedNotificationBody(Import $import): string { $body = 'Your ub event import has completed and '.Number::format($import->successful_rows).' '.str('row')->plural($import->successful_rows).' imported.'; if ($failedRowsCount = $import->getFailedRowsCount()) { $body .= ' '.Number::format($failedRowsCount).' '.str('row')->plural($failedRowsCount).' failed to import.'; } return $body; } }