country wip
This commit is contained in:
1 parent
7396b40114
commit
97fa1202f0
21 files changed
+757
-3
No files matched your search
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Resources\Countries;
|
||||
|
||||
use App\Filament\Resources\Countries\Pages\ManageCountries;
|
||||
use App\Models\Country;
|
||||
use BackedEnum;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Support\Enums\IconSize;
|
||||
use Filament\Tables\Columns\IconColumn;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Tables\Table;
|
||||
use UnitEnum;
|
||||
|
||||
class CountryResource extends Resource
|
||||
{
|
||||
protected static ?string $model = Country::class;
|
||||
|
||||
// protected static bool $shouldSkipAuthorization = true;
|
||||
|
||||
protected static string|BackedEnum|null $navigationIcon = 'lucide-flag';
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'name';
|
||||
|
||||
protected static ?string $navigationLabel = 'Countries';
|
||||
|
||||
protected static ?string $pluralLabel = 'Countries';
|
||||
|
||||
protected static string|UnitEnum|null $navigationGroup = 'Administration';
|
||||
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
return $schema
|
||||
->components([
|
||||
TextInput::make('name')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
TextInput::make('iso2')
|
||||
->required()
|
||||
->maxLength(2),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->recordTitleAttribute('name')
|
||||
->description('Flags made from iso2 column')
|
||||
->columns([
|
||||
IconColumn::make('iso2')->icon(function ($record): string {
|
||||
return 'flag-country-'.$record->iso2;
|
||||
})->label('Flags')->size(IconSize::TwoExtraLarge),
|
||||
TextColumn::make('name')->searchable(),
|
||||
// TextColumn::make('iso2'),
|
||||
TextColumn::make('iso3'),
|
||||
TextColumn::make('cc'),
|
||||
TextColumn::make('numeric'),
|
||||
TextColumn::make('txid'),
|
||||
|
||||
])
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function getNavigationBadge(): ?string
|
||||
{
|
||||
return parent::getEloquentQuery()->count();
|
||||
}
|
||||
|
||||
public static function getPages(): array
|
||||
{
|
||||
return [
|
||||
'index' => ManageCountries::route('/'),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Resources\Countries\Pages;
|
||||
|
||||
use App\Filament\Resources\Countries\CountryResource;
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Resources\Pages\ManageRecords;
|
||||
|
||||
class ManageCountries extends ManageRecords
|
||||
{
|
||||
protected static string $resource = CountryResource::class;
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
CreateAction::make(),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Country extends Model
|
||||
{
|
||||
protected $table = 'countries';
|
||||
|
||||
protected $primaryKey = 'cc';
|
||||
|
||||
public $incrementing = false;
|
||||
|
||||
public function ligas()
|
||||
{
|
||||
return $this->hasMany(Liga::class, 'cc', 'cc');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Customer extends Model
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\Country;
|
||||
use Illuminate\Auth\Access\HandlesAuthorization;
|
||||
|
||||
class CountryPolicy
|
||||
{
|
||||
use HandlesAuthorization;
|
||||
|
||||
/**
|
||||
* Determine whether the user can view any models.
|
||||
*/
|
||||
public function viewAny(User $user): bool
|
||||
{
|
||||
return $user->can('view_any_countries::country');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can view the model.
|
||||
*/
|
||||
public function view(User $user, Country $country): bool
|
||||
{
|
||||
return $user->can('view_countries::country');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can create models.
|
||||
*/
|
||||
public function create(User $user): bool
|
||||
{
|
||||
return $user->can('create_countries::country');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can update the model.
|
||||
*/
|
||||
public function update(User $user, Country $country): bool
|
||||
{
|
||||
return $user->can('update_countries::country');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can delete the model.
|
||||
*/
|
||||
public function delete(User $user, Country $country): bool
|
||||
{
|
||||
return $user->can('delete_countries::country');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can bulk delete.
|
||||
*/
|
||||
public function deleteAny(User $user): bool
|
||||
{
|
||||
return $user->can('delete_any_countries::country');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can permanently delete.
|
||||
*/
|
||||
public function forceDelete(User $user, Country $country): bool
|
||||
{
|
||||
return $user->can('force_delete_countries::country');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can permanently bulk delete.
|
||||
*/
|
||||
public function forceDeleteAny(User $user): bool
|
||||
{
|
||||
return $user->can('force_delete_any_countries::country');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can restore.
|
||||
*/
|
||||
public function restore(User $user, Country $country): bool
|
||||
{
|
||||
return $user->can('restore_countries::country');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can bulk restore.
|
||||
*/
|
||||
public function restoreAny(User $user): bool
|
||||
{
|
||||
return $user->can('restore_any_countries::country');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can replicate.
|
||||
*/
|
||||
public function replicate(User $user, Country $country): bool
|
||||
{
|
||||
return $user->can('replicate_countries::country');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can reorder.
|
||||
*/
|
||||
public function reorder(User $user): bool
|
||||
{
|
||||
return $user->can('reorder_countries::country');
|
||||
}
|
||||
}
|
||||
@@ -26,6 +26,7 @@ use Illuminate\View\Middleware\ShareErrorsFromSession;
|
||||
use Joaopaulolndev\FilamentEditProfile\FilamentEditProfilePlugin;
|
||||
use Joaopaulolndev\FilamentEditProfile\Pages\EditProfilePage;
|
||||
use Swis\Filament\Backgrounds\FilamentBackgroundsPlugin;
|
||||
use Swis\Filament\Backgrounds\ImageProviders\MyImages;
|
||||
|
||||
class AdminPanelProvider extends PanelProvider
|
||||
{
|
||||
@@ -82,7 +83,8 @@ class AdminPanelProvider extends PanelProvider
|
||||
])->plugins([
|
||||
FilamentEditProfilePlugin::make()->shouldRegisterNavigation(false),
|
||||
LightSwitchPlugin::make()->position(Alignment::BottomCenter),
|
||||
FilamentBackgroundsPlugin::make(),
|
||||
FilamentBackgroundsPlugin::make()
|
||||
->imageProvider(MyImages::make()->directory('images/backgrounds')),
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
namespace App\Utilities;
|
||||
|
||||
class Curl
|
||||
{
|
||||
public static function load($url, $debug = 0)
|
||||
{
|
||||
BetsapiCounter::count($debug);
|
||||
|
||||
if ($debug) {
|
||||
Notice::note($url, 'g');
|
||||
}
|
||||
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
|
||||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_FAILONERROR, true);
|
||||
$data = curl_exec($ch);
|
||||
$curl_errorno = curl_errno($ch);
|
||||
if ($curl_errorno) {
|
||||
Notice::note('curl_errorno: '.self::curlerrorcode($curl_errorno));
|
||||
}
|
||||
curl_close($ch);
|
||||
|
||||
return json_decode($data, true);
|
||||
}
|
||||
|
||||
public static function curlerrorcode($id)
|
||||
{
|
||||
$error_codes = [
|
||||
1 => 'CURLE_UNSUPPORTED_PROTOCOL',
|
||||
2 => 'CURLE_FAILED_INIT',
|
||||
3 => 'CURLE_URL_MALFORMAT',
|
||||
4 => 'CURLE_URL_MALFORMAT_USER',
|
||||
5 => 'CURLE_COULDNT_RESOLVE_PROXY',
|
||||
6 => 'CURLE_COULDNT_RESOLVE_HOST',
|
||||
7 => 'CURLE_COULDNT_CONNECT',
|
||||
8 => 'CURLE_FTP_WEIRD_SERVER_REPLY',
|
||||
9 => 'CURLE_REMOTE_ACCESS_DENIED',
|
||||
11 => 'CURLE_FTP_WEIRD_PASS_REPLY',
|
||||
13 => 'CURLE_FTP_WEIRD_PASV_REPLY',
|
||||
14 => 'CURLE_FTP_WEIRD_227_FORMAT',
|
||||
15 => 'CURLE_FTP_CANT_GET_HOST',
|
||||
17 => 'CURLE_FTP_COULDNT_SET_TYPE',
|
||||
18 => 'CURLE_PARTIAL_FILE',
|
||||
19 => 'CURLE_FTP_COULDNT_RETR_FILE',
|
||||
21 => 'CURLE_QUOTE_ERROR',
|
||||
22 => 'CURLE_HTTP_RETURNED_ERROR',
|
||||
23 => 'CURLE_WRITE_ERROR',
|
||||
25 => 'CURLE_UPLOAD_FAILED',
|
||||
26 => 'CURLE_READ_ERROR',
|
||||
27 => 'CURLE_OUT_OF_MEMORY',
|
||||
28 => 'CURLE_OPERATION_TIMEDOUT',
|
||||
30 => 'CURLE_FTP_PORT_FAILED',
|
||||
31 => 'CURLE_FTP_COULDNT_USE_REST',
|
||||
33 => 'CURLE_RANGE_ERROR',
|
||||
34 => 'CURLE_HTTP_POST_ERROR',
|
||||
35 => 'CURLE_SSL_CONNECT_ERROR',
|
||||
36 => 'CURLE_BAD_DOWNLOAD_RESUME',
|
||||
37 => 'CURLE_FILE_COULDNT_READ_FILE',
|
||||
38 => 'CURLE_LDAP_CANNOT_BIND',
|
||||
39 => 'CURLE_LDAP_SEARCH_FAILED',
|
||||
41 => 'CURLE_FUNCTION_NOT_FOUND',
|
||||
42 => 'CURLE_ABORTED_BY_CALLBACK',
|
||||
43 => 'CURLE_BAD_FUNCTION_ARGUMENT',
|
||||
45 => 'CURLE_INTERFACE_FAILED',
|
||||
47 => 'CURLE_TOO_MANY_REDIRECTS',
|
||||
48 => 'CURLE_UNKNOWN_TELNET_OPTION',
|
||||
49 => 'CURLE_TELNET_OPTION_SYNTAX',
|
||||
51 => 'CURLE_PEER_FAILED_VERIFICATION',
|
||||
52 => 'CURLE_GOT_NOTHING',
|
||||
53 => 'CURLE_SSL_ENGINE_NOTFOUND',
|
||||
54 => 'CURLE_SSL_ENGINE_SETFAILED',
|
||||
55 => 'CURLE_SEND_ERROR',
|
||||
56 => 'CURLE_RECV_ERROR',
|
||||
58 => 'CURLE_SSL_CERTPROBLEM',
|
||||
59 => 'CURLE_SSL_CIPHER',
|
||||
60 => 'CURLE_SSL_CACERT',
|
||||
61 => 'CURLE_BAD_CONTENT_ENCODING',
|
||||
62 => 'CURLE_LDAP_INVALID_URL',
|
||||
63 => 'CURLE_FILESIZE_EXCEEDED',
|
||||
64 => 'CURLE_USE_SSL_FAILED',
|
||||
65 => 'CURLE_SEND_FAIL_REWIND',
|
||||
66 => 'CURLE_SSL_ENGINE_INITFAILED',
|
||||
67 => 'CURLE_LOGIN_DENIED',
|
||||
68 => 'CURLE_TFTP_NOTFOUND',
|
||||
69 => 'CURLE_TFTP_PERM',
|
||||
70 => 'CURLE_REMOTE_DISK_FULL',
|
||||
71 => 'CURLE_TFTP_ILLEGAL',
|
||||
72 => 'CURLE_TFTP_UNKNOWNID',
|
||||
73 => 'CURLE_REMOTE_FILE_EXISTS',
|
||||
74 => 'CURLE_TFTP_NOSUCHUSER',
|
||||
75 => 'CURLE_CONV_FAILED',
|
||||
76 => 'CURLE_CONV_REQD',
|
||||
77 => 'CURLE_SSL_CACERT_BADFILE',
|
||||
78 => 'CURLE_REMOTE_FILE_NOT_FOUND',
|
||||
79 => 'CURLE_SSH',
|
||||
80 => 'CURLE_SSL_SHUTDOWN_FAILED',
|
||||
81 => 'CURLE_AGAIN',
|
||||
82 => 'CURLE_SSL_CRL_BADFILE',
|
||||
83 => 'CURLE_SSL_ISSUER_ERROR',
|
||||
84 => 'CURLE_FTP_PRET_FAILED',
|
||||
84 => 'CURLE_FTP_PRET_FAILED',
|
||||
85 => 'CURLE_RTSP_CSEQ_ERROR',
|
||||
86 => 'CURLE_RTSP_SESSION_ERROR',
|
||||
87 => 'CURLE_FTP_BAD_FILE_LIST',
|
||||
88 => 'CURLE_CHUNK_FAILED',
|
||||
89 => 'CURLE_NO_CONNECTION_AVAILABLE',
|
||||
90 => 'CURLE_SSL_PINNEDPUBKEYNOTMATCH',
|
||||
91 => 'CURLE_SSL_INVALIDCERTSTATUS',
|
||||
92 => 'CURLE_HTTP2_STREAM',
|
||||
];
|
||||
|
||||
return $error_codes[$id];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Utilities;
|
||||
|
||||
use Exception;
|
||||
use Illuminate\Http\Client\PendingRequest;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
|
||||
class Guzzle
|
||||
{
|
||||
public static function load($url, $debug = 0)
|
||||
{
|
||||
BetsapiCounter::count($debug);
|
||||
|
||||
if ($debug) {
|
||||
Notice::note($url, 'g');
|
||||
}
|
||||
|
||||
$data = Http::retry(3, 2, function (Exception $exception, PendingRequest $request) {
|
||||
return $exception instanceof ConnectionException;
|
||||
})->get($url);
|
||||
|
||||
return json_decode($data, true);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace App\Utilities;
|
||||
|
||||
class Html
|
||||
{
|
||||
public static function table_header_90($_row)
|
||||
{
|
||||
$html = '<thead><tr text-rotate="90deg">';
|
||||
$mm = 190 / \count($_row);
|
||||
foreach ($_row as $value) {
|
||||
$html .= '<td class="head right bl bt br bb" style="background-color:#d1d1d1; width: '.$mm.'mm;">'.$value.'</td>';
|
||||
}
|
||||
$html .= '</tr></thead>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
public static function make_table($str)
|
||||
{
|
||||
$array = explode('<br />', $str);
|
||||
$html = '<table class="table-striped bt bl">';
|
||||
foreach ($array as $value) {
|
||||
$tmp = explode('|', $value);
|
||||
$html .= '<tr>';
|
||||
$html .= self::td($tmp[0], 'br bb');
|
||||
$html .= self::td($tmp[1], 'br bb');
|
||||
$html .= '</tr>';
|
||||
}
|
||||
$html .= '</table>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
public static function td($value = '', $classname = '', $colspan = 0)
|
||||
{
|
||||
$cls = $classname != '' ? ' class="'.$classname.'"' : '';
|
||||
$spn = $colspan != '' ? ' colspan="'.$colspan.'"' : '';
|
||||
|
||||
return "<td $cls $spn>".$value.'</td>';
|
||||
}
|
||||
|
||||
public static function tag($tag = 'div', $value = '', $class = '', $style = '')
|
||||
{
|
||||
$str1 = $class != '' ? ' class="'.$class.'"' : '';
|
||||
$str2 = $style != '' ? ' style="'.$style.'"' : '';
|
||||
|
||||
return "<$tag $str1 $str2>".$value."</$tag>";
|
||||
}
|
||||
|
||||
public static function end($value = 'div')
|
||||
{
|
||||
return "</$value>";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Utilities;
|
||||
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class Lastcall
|
||||
{
|
||||
public static function load($file)
|
||||
{
|
||||
$lastcall = (int) Storage::disk('local')->get($file);
|
||||
|
||||
if ($lastcall < time() - 30) {
|
||||
$lastcall = time() - 30;
|
||||
}
|
||||
|
||||
Storage::disk('local')->put($file, time());
|
||||
|
||||
return trim($lastcall);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
namespace App\Utilities;
|
||||
|
||||
class Notice
|
||||
{
|
||||
// note
|
||||
|
||||
public static function note($message, $color = '', $exit = false)
|
||||
{
|
||||
switch ($color) {
|
||||
case 'g':
|
||||
// green
|
||||
echo "\e[0;32m";
|
||||
break;
|
||||
case 'gb':
|
||||
case 'bg':
|
||||
// bold green
|
||||
echo "\e[1;32m";
|
||||
break;
|
||||
case 'r':
|
||||
// red
|
||||
echo "\e[0;31m";
|
||||
break;
|
||||
case 'br':
|
||||
case 'rb':
|
||||
// bold red
|
||||
echo "\e[1;31m";
|
||||
break;
|
||||
case 'b':
|
||||
// blue
|
||||
echo "\e[0;34m";
|
||||
break;
|
||||
case 'bb':
|
||||
// bold blue
|
||||
echo "\e[1;34m";
|
||||
break;
|
||||
case 'y':
|
||||
// yellow
|
||||
echo "\e[0;33m";
|
||||
break;
|
||||
case 'p':
|
||||
// purple
|
||||
echo "\e[0;35m";
|
||||
break;
|
||||
case 'c':
|
||||
// cyan
|
||||
echo "\e[0;36m";
|
||||
break;
|
||||
case 'bi':
|
||||
// blue intence
|
||||
echo "\e[38;5;33m\n";
|
||||
break;
|
||||
default:
|
||||
echo "\e[0;39m";
|
||||
break;
|
||||
}
|
||||
|
||||
echo PHP_EOL.'-----------------------------------------------------------'.PHP_EOL;
|
||||
if (is_array($message)) {
|
||||
print_r($message);
|
||||
} else {
|
||||
echo $message.PHP_EOL;
|
||||
}
|
||||
echo '-----------------------------------------------------------'.PHP_EOL;
|
||||
echo "\e[0;39m";
|
||||
if ($exit) {
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
public static function html($message, $color = '', $exit = false)
|
||||
{
|
||||
switch ($color) {
|
||||
case 'g':
|
||||
echo '<div style="margin:10px; padding:3px; color:green; width=20rem; text-align:center; border:solid 1px green; background-color:lightgreen;">';
|
||||
break;
|
||||
case 'r':
|
||||
echo '<div style="margin:10px; padding:3px; color:red; width=20rem; text-align:center; border:solid 1px red; background-color:#fdd;">';
|
||||
break;
|
||||
case 'b':
|
||||
echo '<div style="margin:10px; padding:3px; color:blue; width=20rem; text-align:center; border:solid 1px blue; background-color:lightblue;">';
|
||||
break;
|
||||
default:
|
||||
echo '<div style="margin:10px; padding:3px; color:black; width=20rem; text-align:center; border:solid 1px black; background-color:#eee;">';
|
||||
break;
|
||||
}
|
||||
if (is_array($message)) {
|
||||
print_r($message);
|
||||
} else {
|
||||
echo $message;
|
||||
}
|
||||
echo '</div>';
|
||||
if ($exit) {
|
||||
exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Utilities;
|
||||
|
||||
use App\Models\Comparatore;
|
||||
use App\Models\EventCustomer;
|
||||
|
||||
class NuhHash
|
||||
{
|
||||
public static function md5($data)
|
||||
{
|
||||
if (is_array($data)) {
|
||||
$data = serialize($data);
|
||||
}
|
||||
|
||||
return hash('md5', $data, false);
|
||||
}
|
||||
|
||||
public static function comparatore_all($options)
|
||||
{
|
||||
$res = Comparatore::select('event_id', 'hash', 'updated_at')->where('sport_id', $options['sport_id'])->where('customer_id', $options['customer_id'])->get();
|
||||
$_hash = [];
|
||||
foreach ($res as $value) {
|
||||
$event_id = $value['event_id'];
|
||||
$_hash[$event_id] = ['hash' => $value['hash'], 'timestamp' => strtotime($value['updated_at'])];
|
||||
}
|
||||
|
||||
return $_hash;
|
||||
}
|
||||
|
||||
public static function load_event($options)
|
||||
{
|
||||
$res = EventCustomer::select('calculation_hash')->where('event_id', $options['event_id'])->where('customer_id', $options['customer_id'])->first();
|
||||
if ($res) {
|
||||
return $res->calculation_hash;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace App\Utilities;
|
||||
|
||||
use App\Models\Supervisor;
|
||||
|
||||
class Supervisorctl
|
||||
{
|
||||
public static $starttime = 0;
|
||||
|
||||
public static $code = '';
|
||||
|
||||
public static $events = 0;
|
||||
|
||||
public static function start(&$options)
|
||||
{
|
||||
$debug = $options['d'] ?? 0;
|
||||
|
||||
// sleep 1 sec to avoid error in supervisor
|
||||
sleep(1);
|
||||
|
||||
self::$starttime = microtime(true);
|
||||
|
||||
self::$code = $options['code'];
|
||||
|
||||
$supervisor = Supervisor::where('code', self::$code)->get()->first();
|
||||
|
||||
// if process can be called only from bash
|
||||
if ($supervisor) {
|
||||
$options['sport_id'] = $supervisor->sport_id;
|
||||
$options['customer_id'] = $supervisor->customer_id;
|
||||
$options['limit'] = $supervisor->limit;
|
||||
|
||||
if ($debug) {
|
||||
Notice::note('supervisor start '.self::$code, 'g');
|
||||
}
|
||||
|
||||
if ($supervisor->sleep > 0) {
|
||||
if (! $debug) {
|
||||
sleep($supervisor->sleep);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Notice::note('unknown supervisor: '.$options['code'], 'r', 1);
|
||||
}
|
||||
}
|
||||
|
||||
public static function end($options)
|
||||
{
|
||||
$processend = microtime(true);
|
||||
$runtime = round(($processend - self::$starttime) / 60, 3);
|
||||
Supervisor::where('code', self::$code)->update(['runtime' => $runtime, 'events' => self::$events]);
|
||||
if ($options['d']) {
|
||||
Notice::note('spervisor time: '.$runtime.' min', 'g');
|
||||
}
|
||||
}
|
||||
}
|
||||
+5
-1
@@ -3,7 +3,10 @@
|
||||
"name": "laravel/laravel",
|
||||
"type": "project",
|
||||
"description": "The skeleton application for the Laravel framework.",
|
||||
"keywords": ["laravel", "framework"],
|
||||
"keywords": [
|
||||
"laravel",
|
||||
"framework"
|
||||
],
|
||||
"license": "MIT",
|
||||
"require": {
|
||||
"php": "^8.2",
|
||||
@@ -14,6 +17,7 @@
|
||||
"joaopaulolndev/filament-edit-profile": "^2.0",
|
||||
"laravel/framework": "^12.0",
|
||||
"laravel/tinker": "^2.10.1",
|
||||
"outhebox/blade-flags": "^1.5",
|
||||
"swisnl/filament-backgrounds": "^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
|
||||
Generated
+69
-1
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "f578fc908c365c7a948798b1f927c90c",
|
||||
"content-hash": "bf7c6af5121fc67fc2955b0a58026eae",
|
||||
"packages": [
|
||||
{
|
||||
"name": "anourvalar/eloquent-serialize",
|
||||
@@ -4526,6 +4526,74 @@
|
||||
],
|
||||
"time": "2025-07-07T06:15:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "outhebox/blade-flags",
|
||||
"version": "1.5.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/MohmmedAshraf/blade-flags.git",
|
||||
"reference": "84d37c6c44e5509412c894a90ecdad737b96488f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/MohmmedAshraf/blade-flags/zipball/84d37c6c44e5509412c894a90ecdad737b96488f",
|
||||
"reference": "84d37c6c44e5509412c894a90ecdad737b96488f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"blade-ui-kit/blade-icons": "^1.1",
|
||||
"illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0",
|
||||
"php": "^7.4|^8.0|^8.1|^8.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"orchestra/testbench": "^6.0|^7.0|^8.0|^9.0|^10.0",
|
||||
"phpunit/phpunit": "^9.0|^10.5|^11.5.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"OutheBox\\BladeFlags\\BladeFlagsServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"OutheBox\\BladeFlags\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Mohamed Ashraf",
|
||||
"email": "cupo.ashraf@gmail.com",
|
||||
"homepage": "https://github.com/MohmmedAshraf"
|
||||
}
|
||||
],
|
||||
"description": "A package to easily make use of country & language flags in your Laravel Blade views.",
|
||||
"homepage": "https://github.com/MohmmedAshraf/blade-flags",
|
||||
"keywords": [
|
||||
"blade",
|
||||
"country flags",
|
||||
"flags",
|
||||
"language flags",
|
||||
"laravel"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/MohmmedAshraf/blade-flags/issues",
|
||||
"source": "https://github.com/MohmmedAshraf/blade-flags/tree/1.5.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/MohmmedAshraf",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2025-02-24T15:04:52+00:00"
|
||||
},
|
||||
{
|
||||
"name": "paragonie/constant_time_encoding",
|
||||
"version": "v3.0.0",
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<?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('customers', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('customers');
|
||||
}
|
||||
};
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 112 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 67 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 241 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 206 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 72 KiB |
Reference in new issue
Block a user