70 lines
1.4 KiB
PHP
70 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Filament\Tables\Columns;
|
|
|
|
use App\Models\OddsTotal;
|
|
use Filament\Tables\Columns\Column;
|
|
|
|
class ColumnTotal extends Column
|
|
{
|
|
protected string $view = 'filament.tables.columns.column-total';
|
|
|
|
protected ?array $max;
|
|
|
|
protected ?array $min;
|
|
|
|
protected $data;
|
|
|
|
protected ?array $bookmakers;
|
|
|
|
protected ?bool $has_data;
|
|
|
|
public function bookmakers(?array $bookmakers): static
|
|
{
|
|
$this->bookmakers = $bookmakers;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getBookmaker(): ?array
|
|
{
|
|
return $this->bookmakers;
|
|
}
|
|
|
|
public function loadData($record)
|
|
{
|
|
$this->data = OddsTotal::with('bookmaker')->where('event_id', $record->id)->get();
|
|
|
|
$this->max['over'] = $this->data->max('over');
|
|
$this->min['over'] = $this->data->min('over');
|
|
|
|
$this->max['under'] = $this->data->max('under');
|
|
$this->min['under'] = $this->data->min('under');
|
|
|
|
$this->max['margin'] = $this->data->max('margin');
|
|
$this->min['margin'] = $this->data->min('margin');
|
|
|
|
$this->has_data = count($this->data) ? true : false;
|
|
}
|
|
|
|
public function getData()
|
|
{
|
|
return $this->data;
|
|
}
|
|
|
|
public function getMax()
|
|
{
|
|
return $this->max;
|
|
}
|
|
|
|
public function getMin()
|
|
{
|
|
return $this->min;
|
|
}
|
|
|
|
public function hasData()
|
|
{
|
|
return $this->has_data;
|
|
}
|
|
}
|