toggle bettypes

This commit is contained in:
salam committed 2025-12-24 09:30:18 +01:00
1 parent 21575d799f
commit 739222718a
15 files changed
+132 -78

No files matched your search

@@ -10,6 +10,8 @@ class ListEvents extends ListRecords
{
protected static string $resource = EventResource::class;
protected $listeners = ['refreshBettypeMenu' => '$refresh'];
protected function getHeaderActions(): array
{
return [
@@ -2,7 +2,8 @@
namespace App\Filament\Resources\Events\Tables;
use App\Filament\Tables\Columns\Columns3way;
use App\Filament\Tables\Columns\Column3way;
use App\Filament\Tables\Columns\ColumnDc;
use App\Filament\Tables\Columns\MatchIds;
use App\Models\BettypeUser;
use App\Models\Country;
@@ -68,7 +69,8 @@ class EventsTable
->alignRight(),
TextColumn::make('away.name')
->searchable(),
Columns3way::make('odds3way')->label(fn () => view('filament.tables.columns.multiline.labels')),
Column3way::make('odds3way')->visible(fn () => in_array(1, self::$bettype_settings))->width(280)->label(fn () => view('filament.tables.columns.multiline.labels', ['menu' => '1x2'])),
ColumnDc::make('oddsdc')->visible(fn () => in_array(2, self::$bettype_settings))->width(280)->label(fn () => view('filament.tables.columns.multiline.labels', ['menu' => 'dc'])),
])
->poll('10s')
->defaultSort('starttime', 'ASC')
@@ -5,9 +5,9 @@ namespace App\Filament\Tables\Columns;
use App\Models\Odds3way;
use Filament\Tables\Columns\Column;
class Columns3way extends Column
class Column3way extends Column
{
protected string $view = 'filament.tables.columns.columns_3way';
protected string $view = 'filament.tables.columns.column_3way';
protected ?array $multiline;
+54
View File
@@ -0,0 +1,54 @@
<?php
namespace App\Filament\Tables\Columns;
use App\Models\OddsDc;
use Filament\Tables\Columns\Column;
class ColumnDc extends Column
{
protected string $view = 'filament.tables.columns.column-dc';
protected ?array $multiline;
protected ?array $fumetto;
protected ?bool $has_odds;
public function loadData($record, $multiline_client)
{
$res = OddsDc::with('bookmaker')->where('event_id', $record->id)->get();
$this->fumetto = [];
$this->multiline = [];
foreach ($res as $item) {
$this->fumetto[] = $item;
foreach ($multiline_client as $slot => $bookmaker) {
if ($item->bookmaker_id == $bookmaker->bookmaker_id) {
$this->multiline[$slot] = $item;
}
}
}
$this->has_odds = count($this->multiline) ? true : false;
}
public function getMultilines(): ?array
{
return $this->multiline;
}
public function getFumetto()
{
return $this->fumetto;
}
public function hasodds()
{
return $this->has_odds;
}
}
+16 -23
View File
@@ -2,30 +2,30 @@
namespace App\Livewire;
use App\Models\MultilineSetting;
use App\Models\User;
use App\Models\BettypeUser;
use Illuminate\Support\Facades\DB;
use Livewire\Component;
class BettypeToggle extends Component
{
public $multilines = [];
public function mount()
{
protected $listeners = [
'refreshBettypeMenu' => '$refresh',
];
public function boot()
{
$this->multilines = [];
$settings = MultilineSetting::where('sport_id', auth()->user()->sport_id)->get();
foreach ($settings as $setting) {
$res = BettypeUser::with('multiline')->where('user_id', auth()->user()->id)->where('sport_id', auth()->user()->sport_id)->get();
foreach ($res as $set) {
$this->multilines[] = [
'id' => $setting->id,
'sport_id' => $setting->sport_id,
'name' => $setting->name,
'short' => $setting->short,
'table' => $setting->table,
'is_active' => $setting->id == auth()->user()->multiline_setting_id ? 1 : 0,
'id' => $set->multiline_setting_id,
'name' => $set->multiline->name,
'short' => $set->multiline->short,
'is_active' => $set->is_active,
];
}
}
@@ -35,17 +35,10 @@ class BettypeToggle extends Component
return view('livewire.bettype-toggle');
}
public function swopBettype($multiline_setting_id)
public function toggleBettype($multiline_setting_id)
{
User::where('id', auth()->user()->id)->update(['multiline_setting_id' => $multiline_setting_id]);
BettypeUser::where('user_id', auth()->user()->id)->where('multiline_setting_id', $multiline_setting_id)->update(['is_active' => DB::raw('!is_active')]);
$this->js('window.location.reload()');
}
public function toggleBettype($sport, $bettype, $status)
{
User::where('id', auth()->user()->id)->update(["bettype_status->$sport->$bettype" => $status]);
$this->js('window.location.reload()');
$this->dispatch('refreshBettypeMenu');
}
}
+5
View File
@@ -12,4 +12,9 @@ class BettypeUser extends Model
'multiline_setting_id',
'is_active',
];
public function multiline()
{
return $this->hasOne(MultilineSetting::class, 'id', 'multiline_setting_id');
}
}