multi betts wip

This commit is contained in:
salam committed 2026-01-09 12:55:18 +01:00
1 parent 1aa044fff1
commit b39196c9eb
62 files changed
+1237 -208

No files matched your search

+1 -1
View File
@@ -3,8 +3,8 @@
namespace App\Actions;
use App\Models\MultilineSetting;
use DB;
use Filament\Notifications\Notification;
use Illuminate\Support\Facades\DB;
class BettypUserGenerator
{
+1 -1
View File
@@ -4,8 +4,8 @@ namespace App\Actions;
use App\Models\MultilineClient;
use App\Models\MultilineSetting;
use DB;
use Filament\Notifications\Notification;
use Illuminate\Support\Facades\DB;
class MultilineGenerator
{
@@ -31,7 +31,7 @@ class Willhill
*/
$bookmaker_id = 42;
$res = Event::with('odds_3way')
$res = Event::with('odds_3ways')
->where('betsapi_id', 0)
->where('sport_id', $sport_id)
->where('starttime', '>', Carbon::now())
+15 -5
View File
@@ -5,14 +5,18 @@ namespace App\Console\Commands\Grapper\TxOdds;
use App\Console\Commands\Grapper\TxOdds\Odds\_2Way;
use App\Console\Commands\Grapper\TxOdds\Odds\_2WayS1;
use App\Console\Commands\Grapper\TxOdds\Odds\_3Way;
use App\Console\Commands\Grapper\TxOdds\Odds\_3WayHt;
use App\Console\Commands\Grapper\TxOdds\Odds\_Dc;
use App\Console\Commands\Grapper\TxOdds\Odds\_Dnb;
use App\Console\Commands\Grapper\TxOdds\Odds\_Ggng;
use App\Console\Commands\Grapper\TxOdds\Odds\_Points;
use App\Console\Commands\Grapper\TxOdds\Odds\_PointsHt;
use App\Console\Commands\Grapper\TxOdds\Odds\_PointsQ1;
use App\Console\Commands\Grapper\TxOdds\Odds\_Totals;
use App\Console\Commands\Grapper\TxOdds\Odds\_TotalsHt;
use App\Console\Commands\Grapper\TxOdds\Odds\_TotalsQ1;
use App\Console\Commands\Grapper\TxOdds\Odds\_Tq;
use App\Console\Commands\Grapper\TxOdds\Odds\WorkCollector;
use App\Console\Commands\Nuh;
use App\Console\Commands\Xml;
use App\Models\CompetitionGroup;
@@ -191,7 +195,8 @@ class Odds
/**
* TODAY
*/
$res = Event::where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDays(1)->toDateTimeString())->pluck('id');
$res = Event::where('sport_id', Nuh::$options['sport_id'])->where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDays(1)->toDateTimeString())->pluck('id');
foreach ($res as $id) {
$_calls[] = $url.'&spid='.Nuh::$options['sport_id']."&ot=$markets&peid=".$id;
}
@@ -202,7 +207,7 @@ class Odds
/**
* ONE WEEK
*/
$res = Event::where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDays(7)->toDateTimeString())->pluck('id');
$res = Event::where('sport_id', Nuh::$options['sport_id'])->where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDays(7)->toDateTimeString())->pluck('id');
foreach ($res as $id) {
$_calls[] = $url."&ot=$markets&peid=".$id;
}
@@ -275,6 +280,8 @@ class Odds
];
Element::updateOrCreate(['id' => (int) $row->ateam['id']], $element);
Nuh::$collector = [];
foreach ($row->bookmaker as $book) {
Nuh::$id = (int) $row['id'];
@@ -283,7 +290,6 @@ class Odds
$odds = [];
$odds['sport_id'] = (int) $event['sport_id'];
$odds['flag'] = 1;
$odds['provider_id'] = Nuh::$options['provider_id'];
$odds['nuh_check'] = 0;
@@ -302,6 +308,9 @@ class Odds
case 'bmoid':
$odds['bmoid'] = (string) $attributeValue;
break;
case 'flag':
$odds['flag'] = (string) $attributeValue;
break;
}
}
@@ -334,10 +343,10 @@ class Odds
break;
case 131075:
_PointsQt::grap($odds, $offer);
_PointsQ1::grap($odds, $offer);
break;
case 131076:
_TotalsQt::grap($odds, $offer);
_TotalsQ1::grap($odds, $offer);
break;
case 5242880:
@@ -359,6 +368,7 @@ class Odds
}
}
}
WorkCollector::run();
}
}
@@ -0,0 +1,27 @@
<?php
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
class FillCollector
{
public static function set($odds, $bettype)
{
if (! isset(Nuh::$collector[$bettype][Nuh::$bookmaker_id]['difference'])) {
Nuh::$collector[$bettype][Nuh::$bookmaker_id]['difference'] = $odds['difference'];
if (isset($odds['handicap'])) {
Nuh::$collector[$bettype][Nuh::$bookmaker_id]['active_spread'] = $odds['handicap'];
} else {
Nuh::$collector[$bettype][Nuh::$bookmaker_id]['active_spread'] = $odds['total'];
}
} elseif ($odds['difference'] < Nuh::$collector[$bettype][Nuh::$bookmaker_id]['difference']) {
Nuh::$collector[$bettype][Nuh::$bookmaker_id]['difference'] = $odds['difference'];
if (isset($odds['handicap'])) {
Nuh::$collector[$bettype][Nuh::$bookmaker_id]['active_spread'] = $odds['handicap'];
} else {
Nuh::$collector[$bettype][Nuh::$bookmaker_id]['active_spread'] = $odds['total'];
}
}
}
}
@@ -0,0 +1,34 @@
<?php
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use Illuminate\Support\Facades\DB;
class WorkCollector
{
public static function run()
{
foreach (Nuh::$collector as $table => $value) {
DB::table($table)->where('event_id', Nuh::$id)->where('provider_id', Nuh::$options['provider_id'])->update(['active_spread' => 0]);
}
foreach (Nuh::$collector as $table => $bookmaker) {
foreach ($bookmaker as $bookmaker_id => $values) {
if (in_array($table, ['odds_points', 'odds_points_ht', 'odds_points_q1'])) {
DB::table($table)
->where('event_id', Nuh::$id)
->where('bookmaker_id', $bookmaker_id)
->where('handicap', $values['active_spread'])
->update(['active_spread' => 1]);
} else {
DB::table($table)
->where('event_id', Nuh::$id)
->where('bookmaker_id', $bookmaker_id)
->where('total', $values['active_spread'])
->update(['active_spread' => 1]);
}
}
}
}
}
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\Odds2way;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _2Way
{
@@ -17,7 +17,7 @@ class _2Way
}
$odds['margin'] = (float) Margin::calculate([$odds['h2w'], $odds['a2w']], 1);
Odds2way::updateOrCreate([
DB::table('odds_2ways')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\Odds2wayS1;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _2WayS1
{
@@ -17,7 +17,7 @@ class _2WayS1
}
$odds['margin'] = (float) Margin::calculate([$odds['h2w'], $odds['a2w']], 1);
Odds2wayS1::updateOrCreate([
DB::table('odds_2ways_s1')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\Odds3way;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _3Way
{
@@ -18,7 +18,7 @@ class _3Way
}
$odds['margin'] = (float) Margin::calculate([$odds['h3w'], $odds['d3w'], $odds['a3w']], 1);
Odds3way::updateOrCreate([
DB::table('odds_3ways')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
@@ -4,6 +4,7 @@ namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _3WayHt
{
@@ -13,11 +14,10 @@ class _3WayHt
$odds['h3w'] = (float) $value->o1;
$odds['d3w'] = (float) $value->o2;
$odds['a3w'] = (float) $value->o3;
$odds['starttime'] = (string) $value['starttime'];
}
$odds['margin'] = (float) Margin::calculate([$odds['h3w'], $odds['d3w'], $odds['a3w']], 1);
Odds3wayHt::updateOrCreate([
DB::table('odds_3ways_ht')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsDc;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _Dc
{
@@ -17,7 +17,7 @@ class _Dc
}
$odds['margin'] = (float) Margin::calculate([$odds['dc1x'], $odds['dc12'], $odds['dcx2']], 1);
OddsDc::updateOrCreate([
DB::table('odds_dc')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsDnb;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _Dnb
{
@@ -16,7 +16,7 @@ class _Dnb
}
$odds['margin'] = (float) Margin::calculate([$odds['dnb1'], $odds['dnb2']], 1);
OddsDnb::updateOrCreate([
DB::table('odds_dnb')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsGgng;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _Ggng
{
@@ -16,7 +16,7 @@ class _Ggng
}
$odds['margin'] = (float) Margin::calculate([$odds['gg'], $odds['ng']], 1);
OddsGgng::updateOrCreate([
DB::table('odds_ggng')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsPoint;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _Points
{
@@ -16,10 +16,16 @@ class _Points
$odds['handicap'] = (float) $value->o3;
}
if (fmod((float) $odds['handicap'], 1) != 0.5) {
return;
}
$odds['margin'] = (float) Margin::calculate([$odds['home'], $odds['away']], 1);
$odds['difference'] = abs(1 / $odds['home'] - 1 / $odds['away']);
OddsPoint::updateOrCreate([
FillCollector::set($odds, 'odds_points');
DB::table('odds_points')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
'handicap' => $odds['handicap'],
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsPointHt;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _PointsHt
{
@@ -16,10 +16,16 @@ class _PointsHt
$odds['handicap'] = (float) $value->o3;
}
if (fmod((float) $odds['handicap'], 1) != 0.5) {
return;
}
$odds['margin'] = (float) Margin::calculate([$odds['home'], $odds['away']], 1);
$odds['difference'] = abs(1 / $odds['home'] - 1 / $odds['away']);
OddsPointHt::updateOrCreate([
FillCollector::set($odds, 'odds_points_ht');
DB::table('odds_points_ht')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
'handicap' => $odds['handicap'],
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsPointQ1;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _PointsQ1
{
@@ -16,10 +16,16 @@ class _PointsQ1
$odds['handicap'] = (float) $value->o3;
}
if (fmod((float) $odds['handicap'], 1) != 0.5) {
return;
}
$odds['margin'] = (float) Margin::calculate([$odds['home'], $odds['away']], 1);
$odds['difference'] = abs(1 / $odds['home'] - 1 / $odds['away']);
OddsPointQ1::updateOrCreate([
FillCollector::set($odds, 'odds_points_q1');
DB::table('odds_points_q1')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
'handicap' => $odds['handicap'],
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsTotal;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _Totals
{
@@ -20,12 +20,18 @@ class _Totals
if ((float) $odds['total'] != 2.5) {
return;
}
} else {
if (fmod((float) $odds['total'], 1) != 0.5) {
return;
}
}
$odds['margin'] = (float) Margin::calculate([$odds['over'], $odds['under']], 1);
$odds['difference'] = abs(1 / $odds['over'] - 1 / $odds['under']);
OddsTotal::updateOrCreate([
FillCollector::set($odds, 'odds_totals');
DB::table('odds_totals')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
'total' => $odds['total'],
@@ -4,6 +4,7 @@ namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _TotalsHt
{
@@ -15,10 +16,16 @@ class _TotalsHt
$odds['total'] = (float) $value->o3;
}
if (fmod((float) $odds['total'], 1) != 0.5) {
return;
}
$odds['margin'] = (float) Margin::calculate([$odds['over'], $odds['under']], 1);
$odds['difference'] = abs(1 / $odds['over'] - 1 / $odds['under']);
OddsTotalHt::updateOrCreate([
FillCollector::set($odds, 'odds_totals_ht');
DB::table('odds_totals_ht')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
'total' => $odds['total'],
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsTotalQ1;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _TotalsQ1
{
@@ -16,10 +16,16 @@ class _TotalsQ1
$odds['total'] = (float) $value->o3;
}
if (fmod((float) $odds['total'], 1) != 0.5) {
return;
}
$odds['margin'] = (float) Margin::calculate([$odds['over'], $odds['under']], 1);
$odds['difference'] = abs(1 / $odds['over'] - 1 / $odds['under']);
OddsTotalQ1::updateOrCreate([
FillCollector::set($odds, 'odds_totals_q1');
DB::table('odds_totals_q1')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
'total' => $odds['total'],
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsTq;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _Tq
{
@@ -16,7 +16,7 @@ class _Tq
}
$odds['margin'] = (float) Margin::calculate([$odds['htq'], $odds['atq']], 1);
OddsTq::updateOrCreate([
DB::table('odds_tq')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
+2
View File
@@ -20,6 +20,8 @@ class Nuh extends Command
public static $bookmaker_id;
public static $collector = [];
public static $BETSAPI_TOKEN = '36152-aeTRNnZxSPUwGe';
protected $signature = 'nuh {process=help} {--id=0} {--f=} {--a} {--p} {--d} {--b} {--w} {--g} {--r} {--s} {--t}';
@@ -58,23 +58,48 @@ class EventResource extends Resource
->with('country')
->with('home')
->with('away');
if (in_array(1, EventsTable::$bettype_settings)) {
$query->with('odds_3way.bookmaker');
if (in_array('odds_2ways', EventsTable::$bettype_settings)) {
$query->with('odds_2ways.bookmaker');
}
if (in_array(2, EventsTable::$bettype_settings)) {
if (in_array('odds_2ways_s1', EventsTable::$bettype_settings)) {
$query->with('odds_2ways_s1.bookmaker');
}
if (in_array('odds_3ways', EventsTable::$bettype_settings)) {
$query->with('odds_3ways.bookmaker');
}
if (in_array('odds_3ways_ht', EventsTable::$bettype_settings)) {
$query->with('odds_3ways_ht.bookmaker');
}
if (in_array('odds_dc', EventsTable::$bettype_settings)) {
$query->with('odds_dc.bookmaker');
}
if (in_array(3, EventsTable::$bettype_settings)) {
if (in_array('odds_dnb', EventsTable::$bettype_settings)) {
$query->with('odds_dnb.bookmaker');
}
if (in_array(4, EventsTable::$bettype_settings)) {
if (in_array('odds_ggng', EventsTable::$bettype_settings)) {
$query->with('odds_ggng.bookmaker');
}
if (in_array(5, EventsTable::$bettype_settings)) {
$query->with('odds_tq.bookmaker');
if (in_array('odds_points', EventsTable::$bettype_settings)) {
$query->with('odds_points.bookmaker');
}
if (in_array(6, EventsTable::$bettype_settings)) {
$query->with('odds_total.bookmaker');
if (in_array('odds_points_ht', EventsTable::$bettype_settings)) {
$query->with('odds_points_ht.bookmaker');
}
if (in_array('odds_points_q1', EventsTable::$bettype_settings)) {
$query->with('odds_points_q1.bookmaker');
}
if (in_array('odds_totals', EventsTable::$bettype_settings)) {
$query->with('odds_totals.bookmaker');
}
if (in_array('odds_totals_ht', EventsTable::$bettype_settings)) {
$query->with('odds_totals_ht.bookmaker');
}
if (in_array('odds_totals_q1', EventsTable::$bettype_settings)) {
$query->with('odds_totals_q1.bookmaker');
}
if (in_array('odds_tq', EventsTable::$bettype_settings)) {
$query->with('odds_tq.bookmaker');
}
return $query;
@@ -6,7 +6,12 @@ use App\Filament\Tables\Columns\Column3way;
use App\Filament\Tables\Columns\ColumnDc;
use App\Filament\Tables\Columns\ColumnDnb;
use App\Filament\Tables\Columns\ColumnGgng;
use App\Filament\Tables\Columns\ColumnMl;
use App\Filament\Tables\Columns\ColumnMlS1;
use App\Filament\Tables\Columns\ColumnPoint;
use App\Filament\Tables\Columns\ColumnPointQ1;
use App\Filament\Tables\Columns\ColumnTotal;
use App\Filament\Tables\Columns\ColumnTotalQ1;
use App\Filament\Tables\Columns\ColumnTq;
use App\Filament\Tables\Columns\MatchIds;
use App\Models\BettypeUser;
@@ -38,82 +43,23 @@ class EventsTable
public static $multiline_bookmaker = [];
public static $odds_3ways = [];
public static $odds_totals = [];
public static $odds_totals_q1 = [];
public static $odds_dc = [];
public static $odds_dnb = [];
public static $odds_ggng = [];
public static $odds_points = [];
public static $odds_points_q1 = [];
public static $odds_2ways = [];
public static $odds_2ways_s1 = [];
public static $odds_tq = [];
public static $multiline_gettype = [];
public static function load_multiline_bookmaker()
{
$res = MultilineClient::where('client_id', auth()->user()->client_id)->where('sport_id', auth()->user()->sport_id)->select('bookmaker_id', 'multiline_setting_id')->orderBy('multiline_setting_id')->orderBy('sort')->get();
$res = MultilineClient::with('multiline_setting')->where('client_id', auth()->user()->client_id)->where('sport_id', auth()->user()->sport_id)->select('bookmaker_id', 'multiline_setting_id')->orderBy('multiline_setting_id')->orderBy('sort')->get();
foreach ($res as $value) {
switch ($value->multiline_setting_id) {
case 1:
case 13:
self::$odds_3ways[] = $value->bookmaker_id;
break;
case 2:
self::$odds_dc[] = $value->bookmaker_id;
break;
case 3:
self::$odds_dnb[] = $value->bookmaker_id;
break;
case 4:
self::$odds_ggng[] = $value->bookmaker_id;
break;
case 5:
self::$odds_tq[] = $value->bookmaker_id;
break;
case 8:
case 14:
self::$odds_points[] = $value->bookmaker_id;
break;
case 9:
self::$odds_points_q1[] = $value->bookmaker_id;
break;
case 7:
case 12:
case 16:
self::$odds_2ways[] = $value->bookmaker_id;
break;
case 17:
self::$odds_2ways_s1[] = $value->bookmaker_id;
break;
case 6:
case 10:
case 15:
case 18:
self::$odds_totals[] = $value->bookmaker_id;
break;
case 11:
self::$odds_totals_q1[] = $value->bookmaker_id;
break;
}
self::$multiline_gettype[$value->multiline_setting->table][] = $value->bookmaker_id;
}
}
public static function load_bettype_settings()
{
self::$bettype_settings = BettypeUser::where('is_active', 1)->pluck('multiline_setting_id')->toArray();
$res = BettypeUser::with('multiline_setting')->where('is_active', 1)->get();
foreach ($res as $value) {
self::$bettype_settings[] = $value->multiline_setting->table;
}
}
public static function configure(Table $table): Table
@@ -160,42 +106,82 @@ class EventsTable
TextColumn::make('away.name')
->wrap()
->searchable(),
Column3way::make('odds3way')->bookmakers(self::$odds_3ways)
->visible(fn () => in_array(1, self::$bettype_settings))
ColumnMl::make('odds_2ways')->bookmakers(self::$multiline_gettype['odds_2ways'] ?? [])
->visible(fn () => in_array('odds_2ways', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->width(225)
->label('1 X 2'),
->alignCenter()
->label('ML'),
ColumnDc::make('oddsdc')->bookmakers(self::$odds_dc)
->visible(fn () => in_array(2, self::$bettype_settings))
ColumnMlS1::make('odds_2ways_s1')->bookmakers(self::$multiline_gettype['odds_2ways'] ?? [])
->visible(fn () => in_array('odds_2ways_s1', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('ML S1'),
Column3way::make('odds_3ways')->bookmakers(self::$multiline_gettype['odds_3ways'] ?? [])
->visible(fn () => in_array('odds_3ways', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->width(225)
->label('1X2'),
ColumnTotal::make('odds_totals')->bookmakers(self::$multiline_gettype['odds_totals'] ?? [])
->visible(fn () => in_array('odds_totals', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Totals'),
ColumnTotalQ1::make('odds_totals_q1')->bookmakers(self::$multiline_gettype['odds_totals_q1'] ?? [])
->visible(fn () => in_array('odds_totals_q1', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Totals Q1'),
ColumnPoint::make('odds_points')->bookmakers(self::$multiline_gettype['odds_points'] ?? [])
->visible(fn () => in_array('odds_points', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Points'),
ColumnPointQ1::make('odds_points_q1')->bookmakers(self::$multiline_gettype['odds_points_q1'] ?? [])
->visible(fn () => in_array('odds_points_q1', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Points Q1'),
ColumnDc::make('odds_dc')->bookmakers(self::$multiline_gettype['odds_dc'] ?? [])
->visible(fn () => in_array('odds_dc', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Double Chance'),
ColumnDnb::make('oddsdnb')->bookmakers(self::$odds_dnb)
->visible(fn () => in_array(3, self::$bettype_settings))
ColumnDnb::make('odds_dnb')->bookmakers(self::$multiline_gettype['odds_dnb'] ?? [])
->visible(fn () => in_array('odds_dnb', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(190)
->label('Draw No Bet'),
ColumnGgng::make('oddsggng')->bookmakers(self::$odds_ggng)
->visible(fn () => in_array(4, self::$bettype_settings))
ColumnGgng::make('odds_ggng')->bookmakers(self::$multiline_gettype['odds_ggng'] ?? [])
->visible(fn () => in_array('odds_ggng', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(190)
->label('Goal No Goal'),
ColumnTq::make('oddstq')->bookmakers(self::$odds_tq)
->visible(fn () => in_array(5, self::$bettype_settings))
ColumnTq::make('odds_tq')->bookmakers(self::$bettype_settings['odds_tq'] ?? [])
->visible(fn () => in_array('odds_tq', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(190)
->label('To Qualify'),
ColumnTotal::make('oddstotal')->bookmakers(self::$odds_totals)
->visible(fn () => in_array(6, self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->width(225)
->label('Totals'),
])->searchable(['id', 'betsapi_id', 'betradar_id', 'bet365_id', 'bwin_id', 'magnig_id', 'magken_id', 'lognig_id', 'logcol_id'])
->defaultSort('starttime', 'ASC')
->extremePaginationLinks()
+8 -8
View File
@@ -34,21 +34,21 @@ class Column3way extends Column
public function loadData($record)
{
$this->has_data = count($record->odds_3way) ? true : false;
$this->has_data = count($record->odds_3ways) ? true : false;
$this->act = $record->odds_3way->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->act = $record->odds_3ways->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['h3w'] = $record->odds_3way->max('h3w');
$this->max['h3w'] = $record->odds_3ways->max('h3w');
$this->max['d3w'] = $record->odds_3way->max('d3w');
$this->max['d3w'] = $record->odds_3ways->max('d3w');
$this->max['a3w'] = $record->odds_3way->max('a3w');
$this->max['a3w'] = $record->odds_3ways->max('a3w');
$this->min['h3w'] = $record->odds_3way->min('h3w');
$this->min['h3w'] = $record->odds_3ways->min('h3w');
$this->min['d3w'] = $record->odds_3way->min('d3w');
$this->min['d3w'] = $record->odds_3ways->min('d3w');
$this->min['a3w'] = $record->odds_3way->min('a3w');
$this->min['a3w'] = $record->odds_3ways->min('a3w');
}
public function getAct()
+70
View File
@@ -0,0 +1,70 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnMl extends Column
{
protected string $view = 'filament.tables.columns.column-ml';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?bool $has_data;
public function bookmakers(?array $bookmakers): static
{
array_unshift($bookmakers, auth()->user()->bookmaker_id);
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers;
}
public function loadData($record)
{
$this->has_data = count($record->odds_2ways) ? true : false;
$this->act = $record->odds_2ways->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['h2w'] = $record->odds_2ways->max('h2w');
$this->max['a2w'] = $record->odds_2ways->max('a2w');
$this->min['h2w'] = $record->odds_2ways->min('h2w');
$this->min['a2w'] = $record->odds_2ways->min('a2w');
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
@@ -0,0 +1,70 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnMlS1 extends Column
{
protected string $view = 'filament.tables.columns.column-ml-s1';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?bool $has_data;
public function bookmakers(?array $bookmakers): static
{
array_unshift($bookmakers, auth()->user()->bookmaker_id);
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers;
}
public function loadData($record)
{
$this->has_data = count($record->odds_2ways_s1) ? true : false;
$this->act = $record->odds_2ways->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['h2w'] = $record->odds_2ways->max('h2w');
$this->max['a2w'] = $record->odds_2ways->max('a2w');
$this->min['h2w'] = $record->odds_2ways->min('h2w');
$this->min['a2w'] = $record->odds_2ways->min('a2w');
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
@@ -0,0 +1,70 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnPoint extends Column
{
protected string $view = 'filament.tables.columns.column-point';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?bool $has_data;
public function bookmakers(?array $bookmakers): static
{
array_unshift($bookmakers, auth()->user()->bookmaker_id);
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers;
}
public function loadData($record)
{
$this->has_data = count($record->odds_points) ? true : false;
$this->act = $record->odds_points->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['home'] = $record->odds_points->max('home');
$this->max['away'] = $record->odds_points->max('away');
$this->min['home'] = $record->odds_points->min('home');
$this->min['away'] = $record->odds_points->min('away');
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
@@ -0,0 +1,70 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnPointQ1 extends Column
{
protected string $view = 'filament.tables.columns.column-point-q1';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?bool $has_data;
public function bookmakers(?array $bookmakers): static
{
array_unshift($bookmakers, auth()->user()->bookmaker_id);
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers;
}
public function loadData($record)
{
$this->has_data = count($record->odds_points_q1) ? true : false;
$this->act = $record->odds_points_q1->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['home'] = $record->odds_points_q1->max('home');
$this->max['away'] = $record->odds_points_q1->max('away');
$this->min['home'] = $record->odds_points_q1->min('home');
$this->min['away'] = $record->odds_points_q1->min('away');
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
+6 -6
View File
@@ -34,17 +34,17 @@ class ColumnTotal extends Column
public function loadData($record)
{
$this->has_data = count($record->odds_total) ? true : false;
$this->has_data = count($record->odds_totals) ? true : false;
$this->act = $record->odds_total->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->act = $record->odds_totals->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['over'] = $record->odds_total->max('over');
$this->max['over'] = $record->odds_totals->max('over');
$this->max['under'] = $record->odds_total->max('under');
$this->max['under'] = $record->odds_totals->max('under');
$this->min['over'] = $record->odds_total->min('over');
$this->min['over'] = $record->odds_totals->min('over');
$this->min['under'] = $record->odds_total->min('under');
$this->min['under'] = $record->odds_totals->min('under');
}
@@ -0,0 +1,70 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnTotalQ1 extends Column
{
protected string $view = 'filament.tables.columns.column-total-q1';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?bool $has_data;
public function bookmakers(?array $bookmakers): static
{
array_unshift($bookmakers, auth()->user()->bookmaker_id);
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers;
}
public function loadData($record)
{
$this->has_data = count($record->odds_totals_q1) ? true : false;
$this->act = $record->odds_totals_q1->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['over'] = $record->odds_totals_q1->max('over');
$this->max['under'] = $record->odds_totals_q1->max('under');
$this->min['over'] = $record->odds_totals_q1->min('over');
$this->min['under'] = $record->odds_totals_q1->min('under');
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
+3 -3
View File
@@ -18,13 +18,13 @@ class BettypeToggle extends Component
{
$this->multilines = [];
$res = BettypeUser::with('multiline')->get();
$res = BettypeUser::with('multiline_setting')->orderBy('multiline_setting_id')->get();
foreach ($res as $set) {
$this->multilines[] = [
'id' => $set->multiline_setting_id,
'name' => $set->multiline->name,
'short' => $set->multiline->short,
'name' => $set->multiline_setting->name,
'short' => $set->multiline_setting->short,
'is_active' => $set->is_active,
];
}
+2 -2
View File
@@ -22,8 +22,8 @@ class BettypeUser extends Model
static::addGlobalScope(new UserScope);
}
public function multiline()
public function multiline_setting()
{
return $this->hasOne(MultilineSetting::class, 'id', 'multiline_setting_id');
return $this->belongsTo(MultilineSetting::class);
}
}
+26 -11
View File
@@ -68,21 +68,26 @@ class Event extends Model
return $this->belongsTo(Element::class);
}
public function odds_2way()
public function odds_2ways()
{
return $this->hasMany(Odds2way::class);
}
public function odds_2way_s1()
public function odds_2ways_s1()
{
return $this->hasMany(Odds2wayS1::class);
}
public function odds_3way()
public function odds_3ways()
{
return $this->hasMany(Odds3way::class);
}
public function odds_3ways_ht()
{
return $this->hasMany(Odds3wayHt::class);
}
public function odds_dc()
{
return $this->hasMany(OddsDc::class);
@@ -98,24 +103,34 @@ class Event extends Model
return $this->hasMany(OddsGgng::class);
}
public function odds_point()
public function odds_points()
{
return $this->hasMany(OddsPoint::class);
return $this->hasMany(OddsPoint::class)->where('active_spread', 1);
}
public function odds_point_q1()
public function odds_points_q1()
{
return $this->hasMany(OddsPointQ1::class);
return $this->hasMany(OddsPointQ1::class)->where('active_spread', 1);
}
public function odds_total()
public function odds_points_ht()
{
return $this->hasMany(OddsTotal::class);
return $this->hasMany(OddsPointHt::class)->where('active_spread', 1);
}
public function odds_total_q1()
public function odds_totals()
{
return $this->hasMany(OddsTotalQ1::class);
return $this->hasMany(OddsTotal::class)->where('active_spread', 1);
}
public function odds_totals_q1()
{
return $this->hasMany(OddsTotalQ1::class)->where('active_spread', 1);
}
public function odds_totals_ht()
{
return $this->hasMany(OddsTotalHt::class)->where('active_spread', 1);
}
public function odds_tq()
+2
View File
@@ -20,6 +20,8 @@ class OddsPoint extends Model
'away',
'handicap',
'margin',
'difference',
'active_spread',
'flag',
'nuh_check',
'add_time',
+2
View File
@@ -20,6 +20,8 @@ class OddsPointHt extends Model
'away',
'handicap',
'margin',
'difference',
'active_spread',
'flag',
'nuh_check',
'add_time',
+2
View File
@@ -20,6 +20,8 @@ class OddsPointQ1 extends Model
'away',
'handicap',
'margin',
'difference',
'active_spread',
'flag',
'nuh_check',
'add_time',
+2
View File
@@ -20,6 +20,8 @@ class OddsTotal extends Model
'under',
'total',
'margin',
'difference',
'active_spread',
'flag',
'nuh_check',
'add_time',
+2
View File
@@ -20,6 +20,8 @@ class OddsTotalHt extends Model
'under',
'total',
'margin',
'difference',
'active_spread',
'flag',
'nuh_check',
'add_time',
+2
View File
@@ -19,6 +19,8 @@ class OddsTotalQ1 extends Model
'over',
'under',
'spread',
'difference',
'active_spread',
'margin',
'flag',
'nuh_check',