multiline wip
No files matched your search
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Actions;
|
||||||
|
|
||||||
|
class AlarmGenerator
|
||||||
|
{
|
||||||
|
public static function run($record)
|
||||||
|
{
|
||||||
|
dd($record);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,42 +3,38 @@
|
|||||||
namespace App\Actions;
|
namespace App\Actions;
|
||||||
|
|
||||||
use App\Models\Multiline;
|
use App\Models\Multiline;
|
||||||
|
use App\Models\MultilineSetting;
|
||||||
|
use Filament\Notifications\Notification;
|
||||||
|
|
||||||
class MultilineGenerator
|
class MultilineGenerator
|
||||||
{
|
{
|
||||||
public static function run()
|
public static function run($record)
|
||||||
{
|
{
|
||||||
|
$client_id = $record->id;
|
||||||
|
|
||||||
// odds_2ways
|
Multiline::where('client_id', $client_id)->update(['disabled' => 1]);
|
||||||
// odds_3ways
|
|
||||||
// odds_dc
|
|
||||||
// odds_dnb
|
|
||||||
// odds_ggng
|
|
||||||
// odds_handicaps
|
|
||||||
// odds_qualify
|
|
||||||
// odds_totals
|
|
||||||
|
|
||||||
$default = [];
|
foreach ($record->sport as $sportid) {
|
||||||
$default[1] = [
|
|
||||||
'bettypes' => [1, 16, 3, 4, 5],
|
|
||||||
];
|
|
||||||
|
|
||||||
$multilines = Multiline::where('client_id', auth()->user()->client_id)->get();
|
$multilines = MultilineSetting::where('sport_id', $sportid)->get();
|
||||||
dd($multilines);
|
|
||||||
|
|
||||||
foreach ($slots as $id => $slot) {
|
foreach ($multilines as $multiline) {
|
||||||
$open = true;
|
|
||||||
foreach ($data as $item) {
|
for ($i = 1; $i <= $multiline->rows; $i++) {
|
||||||
if ($slot->bookmaker_id == $item->bookmaker_id) {
|
|
||||||
$multilines[$id] = $item;
|
Multiline::updateOrCreate(
|
||||||
$open = false;
|
['client_id' => $client_id, 'sport_id' => $sportid],
|
||||||
|
['name' => $multiline->name, 'table' => $multiline->table, 'sort' => $i, 'disabled' => 0]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($open) {
|
|
||||||
$multilines[$id] = $slot;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $multilines;
|
Notification::make()
|
||||||
|
->title('Multiline generated successfully')
|
||||||
|
->success()
|
||||||
|
->send();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -44,7 +44,7 @@ class SupervisorDb
|
|||||||
$tmp['command'] = $process->process.$sport->code;
|
$tmp['command'] = $process->process.$sport->code;
|
||||||
$tmp['sport_id'] = $sport->id;
|
$tmp['sport_id'] = $sport->id;
|
||||||
$tmp['description'] = $process->description.' '.$sport->sport;
|
$tmp['description'] = $process->description.' '.$sport->sport;
|
||||||
$flight = Supervisor::updateOrCreate(
|
Supervisor::updateOrCreate(
|
||||||
['code' => $process->command.$sport->code, 'sport_id' => $sport->id],
|
['code' => $process->command.$sport->code, 'sport_id' => $sport->id],
|
||||||
['command' => $process->process.$sport->code, 'description' => $process->description]
|
['command' => $process->process.$sport->code, 'description' => $process->description]
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,10 +2,11 @@
|
|||||||
|
|
||||||
namespace App\Filament\Resources\Clients\Tables;
|
namespace App\Filament\Resources\Clients\Tables;
|
||||||
|
|
||||||
|
use App\Actions\AlarmGenerator;
|
||||||
|
use App\Actions\MultilineGenerator;
|
||||||
use App\Models\Bookmaker;
|
use App\Models\Bookmaker;
|
||||||
use App\Models\Sport;
|
use App\Models\Sport;
|
||||||
use Filament\Actions\BulkActionGroup;
|
use Filament\Actions\Action;
|
||||||
use Filament\Actions\DeleteBulkAction;
|
|
||||||
use Filament\Actions\EditAction;
|
use Filament\Actions\EditAction;
|
||||||
use Filament\Tables\Columns\TextColumn;
|
use Filament\Tables\Columns\TextColumn;
|
||||||
use Filament\Tables\Table;
|
use Filament\Tables\Table;
|
||||||
@@ -23,7 +24,7 @@ class ClientsTable
|
|||||||
->formatStateUsing(fn (string $state): string => Bookmaker::where('id', $state)->pluck('name')->first()),
|
->formatStateUsing(fn (string $state): string => Bookmaker::where('id', $state)->pluck('name')->first()),
|
||||||
TextColumn::make('sport')
|
TextColumn::make('sport')
|
||||||
->badge()
|
->badge()
|
||||||
->color('secondary')
|
->color('warning')
|
||||||
->formatStateUsing(fn (string $state): string => Sport::where('id', $state)->pluck('name')->first()),
|
->formatStateUsing(fn (string $state): string => Sport::where('id', $state)->pluck('name')->first()),
|
||||||
TextColumn::make('created_at')
|
TextColumn::make('created_at')
|
||||||
->dateTime()
|
->dateTime()
|
||||||
@@ -35,12 +36,19 @@ class ClientsTable
|
|||||||
->toggleable(isToggledHiddenByDefault: true),
|
->toggleable(isToggledHiddenByDefault: true),
|
||||||
])
|
])
|
||||||
->recordActions([
|
->recordActions([
|
||||||
|
Action::make('multiline')
|
||||||
|
->icon('phosphor-gear-fine')
|
||||||
|
->tooltip('Generates basic alarm configuration for client')
|
||||||
|
->action(function ($record) {
|
||||||
|
MultilineGenerator::run($record);
|
||||||
|
}),
|
||||||
|
Action::make('alarm')
|
||||||
|
->icon('phosphor-gear-fine')
|
||||||
|
->tooltip('Generates basic multiline configuration for client')
|
||||||
|
->action(function ($record) {
|
||||||
|
AlarmGenerator::run($record);
|
||||||
|
}),
|
||||||
EditAction::make(),
|
EditAction::make(),
|
||||||
])
|
|
||||||
->toolbarActions([
|
|
||||||
BulkActionGroup::make([
|
|
||||||
DeleteBulkAction::make(),
|
|
||||||
]),
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -43,22 +43,27 @@ class EventsTable
|
|||||||
->label('Event')
|
->label('Event')
|
||||||
->icon(fn ($record) => $record->country->icon)
|
->icon(fn ($record) => $record->country->icon)
|
||||||
->description(fn ($record) => $record->competition_group->name),
|
->description(fn ($record) => $record->competition_group->name),
|
||||||
TextColumn::make('home.name')->alignRight(),
|
TextColumn::make('home.name')->alignRight()->searchable(),
|
||||||
TextColumn::make('away.name'),
|
TextColumn::make('away.name')->searchable(),
|
||||||
|
|
||||||
Odds3Way::make('odds_3way.bookmaker')->label('1X2'),
|
Odds3Way::make('odds_3way.bookmaker')->label('1X2'),
|
||||||
])
|
])
|
||||||
->defaultSort('starttime', 'ASC')
|
->defaultSort('starttime', 'ASC')
|
||||||
// ->deferFilters(false)
|
->deferFilters(false)
|
||||||
// ->filters([
|
->filters([
|
||||||
// SelectFilter::make('sport_id')
|
SelectFilter::make('sport_id')
|
||||||
// ->label('Sport')
|
->label('Sport')
|
||||||
// ->default(1)
|
->default(1)
|
||||||
// ->selectablePlaceholder(false)
|
->selectablePlaceholder(false)
|
||||||
// ->relationship('sport', 'name', fn (Builder $query) => $query->where('is_active', 1))
|
->relationship('sport', 'name', fn (Builder $query) => $query->where('is_active', 1))
|
||||||
// ->preload(),
|
->preload(),
|
||||||
// ], FiltersLayout::AboveContent)
|
// SelectFilter::make('competition_group_id')
|
||||||
// ->hiddenFilterIndicators()
|
// ->label('Tornament')
|
||||||
|
// ->options(fn () => Event::where('is_active', 1)->pluck('sport', 'id')
|
||||||
|
// ->relationship('sport', 'name', fn (Builder $query) => $query->where('is_active', 1))
|
||||||
|
// ->preload(),
|
||||||
|
], FiltersLayout::AboveContent)
|
||||||
|
->hiddenFilterIndicators(false)
|
||||||
->persistFiltersInSession()
|
->persistFiltersInSession()
|
||||||
->recordActions([
|
->recordActions([
|
||||||
// EditAction::make(),
|
// EditAction::make(),
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources\MultilineSettings;
|
||||||
|
|
||||||
|
use App\Filament\Clusters\Administrator\AdministratorCluster;
|
||||||
|
use App\Filament\Resources\MultilineSettings\Pages\ListMultilineSettings;
|
||||||
|
use App\Filament\Resources\MultilineSettings\Schemas\MultilineSettingForm;
|
||||||
|
use App\Filament\Resources\MultilineSettings\Tables\MultilineSettingsTable;
|
||||||
|
use App\Models\MultilineSetting;
|
||||||
|
use BackedEnum;
|
||||||
|
use Filament\Resources\Resource;
|
||||||
|
use Filament\Schemas\Schema;
|
||||||
|
use Filament\Support\Icons\Heroicon;
|
||||||
|
use Filament\Tables\Table;
|
||||||
|
|
||||||
|
class MultilineSettingResource extends Resource
|
||||||
|
{
|
||||||
|
protected static ?string $model = MultilineSetting::class;
|
||||||
|
|
||||||
|
protected static string|BackedEnum|null $navigationIcon = Heroicon::Bars3;
|
||||||
|
|
||||||
|
protected static ?string $cluster = AdministratorCluster::class;
|
||||||
|
|
||||||
|
protected static string|\UnitEnum|null $navigationGroup = 'Static Data';
|
||||||
|
|
||||||
|
protected static ?string $navigationLabel = 'Multiline';
|
||||||
|
|
||||||
|
// protected static ?string $modelLabel = 'Group';
|
||||||
|
|
||||||
|
// protected static ?string $title = 'Group';
|
||||||
|
|
||||||
|
// protected static ?string $pluralModelLabel = 'Groups';
|
||||||
|
|
||||||
|
public static function form(Schema $schema): Schema
|
||||||
|
{
|
||||||
|
return MultilineSettingForm::configure($schema);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function table(Table $table): Table
|
||||||
|
{
|
||||||
|
return MultilineSettingsTable::configure($table);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getPages(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'index' => ListMultilineSettings::route('/'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getNavigationBadge(): ?string
|
||||||
|
{
|
||||||
|
return parent::getEloquentQuery()->count();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources\MultilineSettings\Pages;
|
||||||
|
|
||||||
|
use App\Filament\Resources\MultilineSettings\MultilineSettingResource;
|
||||||
|
use Filament\Resources\Pages\CreateRecord;
|
||||||
|
|
||||||
|
class CreateMultilineSetting extends CreateRecord
|
||||||
|
{
|
||||||
|
protected static string $resource = MultilineSettingResource::class;
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources\MultilineSettings\Pages;
|
||||||
|
|
||||||
|
use App\Filament\Resources\MultilineSettings\MultilineSettingResource;
|
||||||
|
use Filament\Actions\DeleteAction;
|
||||||
|
use Filament\Resources\Pages\EditRecord;
|
||||||
|
|
||||||
|
class EditMultilineSetting extends EditRecord
|
||||||
|
{
|
||||||
|
protected static string $resource = MultilineSettingResource::class;
|
||||||
|
|
||||||
|
protected function getHeaderActions(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
DeleteAction::make(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources\MultilineSettings\Pages;
|
||||||
|
|
||||||
|
use App\Filament\Resources\MultilineSettings\MultilineSettingResource;
|
||||||
|
use Filament\Actions\CreateAction;
|
||||||
|
use Filament\Resources\Pages\ListRecords;
|
||||||
|
|
||||||
|
class ListMultilineSettings extends ListRecords
|
||||||
|
{
|
||||||
|
protected static string $resource = MultilineSettingResource::class;
|
||||||
|
|
||||||
|
protected function getHeaderActions(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
CreateAction::make(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources\MultilineSettings\Schemas;
|
||||||
|
|
||||||
|
use App\Models\Sport;
|
||||||
|
use Filament\Forms\Components\Select;
|
||||||
|
use Filament\Forms\Components\TextInput;
|
||||||
|
use Filament\Schemas\Schema;
|
||||||
|
|
||||||
|
class MultilineSettingForm
|
||||||
|
{
|
||||||
|
public static function configure(Schema $schema): Schema
|
||||||
|
{
|
||||||
|
return $schema
|
||||||
|
->components([
|
||||||
|
TextInput::make('name')->required(),
|
||||||
|
TextInput::make('short')->required(),
|
||||||
|
TextInput::make('table')->required(),
|
||||||
|
Select::make('sport_id')
|
||||||
|
->required()
|
||||||
|
->label('Sport')
|
||||||
|
->options(fn () => Sport::where('is_active', 1)->pluck('name', 'id')
|
||||||
|
->toArray()),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources\MultilineSettings\Tables;
|
||||||
|
|
||||||
|
use Filament\Actions\BulkActionGroup;
|
||||||
|
use Filament\Actions\DeleteBulkAction;
|
||||||
|
use Filament\Actions\EditAction;
|
||||||
|
use Filament\Tables\Columns\IconColumn;
|
||||||
|
use Filament\Tables\Columns\TextColumn;
|
||||||
|
use Filament\Tables\Enums\FiltersLayout;
|
||||||
|
use Filament\Tables\Filters\SelectFilter;
|
||||||
|
use Filament\Tables\Table;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
|
||||||
|
class MultilineSettingsTable
|
||||||
|
{
|
||||||
|
public static function configure(Table $table): Table
|
||||||
|
{
|
||||||
|
return $table
|
||||||
|
->columns([
|
||||||
|
IconColumn::make('sport.icon')
|
||||||
|
->label('')
|
||||||
|
->width('1rem')
|
||||||
|
->icon(function ($record): string {
|
||||||
|
return $record->sport->icon;
|
||||||
|
}),
|
||||||
|
TextColumn::make('sport.name'),
|
||||||
|
TextColumn::make('name'),
|
||||||
|
TextColumn::make('short'),
|
||||||
|
TextColumn::make('table'),
|
||||||
|
TextColumn::make('rows'),
|
||||||
|
])
|
||||||
|
->deferFilters(false)
|
||||||
|
->filters([
|
||||||
|
SelectFilter::make('sport_id')
|
||||||
|
->label('Sport')
|
||||||
|
->default(1)
|
||||||
|
->selectablePlaceholder(false)
|
||||||
|
->relationship('sport', 'name', fn (Builder $query) => $query->where('is_active', 1))
|
||||||
|
->preload(),
|
||||||
|
], FiltersLayout::AboveContent)
|
||||||
|
->hiddenFilterIndicators()
|
||||||
|
->recordActions([
|
||||||
|
EditAction::make(),
|
||||||
|
])
|
||||||
|
->toolbarActions([
|
||||||
|
BulkActionGroup::make([
|
||||||
|
DeleteBulkAction::make(),
|
||||||
|
]),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Filament\Resources\Multilines\Tables;
|
namespace App\Filament\Resources\Multilines\Tables;
|
||||||
|
|
||||||
use App\Actions\MultilineGenerator;
|
|
||||||
use App\Filament\Tables\Columns\BookmakerIcon;
|
use App\Filament\Tables\Columns\BookmakerIcon;
|
||||||
use Filament\Actions\Action;
|
use Filament\Actions\Action;
|
||||||
use Filament\Tables\Columns\IconColumn;
|
use Filament\Tables\Columns\IconColumn;
|
||||||
@@ -24,7 +23,7 @@ class MultilinesTable
|
|||||||
->label($isReordering ? 'Disable reordering' : 'Enable reordering'),
|
->label($isReordering ? 'Disable reordering' : 'Enable reordering'),
|
||||||
)
|
)
|
||||||
->reorderable('sort')
|
->reorderable('sort')
|
||||||
->defaultGroup('bettype.name')
|
->defaultGroup('name')
|
||||||
->columns([
|
->columns([
|
||||||
IconColumn::make('sport.icon')
|
IconColumn::make('sport.icon')
|
||||||
->label('')
|
->label('')
|
||||||
@@ -32,9 +31,8 @@ class MultilinesTable
|
|||||||
->icon(function ($record): string {
|
->icon(function ($record): string {
|
||||||
return $record->sport->icon;
|
return $record->sport->icon;
|
||||||
}),
|
}),
|
||||||
TextColumn::make('sport.name'),
|
// TextColumn::make('sport.name'),
|
||||||
TextColumn::make('matchpart.name'),
|
TextColumn::make('name'),
|
||||||
TextColumn::make('bettype.name'),
|
|
||||||
TextColumn::make('bookmaker.name'),
|
TextColumn::make('bookmaker.name'),
|
||||||
BookmakerIcon::make('bookmaker.icon')->label('Icon'),
|
BookmakerIcon::make('bookmaker.icon')->label('Icon'),
|
||||||
])
|
])
|
||||||
@@ -49,13 +47,6 @@ class MultilinesTable
|
|||||||
->preload(),
|
->preload(),
|
||||||
], FiltersLayout::AboveContent)
|
], FiltersLayout::AboveContent)
|
||||||
->hiddenFilterIndicators()
|
->hiddenFilterIndicators()
|
||||||
->persistFiltersInSession()
|
->persistFiltersInSession();
|
||||||
->headerActions([
|
|
||||||
Action::make('generate')
|
|
||||||
->icon('phosphor-gear-fine')
|
|
||||||
->action(function () {
|
|
||||||
MultilineGenerator::run();
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,8 +10,9 @@ class Multiline extends Model
|
|||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'client_id',
|
'client_id',
|
||||||
'sport_id',
|
'sport_id',
|
||||||
'bettype_id',
|
'table',
|
||||||
'matchpart_id',
|
'name',
|
||||||
|
'disabled',
|
||||||
'bookmaker_id',
|
'bookmaker_id',
|
||||||
'sort',
|
'sort',
|
||||||
];
|
];
|
||||||
@@ -21,16 +22,6 @@ class Multiline extends Model
|
|||||||
return $this->belongsTo(Sport::class);
|
return $this->belongsTo(Sport::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function matchpart()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(Matchpart::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function bettype()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(Bettype::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function bookmaker()
|
public function bookmaker()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(Bookmaker::class, 'bookmaker_id', 'txid');
|
return $this->belongsTo(Bookmaker::class, 'bookmaker_id', 'txid');
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class MultilineSetting extends Model
|
||||||
|
{
|
||||||
|
protected $fillable = [
|
||||||
|
'id',
|
||||||
|
'sport_id',
|
||||||
|
'name',
|
||||||
|
'short',
|
||||||
|
'table',
|
||||||
|
];
|
||||||
|
|
||||||
|
public function sport()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Sport::class);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Odds2wayS1 extends Model
|
||||||
|
{
|
||||||
|
protected $table = 'odds_2ways_s1';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'id',
|
||||||
|
'event_id',
|
||||||
|
'sport_id',
|
||||||
|
'bookmaker_id',
|
||||||
|
'provider_id',
|
||||||
|
'offer_id',
|
||||||
|
'bmoid',
|
||||||
|
'h2w',
|
||||||
|
'a2w',
|
||||||
|
'margin',
|
||||||
|
'flag',
|
||||||
|
'nuh_check',
|
||||||
|
'last_check_at',
|
||||||
|
'source_updated_at',
|
||||||
|
'add_time',
|
||||||
|
'updated_at',
|
||||||
|
];
|
||||||
|
|
||||||
|
public function sport()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Sport::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function bookmaker()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Bookmaker::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function event()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Event::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function provider()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Provider::class);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class OddsHandicapQ1 extends Model
|
||||||
|
{
|
||||||
|
protected $table = 'odds_handicaps_q1';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'id',
|
||||||
|
'event_id',
|
||||||
|
'sport_id',
|
||||||
|
'bookmaker_id',
|
||||||
|
'provider_id',
|
||||||
|
'offer_id',
|
||||||
|
'bmoid',
|
||||||
|
'home',
|
||||||
|
'away',
|
||||||
|
'handicap',
|
||||||
|
'margin',
|
||||||
|
'flag',
|
||||||
|
'nuh_check',
|
||||||
|
'last_check_at',
|
||||||
|
'source_updated_at',
|
||||||
|
'add_time',
|
||||||
|
'updated_at',
|
||||||
|
];
|
||||||
|
|
||||||
|
public function sport()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Sport::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function bookmaker()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Bookmaker::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function event()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Event::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function provider()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Provider::class);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class OddsTotalQ1 extends Model
|
||||||
|
{
|
||||||
|
protected $table = 'odds_totals_q1';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'id',
|
||||||
|
'event_id',
|
||||||
|
'sport_id',
|
||||||
|
'bookmaker_id',
|
||||||
|
'provider_id',
|
||||||
|
'offer_id',
|
||||||
|
'bmoid',
|
||||||
|
'over',
|
||||||
|
'under',
|
||||||
|
'spread',
|
||||||
|
'margin',
|
||||||
|
'flag',
|
||||||
|
'nuh_check',
|
||||||
|
'last_check_at',
|
||||||
|
'source_updated_at',
|
||||||
|
'add_time',
|
||||||
|
'updated_at',
|
||||||
|
];
|
||||||
|
|
||||||
|
public function sport()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Sport::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function bookmaker()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Bookmaker::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function event()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Event::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function provider()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Provider::class);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,6 +7,7 @@ use Carbon\Carbon;
|
|||||||
use Filament\Support\Colors\Color;
|
use Filament\Support\Colors\Color;
|
||||||
use Filament\Support\Facades\FilamentColor;
|
use Filament\Support\Facades\FilamentColor;
|
||||||
use Filament\Support\Facades\FilamentView;
|
use Filament\Support\Facades\FilamentView;
|
||||||
|
use Filament\Tables\View\TablesRenderHook;
|
||||||
use Filament\View\PanelsRenderHook;
|
use Filament\View\PanelsRenderHook;
|
||||||
use Illuminate\Support\ServiceProvider;
|
use Illuminate\Support\ServiceProvider;
|
||||||
use Illuminate\View\View;
|
use Illuminate\View\View;
|
||||||
@@ -27,7 +28,8 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
public function boot(): void
|
public function boot(): void
|
||||||
{
|
{
|
||||||
FilamentView::registerRenderHook(
|
FilamentView::registerRenderHook(
|
||||||
PanelsRenderHook::RESOURCE_PAGES_LIST_RECORDS_TABLE_BEFORE,
|
// PanelsRenderHook::RESOURCE_PAGES_LIST_RECORDS_TABS_END,
|
||||||
|
TablesRenderHook::TOOLBAR_SEARCH_AFTER,
|
||||||
fn (): View => view('filament.hooks.table-bettype-filters'),
|
fn (): View => view('filament.hooks.table-bettype-filters'),
|
||||||
scopes: [
|
scopes: [
|
||||||
ListEvents::class,
|
ListEvents::class,
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('odds_2ways_s1', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->foreignId('event_id')->constrained()->cascadeOnDelete();
|
||||||
|
$table->integer('sport_id')->default(0);
|
||||||
|
$table->integer('bookmaker_id')->default(0);
|
||||||
|
$table->integer('provider_id')->default(0);
|
||||||
|
$table->bigInteger('offer_id')->default(0);
|
||||||
|
$table->string('bmoid')->nullable();
|
||||||
|
$table->decimal('h2w', 7, 3)->default(0);
|
||||||
|
$table->decimal('a2w', 7, 3)->default(0);
|
||||||
|
$table->decimal('margin', 5, 1)->default(0);
|
||||||
|
$table->boolean('flag')->default(0);
|
||||||
|
$table->boolean('nuh_check')->default(0);
|
||||||
|
$table->timestamp('last_check_at')->nullable();
|
||||||
|
$table->timestamp('source_updated_at')->nullable();
|
||||||
|
$table->timestamps();
|
||||||
|
$table->index(['event_id']);
|
||||||
|
$table->index(['sport_id']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('odds_2ways_s1');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('odds_handicaps_q1', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->foreignId('event_id')->constrained()->cascadeOnDelete();
|
||||||
|
$table->integer('sport_id')->default(0);
|
||||||
|
$table->integer('bookmaker_id')->default(0);
|
||||||
|
$table->integer('provider_id')->default(0);
|
||||||
|
$table->bigInteger('offer_id')->default(0);
|
||||||
|
$table->string('bmoid')->nullable();
|
||||||
|
$table->decimal('home', 7, 3)->default(0);
|
||||||
|
$table->decimal('away', 7, 3)->default(0);
|
||||||
|
$table->decimal('handicap', 7, 3)->default(0);
|
||||||
|
$table->decimal('margin', 5, 1)->default(0);
|
||||||
|
$table->boolean('flag')->default(0);
|
||||||
|
$table->boolean('nuh_check')->default(0);
|
||||||
|
$table->timestamp('last_check_at')->nullable();
|
||||||
|
$table->timestamp('source_updated_at')->nullable();
|
||||||
|
$table->timestamps();
|
||||||
|
$table->index(['event_id']);
|
||||||
|
$table->index(['sport_id']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('odds_handicaps_q1');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('odds_totals_q1', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->foreignId('event_id')->constrained()->cascadeOnDelete();
|
||||||
|
$table->integer('sport_id')->default(0);
|
||||||
|
$table->integer('bookmaker_id')->default(0);
|
||||||
|
$table->integer('provider_id')->default(0);
|
||||||
|
$table->bigInteger('offer_id')->default(0);
|
||||||
|
$table->string('bmoid')->nullable();
|
||||||
|
$table->decimal('over', 7, 3)->default(0);
|
||||||
|
$table->decimal('under', 7, 3)->default(0);
|
||||||
|
$table->decimal('total', 7, 3)->default(0);
|
||||||
|
$table->decimal('margin', 5, 1)->default(0);
|
||||||
|
$table->boolean('flag')->default(0);
|
||||||
|
$table->boolean('nuh_check')->default(0);
|
||||||
|
$table->timestamp('last_check_at')->nullable();
|
||||||
|
$table->timestamp('source_updated_at')->nullable();
|
||||||
|
$table->timestamps();
|
||||||
|
$table->index(['event_id']);
|
||||||
|
$table->index(['sport_id']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('odds_totals_q1');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -13,11 +13,12 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
Schema::create('multilines', function (Blueprint $table) {
|
Schema::create('multilines', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->integer('sport_id');
|
|
||||||
$table->integer('client_id')->default(0);
|
$table->integer('client_id')->default(0);
|
||||||
$table->integer('bettype_id')->default(0);
|
$table->integer('sport_id');
|
||||||
|
$table->boolean('disabled')->default(0);
|
||||||
|
$table->string('table')->nullable();
|
||||||
|
$table->string('name')->nullable();
|
||||||
$table->integer('bookmaker_id')->default(0);
|
$table->integer('bookmaker_id')->default(0);
|
||||||
$table->integer('matchpart_id')->default(0);
|
|
||||||
$table->integer('sort')->default(0);
|
$table->integer('sort')->default(0);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ return new class extends Migration
|
|||||||
$table->integer('bettype_id')->default(0);
|
$table->integer('bettype_id')->default(0);
|
||||||
$table->string('name');
|
$table->string('name');
|
||||||
$table->text('oddsname');
|
$table->text('oddsname');
|
||||||
|
$table->boolean('disabled')->default(0);
|
||||||
$table->boolean('can_odds_closed')->default(0);
|
$table->boolean('can_odds_closed')->default(0);
|
||||||
$table->boolean('is_spread')->default(0);
|
$table->boolean('is_spread')->default(0);
|
||||||
$table->boolean('ft')->default(0);
|
$table->boolean('ft')->default(0);
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('multiline_settings', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->integer('sport_id')->default(0);
|
||||||
|
$table->string('name');
|
||||||
|
$table->string('short');
|
||||||
|
$table->string('table');
|
||||||
|
$table->integer('rows')->default(4);
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('multiline_settings');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -20,6 +20,7 @@ class DatabaseSeeder extends Seeder
|
|||||||
SportSeeder::class,
|
SportSeeder::class,
|
||||||
SupervisorSeeder::class,
|
SupervisorSeeder::class,
|
||||||
BettypeSeeder::class,
|
BettypeSeeder::class,
|
||||||
|
MultilineSettingSeeder::class,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class MultilineSettingSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Clients
|
||||||
|
*/
|
||||||
|
$sql = "INSERT INTO `multiline_settings` (`id`, `sport_id`, `name`, `short`, `table`, `rows`, `created_at`, `updated_at`)
|
||||||
|
VALUES
|
||||||
|
('1', '1', '1X2', '1X2', 'odds_3ways', '4', '2025-12-14 09:25:48', '2025-12-14 09:25:48'),
|
||||||
|
('2', '1', 'DOUBLE CHANCE', 'DC', 'odds_dc', '4', '2025-12-14 09:31:22', '2025-12-14 09:32:55'),
|
||||||
|
('3', '1', 'DRAW NO BET', 'DNB', 'odds_dnb', '4', '2025-12-14 09:31:42', '2025-12-14 09:31:42'),
|
||||||
|
('4', '1', 'GOAL NO GOAL', 'GGNG', 'odds_ggng', '4', '2025-12-14 09:31:56', '2025-12-14 09:31:56'),
|
||||||
|
('5', '1', 'TO QUALIFY', 'TQ', 'odds_qualify', '4', '2025-12-14 09:32:19', '2025-12-14 09:32:19'),
|
||||||
|
('6', '1', 'TOTALS', 'OU', 'odds_totals', '4', '2025-12-14 09:32:38', '2025-12-14 09:32:38'),
|
||||||
|
('7', '3', 'MONEY LINE', 'ML', 'odds_2ways', '4', '2025-12-14 09:37:32', '2025-12-14 09:37:32'),
|
||||||
|
('8', '3', 'HANDICAP', 'HC', 'odds_handicaps', '4', '2025-12-14 09:38:05', '2025-12-14 09:38:05'),
|
||||||
|
('9', '3', 'HANDICAP FIRST QUARTER', 'HCQ1', 'odds_handicaps_q1', '4', '2025-12-14 09:38:26', '2025-12-14 09:39:54'),
|
||||||
|
('10', '3', 'TOTALS', 'OU', 'odds_totals', '4', '2025-12-14 09:38:44', '2025-12-14 09:38:44'),
|
||||||
|
('11', '3', 'TOTALS FIRST QUARTER', 'OUQ1', 'odds_totals_q1', '4', '2025-12-14 09:39:12', '2025-12-14 09:39:59'),
|
||||||
|
('12', '2', 'MONEY LINE', 'ML', 'odds_2ways', '4', '2025-12-14 09:41:21', '2025-12-14 09:41:21'),
|
||||||
|
('13', '2', '1X2', '1X2', 'odds_3ways', '4', '2025-12-14 09:41:34', '2025-12-14 09:41:34'),
|
||||||
|
('14', '2', 'HANDICAP', 'HC', 'odds_handicaps', '4', '2025-12-14 09:41:56', '2025-12-14 09:41:56'),
|
||||||
|
('15', '2', 'TOTALS', 'OU', 'odds_totals', '4', '2025-12-14 09:42:13', '2025-12-14 09:42:13'),
|
||||||
|
('16', '5', 'MONEY LINE', 'ML', 'odds_2ways', '4', '2025-12-14 09:43:52', '2025-12-14 09:43:52'),
|
||||||
|
('17', '5', 'MONEY LINE SET 1', 'MLS1', 'odds_2ways_s1', '4', '2025-12-14 09:44:13', '2025-12-14 09:44:13'),
|
||||||
|
('18', '5', 'TOTALS', 'OU', 'odds_totals', '4', '2025-12-14 09:44:26', '2025-12-14 09:44:26');
|
||||||
|
";
|
||||||
|
DB::unprepared($sql);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,6 +10,15 @@ button[wire\:click="resetTableFiltersForm"] {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.fi-ta-header-toolbar {
|
||||||
|
@apply flex-row-reverse;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fi-ta-header-toolbar>*:nth-child(2) {
|
||||||
|
width: 100%;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
.oddsbox .bl {
|
.oddsbox .bl {
|
||||||
border-left: 1px solid #e4e4e7;
|
border-left: 1px solid #e4e4e7;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,38 +1,29 @@
|
|||||||
<div class="w-full flex justify-between">
|
<div class="w-full flex gap-2 justify-end">
|
||||||
|
|
||||||
<x-filament::input.wrapper prefix-icon="icon-soccerball" prefix-icon-color="primary">
|
|
||||||
<x-filament::input.select wire:model="status">
|
|
||||||
<option value="draft">Soccer</option>
|
|
||||||
<option value="reviewing">Basketball</option>
|
|
||||||
<option value="published">Ice Hockey</option>
|
|
||||||
<option value="published">Tennis</option>
|
|
||||||
</x-filament::input.select>
|
|
||||||
</x-filament::input.wrapper>
|
|
||||||
|
|
||||||
<div class="flex gap-2">
|
<div class="flex gap-2">
|
||||||
|
|
||||||
<x-filament::button color="gray" outlined x-on:click="$wire.call('removeTableFilters')">
|
<x-filament::button color="gray" outlined x-on:click="$wire.call('removeTableFilters')">
|
||||||
1X2
|
1X2
|
||||||
</x-filament::button>
|
</x-filament::button>
|
||||||
|
|
||||||
<x-filament::button color="gray" outlined
|
<x-filament::button color="gray" outlined tooltip="OVER/UNDER"
|
||||||
x-on:click="$wire.set('tableFilters', {'published_at': {'value': '1'}})">
|
x-on:click="$wire.set('tableFilters', {'published_at': {'value': '1'}})">
|
||||||
OVER/UNDER
|
OU
|
||||||
</x-filament::button>
|
</x-filament::button>
|
||||||
|
|
||||||
<x-filament::button color="gray" outlined
|
<x-filament::button color="gray" outlined tooltip="TO QUALIFY"
|
||||||
x-on:click="$wire.set('tableFilters', {'published_at': {'value': '0'}})">
|
x-on:click="$wire.set('tableFilters', {'published_at': {'value': '0'}})">
|
||||||
TO QUALIFY
|
TQ
|
||||||
</x-filament::button>
|
</x-filament::button>
|
||||||
|
|
||||||
<x-filament::button color="gray" outlined
|
<x-filament::button color="gray" outlined tooltip="DRAW NO BET"
|
||||||
x-on:click="$wire.set('tableFilters', {'published_at': {'value': '0'}})">
|
x-on:click="$wire.set('tableFilters', {'published_at': {'value': '0'}})">
|
||||||
DOUBLE CHANCE
|
DNB
|
||||||
</x-filament::button>
|
</x-filament::button>
|
||||||
|
|
||||||
<x-filament::button color="gray" outlined
|
<x-filament::button color="gray" outlined tooltip="GOAL NOGOAL"
|
||||||
x-on:click="$wire.set('tableFilters', {'published_at': {'value': '0'}})">
|
x-on:click="$wire.set('tableFilters', {'published_at': {'value': '0'}})">
|
||||||
GOAL NOGOAL
|
GG
|
||||||
</x-filament::button>
|
</x-filament::button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 9.5 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 369 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
@@ -0,0 +1,10 @@
|
|||||||
|
<svg viewBox="0 0 417 100">
|
||||||
|
<g transform="translate(-338.71955,-441.05331)">
|
||||||
|
<g fill="currentColor" transform="matrix(18.594273,0,0,-18.594273,-4690.0458,4472.2917)">
|
||||||
|
<path d="m 292.58,211.999 c 0.03,0.014 0.067,0.02 0.11,0.02 0.064,0 0.115,-0.018 0.152,-0.056 0.037,-0.037 0.055,-0.096 0.055,-0.173 l 0,-0.36 -0.24,0 0,0.327 c 0,0.025 -0.005,0.041 -0.014,0.051 -0.013,0.018 -0.029,0.026 -0.048,0.026 -0.024,0 -0.043,-0.008 -0.057,-0.024 -0.014,-0.016 -0.022,-0.043 -0.022,-0.083 l 0,-0.297 -0.241,0 0,0.317 c 0,0.024 -10e-4,0.04 -0.004,0.047 -0.003,0.013 -0.011,0.022 -0.021,0.03 -0.01,0.007 -0.022,0.011 -0.036,0.011 -0.023,0 -0.042,-0.008 -0.057,-0.025 -0.014,-0.016 -0.022,-0.044 -0.022,-0.086 l 0,-0.294 -0.241,0 0,0.577 0.225,0 0,-0.068 c 0.026,0.026 0.052,0.045 0.079,0.058 0.032,0.015 0.07,0.022 0.114,0.022 0.047,0 0.086,-0.007 0.114,-0.024 0.026,-0.015 0.047,-0.037 0.064,-0.064 0.032,0.032 0.062,0.055 0.09,0.068 z m -2.221,-0.561 -0.25598,0 0,0.26503 0.25598,0 0,-0.26503 z m 1.436,0.493 c 0.047,-0.054 0.071,-0.121 0.071,-0.2 0,-0.088 -0.029,-0.161 -0.089,-0.218 -0.059,-0.057 -0.14,-0.085 -0.243,-0.085 -0.092,0 -0.167,0.023 -0.224,0.071 -0.071,0.058 -0.106,0.135 -0.106,0.229 0,0.088 0.029,0.161 0.089,0.218 0.06,0.057 0.14,0.086 0.24,0.086 0.114,0 0.202,-0.033 0.262,-0.101 z m -0.19,-0.309 c 0.018,0.022 0.028,0.057 0.028,0.109 0,0.048 -0.01,0.082 -0.028,0.103 -0.019,0.023 -0.041,0.034 -0.069,0.034 -0.029,0 -0.052,-0.011 -0.071,-0.034 -0.019,-0.022 -0.029,-0.057 -0.029,-0.105 0,-0.05 0.009,-0.084 0.028,-0.106 0.019,-0.023 0.043,-0.033 0.071,-0.033 0.029,0 0.052,0.01 0.07,0.032 z m -0.419,0.007 c -0.012,-0.04 -0.031,-0.075 -0.056,-0.105 -0.028,-0.032 -0.063,-0.057 -0.106,-0.075 -0.043,-0.018 -0.096,-0.027 -0.161,-0.027 -0.062,0 -0.114,0.006 -0.156,0.017 -0.042,0.012 -0.079,0.03 -0.109,0.056 -0.031,0.025 -0.054,0.055 -0.072,0.09 -0.017,0.035 -0.026,0.08 -0.026,0.136 0,0.059 0.011,0.108 0.032,0.148 0.015,0.029 0.036,0.055 0.063,0.078 0.026,0.023 0.054,0.04 0.082,0.052 0.045,0.017 0.102,0.026 0.17,0.026 0.096,0 0.17,-0.016 0.222,-0.051 0.049,-0.032 0.084,-0.078 0.105,-0.138 l 0.007,-0.019 -0.227,-0.029 -0.005,0.012 c -0.006,0.02 -0.016,0.034 -0.03,0.044 -0.016,0.011 -0.037,0.017 -0.065,0.017 -0.035,0 -0.062,-0.012 -0.083,-0.036 -0.021,-0.023 -0.032,-0.059 -0.032,-0.109 0,-0.045 0.011,-0.078 0.032,-0.099 0.02,-0.022 0.047,-0.033 0.08,-0.033 0.027,0 0.05,0.007 0.068,0.02 0.017,0.012 0.03,0.03 0.04,0.056 l 0.004,0.012 0.229,-0.025 -0.006,-0.018" />
|
||||||
|
<path d="m 279.118,215.087 c 0.142,0 0.234,0.034 0.285,0.097 0.053,0.065 0.081,0.16 0.081,0.289 0,0.12 -0.028,0.21 -0.081,0.274 -0.051,0.062 -0.141,0.096 -0.279,0.096 l -0.388,0 0,-0.756 0.382,0 z m 0.392,-0.94 c -0.059,0.069 -0.165,0.106 -0.325,0.106 l -0.449,0 0,-0.811 0.451,0 c 0.157,0 0.261,0.039 0.321,0.112 0.062,0.074 0.094,0.176 0.094,0.306 0,0.121 -0.032,0.216 -0.092,0.287 z m -2.048,-0.261 c 0,-0.271 -0.053,-0.521 -0.161,-0.75 -0.107,-0.229 -0.258,-0.404 -0.452,-0.523 -0.194,-0.12 -0.439,-0.179 -0.731,-0.179 -0.512,0 -0.872,0.138 -1.073,0.42 -0.196,0.273 -0.307,0.619 -0.335,1.035 l -0.002,0.037 0.918,0.081 0.004,-0.038 c 0.019,-0.19 0.057,-0.333 0.112,-0.431 0.092,-0.164 0.222,-0.244 0.39,-0.244 0.127,0 0.222,0.041 0.29,0.123 0.068,0.083 0.103,0.179 0.103,0.289 0,0.105 -0.033,0.198 -0.099,0.28 -0.063,0.081 -0.216,0.16 -0.463,0.236 -0.407,0.128 -0.701,0.299 -0.877,0.515 -0.177,0.215 -0.265,0.489 -0.265,0.819 0,0.218 0.045,0.424 0.135,0.617 0.091,0.195 0.227,0.348 0.41,0.46 0.183,0.112 0.432,0.167 0.746,0.167 0.386,0 0.683,-0.101 0.888,-0.304 0.203,-0.201 0.322,-0.516 0.362,-0.942 l 0.004,-0.038 -0.91,-0.074 -0.005,0.036 c -0.024,0.178 -0.071,0.304 -0.139,0.383 -0.07,0.081 -0.167,0.122 -0.292,0.122 -0.103,0 -0.177,-0.031 -0.227,-0.089 -0.051,-0.06 -0.077,-0.133 -0.077,-0.221 0,-0.062 0.021,-0.118 0.063,-0.168 0.039,-0.05 0.137,-0.1 0.3,-0.148 0.405,-0.122 0.697,-0.246 0.874,-0.372 0.178,-0.127 0.307,-0.284 0.388,-0.472 0.081,-0.188 0.121,-0.397 0.121,-0.627 z m 12.463,-0.395 0,-0.986 -2.561,0 0,4.224 2.517,0 0,-0.932 -1.551,0 0,-0.627 1.438,0 0,-0.892 -1.438,0 0,-0.787 1.595,0 z m -6.016,1.157 c 0,-0.49 -0.059,-0.893 -0.178,-1.209 -0.118,-0.316 -0.29,-0.563 -0.516,-0.739 -0.226,-0.178 -0.508,-0.266 -0.844,-0.266 -0.34,0 -0.624,0.076 -0.849,0.229 -0.225,0.153 -0.406,0.395 -0.544,0.722 -0.139,0.328 -0.208,0.739 -0.208,1.229 0,0.685 0.136,1.222 0.411,1.607 0.276,0.385 0.661,0.579 1.153,0.579 0.504,0 0.894,-0.19 1.168,-0.569 0.272,-0.379 0.407,-0.907 0.407,-1.583 z m -1.132,0.871 c -0.111,0.178 -0.258,0.264 -0.444,0.264 -0.178,0 -0.322,-0.087 -0.432,-0.268 -0.11,-0.18 -0.167,-0.481 -0.167,-0.907 0,-0.421 0.057,-0.721 0.166,-0.901 0.109,-0.18 0.256,-0.267 0.44,-0.267 0.191,0 0.338,0.086 0.444,0.261 0.106,0.176 0.161,0.496 0.161,0.964 0,0.393 -0.057,0.677 -0.168,0.854 z m 10.12,1.21 0,-0.926 -0.943,0 0,-3.298 -0.964,0 0,3.298 -0.942,0 0,0.926 2.849,0 z m -6.448,-1.975 c 0.199,-0.075 0.347,-0.197 0.444,-0.366 0.104,-0.18 0.155,-0.405 0.155,-0.673 0,-0.219 -0.037,-0.417 -0.11,-0.592 -0.073,-0.176 -0.173,-0.316 -0.301,-0.419 -0.081,-0.066 -0.202,-0.112 -0.36,-0.141 -0.208,-0.038 -0.348,-0.058 -0.418,-0.058 l -1.615,0 0,4.224 1.749,0 c 0.295,0 0.522,-0.103 0.681,-0.308 0.157,-0.204 0.235,-0.455 0.235,-0.753 0,-0.251 -0.055,-0.466 -0.168,-0.647 -0.069,-0.11 -0.166,-0.199 -0.292,-0.267 z m -0.851,0.333 c 0.141,0 0.234,0.034 0.285,0.097 0.052,0.065 0.08,0.16 0.08,0.289 0,0.12 -0.028,0.21 -0.08,0.274 -0.051,0.062 -0.142,0.096 -0.279,0.096 l -0.388,0 0,-0.756 0.382,0 z m 0.391,-0.94 c -0.059,0.069 -0.165,0.106 -0.324,0.106 l -0.449,0 0,-0.811 0.451,0 c 0.156,0 0.261,0.039 0.321,0.112 0.062,0.074 0.094,0.176 0.094,0.306 0,0.121 -0.032,0.216 -0.093,0.287 z m -6.019,0.607 c 0.198,-0.075 0.347,-0.197 0.444,-0.366 0.103,-0.18 0.154,-0.405 0.154,-0.673 0,-0.219 -0.036,-0.417 -0.109,-0.592 -0.073,-0.176 -0.173,-0.316 -0.302,-0.419 -0.081,-0.066 -0.202,-0.112 -0.36,-0.141 -0.207,-0.038 -0.348,-0.058 -0.418,-0.058 l -1.615,0 0,4.224 1.75,0 c 0.294,0 0.521,-0.103 0.68,-0.308 0.158,-0.204 0.236,-0.455 0.236,-0.753 0,-0.251 -0.056,-0.466 -0.169,-0.647 -0.068,-0.11 -0.166,-0.199 -0.291,-0.267" />
|
||||||
|
<path d="m 272.839,215.573 -0.002,0.003 c 0.059,0.102 0.218,0.274 0.327,0.38 l 0.001,-0.002 c 0.109,-0.127 0.022,-0.254 0.197,-0.278 0.143,-0.02 0.512,0.174 0.654,0.308 0.13,0.124 0.235,0.176 0.351,0.058 0.079,-0.082 0.072,-0.163 -0.064,-0.236 -0.26,-0.139 -0.629,-0.393 -0.884,-0.421 -0.299,-0.032 -0.462,0.037 -0.58,0.188 z m -1.764,0.548 c 0.288,0.326 0.796,0.756 1.331,0.577 0.279,-0.075 0.499,-0.344 0.499,-0.344 l 0.003,-0.005 c -0.294,-0.237 -0.511,-0.506 -0.646,-0.737 -0.141,-0.24 0.02,-0.428 0.072,-0.483 0.037,-0.038 0.13,-0.102 0.166,-0.129 0.036,-0.027 0.145,-0.136 0.052,-0.286 -0.093,-0.15 -0.406,-0.474 -0.555,-0.608 -0.114,-0.102 -0.292,-0.243 -0.491,-0.37 -10e-4,0.001 -0.289,0.057 -0.11,0.325 0.009,0.014 0.129,0.096 0.234,0.189 0,0 0.109,0.094 0.198,0.184 0.088,0.089 0.161,0.181 0.198,0.254 0.037,0.072 0.127,0.214 -0.034,0.314 -0.161,0.1 -0.208,0.123 -0.233,0.251 -0.029,0.151 0.142,0.353 0.183,0.404 0.041,0.051 0.161,0.19 0.231,0.259 0.071,0.07 0.092,0.088 0.133,0.124 0.054,0.047 0.144,0.171 0.028,0.29 -0.115,0.119 -0.206,0.139 -0.342,0.065 -0.117,-0.063 -0.237,-0.193 -0.303,-0.262 -0.066,-0.069 -0.248,-0.259 -0.519,-0.091 -0.076,0.052 -0.095,0.079 -0.095,0.079" />
|
||||||
|
<path d="m 273.731,216.441 c -0.16,0.14 -0.367,0.277 -0.821,-0.089 -0.294,-0.238 -0.513,-0.508 -0.648,-0.74 -0.142,-0.24 0.02,-0.429 0.072,-0.483 0.037,-0.038 0.129,-0.102 0.166,-0.129 0.036,-0.028 0.145,-0.136 0.052,-0.286 -0.093,-0.15 -0.406,-0.474 -0.556,-0.608 -0.157,-0.141 -0.438,-0.356 -0.723,-0.506 -0.287,-0.15 -0.531,-0.254 -0.826,-0.334 0.308,0.003 0.662,0.123 0.83,0.205 0.009,-0.055 0.061,-0.089 0.118,-0.057 0.045,0.025 0.098,0.075 0.19,0.111 0.094,0.036 0.089,-0.005 0.057,-0.064 -0.032,-0.058 -0.052,-0.081 -0.052,-0.081 0.361,0.134 1.053,0.703 1.443,1.134 0.118,0.152 0.152,0.177 0.089,0.372 -0.091,0.231 -0.232,0.318 -0.296,0.4 -0.047,0.061 -0.055,0.174 0.009,0.288 0.059,0.104 0.225,0.281 0.334,0.388 0.177,0.172 0.297,0.285 0.562,0.479" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.0 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 107 KiB |
|
After Width: | Height: | Size: 8.3 KiB |