118 lines
5.6 KiB
PHP
118 lines
5.6 KiB
PHP
<?php
|
|
|
|
namespace App\Livewire;
|
|
|
|
use Filament\Infolists\Components\RepeatableEntry;
|
|
use Filament\Infolists\Components\RepeatableEntry\TableColumn;
|
|
use Filament\Infolists\Components\TextEntry;
|
|
use Filament\Schemas\Components\Tabs;
|
|
use Filament\Schemas\Components\Tabs\Tab;
|
|
use Filament\Schemas\Concerns\InteractsWithSchemas;
|
|
use Filament\Schemas\Contracts\HasSchemas;
|
|
use Filament\Schemas\Schema;
|
|
use Illuminate\Support\Carbon;
|
|
use Illuminate\Support\Facades\Http;
|
|
use Livewire\Component;
|
|
|
|
class EncounterHistory extends Component implements HasSchemas
|
|
{
|
|
use InteractsWithSchemas;
|
|
|
|
public $data = [];
|
|
|
|
public $home;
|
|
|
|
public $away;
|
|
|
|
public function eventsInfolist(Schema $schema): Schema
|
|
{
|
|
return $schema
|
|
->record($this->data)
|
|
->components([
|
|
Tabs::make('Tabs')
|
|
->tabs([
|
|
Tab::make($this->home.' vs '.$this->away)
|
|
->schema([
|
|
RepeatableEntry::make('results.h2h')
|
|
->label('Direct ecounters')
|
|
->table([
|
|
TableColumn::make('League'),
|
|
TableColumn::make('Date'),
|
|
TableColumn::make('Home'),
|
|
TableColumn::make('Away'),
|
|
TableColumn::make('Result'),
|
|
])
|
|
->schema([
|
|
TextEntry::make('league.name'),
|
|
TextEntry::make('time')->formatStateUsing(function ($state) {
|
|
return Carbon::createFromTimestamp($state)->format('d. m. Y H:i');
|
|
}),
|
|
TextEntry::make('home.name')->color(fn ($state) => $state == $this->home ? 'primary' : 'warning'),
|
|
TextEntry::make('away.name')->color(fn ($state) => $state == $this->away ? 'warning' : 'primary'),
|
|
TextEntry::make('ss'),
|
|
]),
|
|
]),
|
|
Tab::make($this->home)
|
|
->schema([
|
|
RepeatableEntry::make('results.home')
|
|
->label($this->home)
|
|
->table([
|
|
TableColumn::make('League'),
|
|
TableColumn::make('Date'),
|
|
TableColumn::make('Home'),
|
|
TableColumn::make('Away'),
|
|
TableColumn::make('Result'),
|
|
])
|
|
->schema([
|
|
TextEntry::make('league.name'),
|
|
TextEntry::make('time')->formatStateUsing(function ($state) {
|
|
return Carbon::createFromTimestamp($state)->format('d. m. Y H:i');
|
|
}),
|
|
TextEntry::make('home.name')->color(fn ($state) => $state == $this->home ? 'primary' : 'gray'),
|
|
TextEntry::make('away.name')->color(fn ($state) => $state == $this->home ? 'primary' : 'gray'),
|
|
TextEntry::make('ss'),
|
|
]),
|
|
]),
|
|
Tab::make($this->away)
|
|
->schema([
|
|
RepeatableEntry::make('results.away')
|
|
->label($this->away)
|
|
->table([
|
|
TableColumn::make('League'),
|
|
TableColumn::make('Date'),
|
|
TableColumn::make('Home'),
|
|
TableColumn::make('Away'),
|
|
TableColumn::make('Result'),
|
|
])
|
|
->schema([
|
|
TextEntry::make('league.name'),
|
|
TextEntry::make('time')->formatStateUsing(function ($state) {
|
|
return Carbon::createFromTimestamp($state)->format('d. m. Y H:i');
|
|
}),
|
|
TextEntry::make('home.name')->color(fn ($state) => $state == $this->away ? 'warning' : 'gray'),
|
|
TextEntry::make('away.name')->color(fn ($state) => $state == $this->away ? 'warning' : 'gray'),
|
|
TextEntry::make('ss'),
|
|
]),
|
|
]),
|
|
]),
|
|
]);
|
|
}
|
|
|
|
public function mount($betsapi_id)
|
|
{
|
|
$this->data = Http::get('https://api.b365api.com/v1/event/history?token='.config('env.betsapi_token').'&event_id='.$betsapi_id)->json();
|
|
$this->home = $this->data['results']['h2h']['0']['home']['name'];
|
|
$this->away = $this->data['results']['h2h']['0']['away']['name'];
|
|
}
|
|
|
|
public function getHome()
|
|
{
|
|
return $this->home;
|
|
}
|
|
|
|
public function getAway()
|
|
{
|
|
return $this->away;
|
|
}
|
|
}
|