add types

This commit is contained in:
2024-05-06 17:13:38 +05:00
parent 88b934bda1
commit e5907fe3a9
46 changed files with 465 additions and 184 deletions

View File

@@ -48,6 +48,8 @@ class EventType
/**
* Laravel's default events
*
* @return array<string, string>
*/
public static function laravelDefaultEvents(): array
{
@@ -60,6 +62,8 @@ class EventType
/**
* Laravel nova events
*
* @return array<int, string>
*/
public static function laravelNovaEvents(): array
{

View File

@@ -11,7 +11,7 @@ use Stevebauman\Location\Facades\Location;
/**
* Check if a client IP is in our Server subnet
*
* @param string $server_ip
* @param string $ip
*/
function isLocalIp(string $ip = ''): bool
{
@@ -39,13 +39,13 @@ function isTurkmenIp(string $ip = ''): bool
*/
function unMaskPhone(string|int $phone): string
{
return substr(str_replace(['+', '(', ')', '-', '_'], '', $phone), 3);
return substr(str_replace(['+', '(', ')', '-', '_'], '', strval($phone)), 3);
}
/**
* Send a sms
*
* @return void
* @return mixed|void
*/
function sendSMS(string|int $phone, string|int $message)
{

View File

@@ -8,6 +8,7 @@ use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\View\View;
use Laravel\Nova\Nova;
class LoginController extends Controller
@@ -37,8 +38,6 @@ class LoginController extends Controller
/**
* Show the application's login form.
*
* @return \Inertia\Response|\Symfony\Component\HttpFoundation\Response
*/
public function showLoginForm()
{
@@ -81,9 +80,9 @@ class LoginController extends Controller
*
* @return string
*/
public function redirectPath()
public function redirectPath(): string
{
return Nova::url(Nova::$initialPath);
return Nova::url(is_callable(Nova::$initialPath) ? call_user_func(Nova::$initialPath) : Nova::$initialPath);
}
/**

View File

@@ -2,12 +2,14 @@
namespace App\Http\Controllers;
use Illuminate\Http\RedirectResponse;
class LocaleController extends Controller
{
/**
* @return RedirectResponse
*/
public function __invoke($locale)
public function __invoke(string $locale): RedirectResponse
{
if (array_key_exists($locale, config('app.locales'))) {
session()->put('locale', $locale);

View File

@@ -5,6 +5,7 @@ namespace App\Models\Branch;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Spatie\Translatable\HasTranslations;
class Branch extends Model

View File

@@ -127,6 +127,7 @@ class CardOrder extends Model
{
return match ($type) {
'index' => sprintf('%s/resources/card-orders', config('nova.path')),
default => config('nova.path'),
};
}
}

View File

@@ -65,7 +65,7 @@ class LoanOrder extends Model
/**
* The attributes that should be cast.
*
* @var array
* @var array<string, string>
*/
protected $casts = [
'born_at' => 'date',

View File

@@ -30,7 +30,7 @@ class ApiKeyHalkbank extends Model
/**
* Generate unique order number
*/
public static function generateOrderNumber($resource): int
public static function generateOrderNumber(mixed $resource): int
{
$order_number = static::firstOrCreate([
'billing_username' => $resource->billing_username ?? 'asdasd',
@@ -38,9 +38,9 @@ class ApiKeyHalkbank extends Model
], ['order_number' => '01122017270']);
$order_number->update([
'order_number' => $order_number->order_number + 1,
'order_number' => intval($order_number->order_number) + 1,
]);
return $order_number->order_number;
return (int) $order_number->order_number;
}
}

View File

@@ -146,6 +146,14 @@ class User extends Authenticatable
return $this->id === $loanOrder->user_id;
}
/**
* Check if user owns loan order.
*/
public function ownsCardOrder(CardOrder $cardOrder): bool
{
return $this->id === $cardOrder->user_id;
}
/**
* Check if phone is verified
*/

View File

@@ -2,9 +2,11 @@
namespace App\Nova;
use DragonCode\Contracts\Cashier\Config\Payments\Map;
use Illuminate\Http\Request;
use Laravel\Nova\Http\Requests\NovaRequest;
use Laravel\Nova\Resource as NovaResource;
use Illuminate\Database\Eloquent\Builder;
abstract class Resource extends NovaResource
{
@@ -36,18 +38,15 @@ abstract class Resource extends NovaResource
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public static function indexQuery(NovaRequest $request, $query)
public static function indexQuery(NovaRequest $request, mixed $query): Builder
{
return $query;
}
/**
* Build a Scout search query for the given resource.
*
* @param \Laravel\Scout\Builder $query
* @return \Laravel\Scout\Builder
*/
public static function scoutQuery(NovaRequest $request, $query)
public static function scoutQuery(NovaRequest $request, mixed $query) // @phpstan-ignore-line
{
return $query;
}

View File

@@ -21,6 +21,7 @@ use App\Repos\System\Settings\Legal\PassportRepo;
use App\Repos\System\Settings\Location\RegionRepo;
use App\Rules\DowranAgaAllowed;
use App\Rules\OnlyLetters;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
@@ -112,7 +113,7 @@ class CardOrder extends Resource
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public static function indexQuery(NovaRequest $request, $query)
public static function indexQuery(NovaRequest $request, mixed $query): Builder
{
$user = $request->user();
@@ -130,8 +131,8 @@ class CardOrder extends Resource
/**
* After resource created
*
* @param Laravel\Nova\Http\Requests\NovaRequest $request
* @param Illuminate\Database\Eloquent\Model $model
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @param \Illuminate\Database\Eloquent\Model $model
*/
public static function afterCreate(NovaRequest $request, Model $model): void
{
@@ -372,7 +373,7 @@ class CardOrder extends Resource
{
return [
RegionFilter::make()
->canSee(fn () => Gate::allows('isAdmin'), auth()->user()),
->canSee(fn () => Gate::allows('isAdmin', auth()->user())),
new StatusFilter(),
];

View File

@@ -6,6 +6,7 @@ use App\Models\Branch\Branch;
use App\Models\Order\Card\CardPin\CardPin as CardPinModel;
use App\Nova\Filters\RegionFilter;
use App\Nova\Filters\StatusFilter;
use Illuminate\Database\Eloquent\Builder;
use App\Nova\Nova;
use App\Nova\Resource;
use App\Nova\Resources\Order\Card\Requisite\Concerns\CardRequisiteFieldsForDetail;
@@ -55,7 +56,7 @@ class CardPin extends Resource
/**
* The columns that should be searched.
*
* @var array
* @var array<int, string>
*/
public static $search = [
'unique_id', 'customer_name', 'customer_surname', 'phone',
@@ -124,7 +125,7 @@ class CardPin extends Resource
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public static function indexQuery(NovaRequest $request, $query)
public static function indexQuery(NovaRequest $request, mixed $query): Builder
{
$user = $request->user();
@@ -142,8 +143,8 @@ class CardPin extends Resource
/**
* After resource created
*
* @param Laravel\Nova\Http\Requests\NovaRequest $request
* @param Illuminate\Database\Eloquent\Model $model
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @param \Illuminate\Database\Eloquent\Model $model
*/
public static function afterCreate(NovaRequest $request, Model $model): void
{
@@ -310,7 +311,7 @@ class CardPin extends Resource
{
return [
RegionFilter::make()
->canSee(fn () => Gate::allows('isAdmin'), auth()->user()),
->canSee(fn () => Gate::allows('isAdmin', auth()->user())),
new StatusFilter(),
];

View File

@@ -17,6 +17,7 @@ use App\Repos\System\Nova\NovaRepo;
use App\Repos\System\Settings\Legal\PassportRepo;
use App\Repos\System\Settings\Location\RegionRepo;
use App\Rules\OnlyLetters;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
@@ -106,7 +107,7 @@ class CardRequisite extends Resource
/**
* Get the text for the create resource button.
*
* @return string|null
* @return string
*/
public static function createButtonLabel(): string
{
@@ -116,7 +117,7 @@ class CardRequisite extends Resource
/**
* Get the text for the update resource button.
*
* @return string|null
* @return string
*/
public static function updateButtonLabel(): string
{
@@ -129,7 +130,7 @@ class CardRequisite extends Resource
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public static function indexQuery(NovaRequest $request, $query)
public static function indexQuery(NovaRequest $request, mixed $query): Builder
{
$user = $request->user();
@@ -147,8 +148,8 @@ class CardRequisite extends Resource
/**
* After resource created
*
* @param Laravel\Nova\Http\Requests\NovaRequest $request
* @param Illuminate\Database\Eloquent\Model $model
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @param \Illuminate\Database\Eloquent\Model $model
*/
public static function afterCreate(NovaRequest $request, Model $model): void
{
@@ -322,7 +323,7 @@ class CardRequisite extends Resource
{
return [
RegionFilter::make()
->canSee(fn () => Gate::allows('isAdmin'), auth()->user()),
->canSee(fn () => Gate::allows('isAdmin', auth()->user())),
new StatusFilter(),
];

View File

@@ -25,8 +25,11 @@ class CardRequisiteFieldsForDetail
{
/**
* Fields for index
*
* @param mixed $resource
* @return array<int, object>
*/
public static function make($resource): array
public static function make(mixed $resource): array
{
return [
ID::make()->hide(),

View File

@@ -19,6 +19,7 @@ use App\Repos\System\Settings\Legal\PassportRepo;
use App\Repos\System\Settings\Location\RegionRepo;
use App\Rules\DowranAgaAllowed;
use App\Rules\OnlyLetters;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
@@ -109,7 +110,7 @@ class LoanOrder extends Resource
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public static function indexQuery(NovaRequest $request, $query)
public static function indexQuery(NovaRequest $request, mixed $query): Builder
{
$user = $request->user();
@@ -376,7 +377,7 @@ class LoanOrder extends Resource
{
return [
RegionFilter::make()
->canSee(fn () => Gate::allows('isAdmin'), auth()->user()),
->canSee(fn () => Gate::allows('isAdmin', auth()->user())),
new StatusFilter(),
];

View File

@@ -23,10 +23,9 @@ class LoanPaidOffLetterOrderFieldsForDetail
/**
* Loan paidoff letter detail fields
*
* @param $resource
* @param $request
* @param mixed $resource
*/
public static function make(): array
public static function make(mixed $resource): array
{
return [
ID::make()->hide(),

View File

@@ -15,6 +15,7 @@ use App\Repos\System\Nova\NovaRepo;
use App\Repos\System\Settings\Legal\PassportRepo;
use App\Repos\System\Settings\Location\RegionRepo;
use App\Rules\OnlyLetters;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Gate;
use Laravel\Nova\Fields\Date;
@@ -100,7 +101,7 @@ class LoanPaidOffLetterOrder extends Resource
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public static function indexQuery(NovaRequest $request, $query)
public static function indexQuery(NovaRequest $request, mixed $query): Builder
{
$user = $request->user();
@@ -118,8 +119,8 @@ class LoanPaidOffLetterOrder extends Resource
/**
* After resource created
*
* @param Laravel\Nova\Http\Requests\NovaRequest $request
* @param Illuminate\Database\Eloquent\Model $model
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @param \Illuminate\Database\Eloquent\Model $model
*/
public static function afterCreate(NovaRequest $request, Model $model): void
{
@@ -261,7 +262,7 @@ class LoanPaidOffLetterOrder extends Resource
{
return [
RegionFilter::make()
->canSee(fn () => Gate::allows('isAdmin'), auth()->user()),
->canSee(fn () => Gate::allows('isAdmin', auth()->user())),
new StatusFilter(),
];

View File

@@ -25,7 +25,6 @@ class LoanOrderPerStatus extends Partition
return $this->count($request, LoanOrder::class, 'status')
->colors(OrderRepo::statusColors())
->label(fn ($value) => match ($value) {
null => __('None'),
default => OrderRepo::statusFormatted($value)
});
}

View File

@@ -29,7 +29,7 @@ class LocaleManagerResource extends Resource
/**
* The columns that should be searched.
*
* @var array
* @var array<int, string>
*/
public static $search = [
'name',
@@ -37,6 +37,8 @@ class LocaleManagerResource extends Resource
/**
* Get the fields displayed by the resource.
*
* @return array<int, \Laravel\Nova\Fields\Field>
*/
public function fields(NovaRequest $request): array
{
@@ -50,7 +52,7 @@ class LocaleManagerResource extends Resource
/**
* Get the cards available for the request.
*
* @return array
* @return array<int, string>
*/
public function cards(NovaRequest $request)
{
@@ -60,7 +62,7 @@ class LocaleManagerResource extends Resource
/**
* Get the filters available for the resource.
*
* @return array
* @return array<int, string>
*/
public function filters(NovaRequest $request)
{
@@ -70,7 +72,7 @@ class LocaleManagerResource extends Resource
/**
* Get the lenses available for the resource.
*
* @return array
* @return array<int, string>
*/
public function lenses(NovaRequest $request)
{
@@ -79,6 +81,8 @@ class LocaleManagerResource extends Resource
/**
* Get the actions available for the resource.
*
* @return array
*/
public function actions(NovaRequest $request): array
{

View File

@@ -33,7 +33,7 @@ class Province extends Resource
/**
* The columns that should be searched.
*
* @var array
* @var array<int, string>
*/
public static $search = [
'name',
@@ -57,6 +57,8 @@ class Province extends Resource
/**
* Get the fields displayed by the resource.
*
* @return array<int, string>
*/
public function fields(NovaRequest $request): array
{
@@ -82,6 +84,8 @@ class Province extends Resource
/**
* Get the cards available for the request.
*
* @return array<int, string>
*/
public function cards(NovaRequest $request): array
{
@@ -90,6 +94,8 @@ class Province extends Resource
/**
* Get the filters available for the resource.
*
* @return array<int, \Laravel\Nova\Filters\Filter>
*/
public function filters(NovaRequest $request): array
{
@@ -101,6 +107,8 @@ class Province extends Resource
/**
* Get the lenses available for the resource.
*
* @return array<int, string>
*/
public function lenses(NovaRequest $request): array
{
@@ -109,6 +117,8 @@ class Province extends Resource
/**
* Get the actions available for the resource.
*
* @return array<int, string>
*/
public function actions(NovaRequest $request): array
{

View File

@@ -28,7 +28,7 @@ class Permission extends Resource
/**
* The columns that should be searched.
*
* @var array
* @var array<int, string>
*/
public static $search = [
'id', 'name',
@@ -52,6 +52,8 @@ class Permission extends Resource
/**
* Get the fields displayed by the resource.
*
* @return array<int, string>
*/
public function fields(NovaRequest $request): array
{
@@ -73,6 +75,8 @@ class Permission extends Resource
/**
* Get the cards available for the request.
*
* @return array<int, string>
*/
public function cards(NovaRequest $request): array
{
@@ -81,6 +85,8 @@ class Permission extends Resource
/**
* Get the filters available for the resource.
*
* @return array<int, string>
*/
public function filters(NovaRequest $request): array
{
@@ -89,6 +95,8 @@ class Permission extends Resource
/**
* Get the lenses available for the resource.
*
* @return array<int, string>
*/
public function lenses(NovaRequest $request): array
{
@@ -97,6 +105,8 @@ class Permission extends Resource
/**
* Get the actions available for the resource.
*
* @return array<int, string>
*/
public function actions(NovaRequest $request): array
{

View File

@@ -5,6 +5,7 @@ namespace App\Nova\Resources\System\Roles;
use App\Models\System\Roles\Role as RoleModel;
use App\Nova\Resource;
use App\Repos\System\Nova\NovaRepo;
use Illuminate\Database\Eloquent\Builder;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\Text;
use Laravel\Nova\Http\Requests\NovaRequest;
@@ -28,7 +29,7 @@ class Role extends Resource
/**
* The columns that should be searched.
*
* @var array
* @var array<int, string>
*/
public static $search = [
'id', 'name',
@@ -53,10 +54,10 @@ class Role extends Resource
/**
* Build an "index" query for the given resource.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
* @param \Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model> $query
* @return \Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>
*/
public static function indexQuery(NovaRequest $request, $query)
public static function indexQuery(NovaRequest $request, mixed $query): Builder
{
$query->where('name', '!=', 'king');
@@ -65,6 +66,8 @@ class Role extends Resource
/**
* Get the fields displayed by the resource.
*
* @return array<int, string>
*/
public function fields(NovaRequest $request): array
{
@@ -86,6 +89,8 @@ class Role extends Resource
/**
* Get the cards available for the request.
*
* @return array<int, string>
*/
public function cards(NovaRequest $request): array
{
@@ -94,6 +99,8 @@ class Role extends Resource
/**
* Get the filters available for the resource.
*
* @return array<int, string>
*/
public function filters(NovaRequest $request): array
{
@@ -102,6 +109,8 @@ class Role extends Resource
/**
* Get the lenses available for the resource.
*
* @return array<int, string>
*/
public function lenses(NovaRequest $request): array
{
@@ -110,6 +119,8 @@ class Role extends Resource
/**
* Get the actions available for the resource.
*
* @return array<int, string>
*/
public function actions(NovaRequest $request): array
{

View File

@@ -1,93 +0,0 @@
<?php
namespace App\Nova\Resources;
use App\Nova\Resource;
use Illuminate\Http\Request;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Http\Requests\NovaRequest;
use Nurmuhammet\NovaInputmask\NovaInputmask;
class Test extends Resource
{
/**
* The model the resource corresponds to.
*
* @var class-string<\App\Models\Test>
*/
public static $model = \App\Models\Test::class;
/**
* The single value that should be used to represent the resource when being displayed.
*
* @var string
*/
public static $title = 'id';
/**
* The columns that should be searched.
*
* @var array
*/
public static $search = [
'phone',
];
/**
* Get the fields displayed by the resource.
*
* @return array
*/
public function fields(NovaRequest $request)
{
return [
ID::make()->sortable(),
NovaInputmask::make(__('Phone'), 'phone')
->mask('+(\\9\\93)-99-99-99-99')
->storeRawValue()
->size('w-1/4')
->rules('required', 'integer', 'between:61000000,65999999'),
];
}
/**
* Get the cards available for the request.
*
* @return array
*/
public function cards(NovaRequest $request)
{
return [];
}
/**
* Get the filters available for the resource.
*
* @return array
*/
public function filters(NovaRequest $request)
{
return [];
}
/**
* Get the lenses available for the resource.
*
* @return array
*/
public function lenses(NovaRequest $request)
{
return [];
}
/**
* Get the actions available for the resource.
*
* @return array
*/
public function actions(NovaRequest $request)
{
return [];
}
}

View File

@@ -7,6 +7,7 @@ use App\Nova\Resources\Order\Card\CardOrder;
use App\Nova\Resources\Order\Loan\LoanOrder;
use App\Nova\Resources\System\Roles\Permission;
use App\Nova\Resources\System\Roles\Role;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request;
use Illuminate\Validation\Rules;
use Laravel\Nova\Fields\BelongsToMany;
@@ -38,7 +39,7 @@ class User extends Resource
/**
* The columns that should be searched.
*
* @var array
* @var array<int, string>
*/
public static $search = [
'id', 'name', 'email',
@@ -47,14 +48,11 @@ class User extends Resource
/**
* Build an "index" query for the given resource.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
* @param \Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model> $query
* @return \Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>
*/
public static function indexQuery(NovaRequest $request, $query)
public static function indexQuery(NovaRequest $request, mixed $query): Builder
{
// $query->where('email', '!=', 'nurmuhammet@mail.com')
// ->where('email', '!=', 'mahmyt1206@gmail.com');
return $query;
}
@@ -76,6 +74,8 @@ class User extends Resource
/**
* Get the fields displayed by the resource.
*
* @return array<int, string>
*/
public function fields(NovaRequest $request): array
{
@@ -130,7 +130,7 @@ class User extends Resource
/**
* Get the cards available for the request.
*
* @return array
* @return array<int, string>
*/
public function cards(NovaRequest $request)
{
@@ -140,7 +140,7 @@ class User extends Resource
/**
* Get the filters available for the resource.
*
* @return array
* @return array<int, string>
*/
public function filters(NovaRequest $request)
{
@@ -150,7 +150,7 @@ class User extends Resource
/**
* Get the lenses available for the resource.
*
* @return array
* @return array<int, string>
*/
public function lenses(NovaRequest $request)
{
@@ -160,7 +160,7 @@ class User extends Resource
/**
* Get the actions available for the resource.
*
* @return array
* @return array<int, string>
*/
public function actions(NovaRequest $request)
{

View File

@@ -2,8 +2,9 @@
namespace App\Policies\Order\Card;
use App\Models\CardOrder;
use App\Models\Order\Card\CardOrder;
use App\Models\User;
use App\Repos\Order\OrderRepo;
class CardOrderPolicy
{
@@ -29,10 +30,10 @@ class CardOrderPolicy
}
if ($user->isOperator() && $user->can('viewCardOrders')) {
return $user->branches()->where('branches.id', $loanOrder->branch_id)->exists();
return $user->branches()->where('branches.id', $cardOrder->branch_id)->exists();
}
if ($user->ownsLoanOrder($loanOrder)) {
if ($user->ownsCardOrder($cardOrder)) {
return true;
}
@@ -61,10 +62,10 @@ class CardOrderPolicy
}
if ($user->isOperator() && $user->can('viewCardOrders')) {
return $user->branches()->where('branches.id', $loanOrder->branch_id)->exists();
return $user->branches()->where('branches.id', $cardOrder->branch_id)->exists();
}
if ($user->ownsLoanOrder($loanOrder) && in_array($loanOrder->status, [
if ($user->ownsCardOrder($cardOrder) && in_array($cardOrder->status, [
OrderRepo::PENDING,
])) {
return true;
@@ -83,10 +84,10 @@ class CardOrderPolicy
}
if ($user->isOperator() && $user->can('viewLoanOrders')) {
return $user->branches()->where('branches.id', $loanOrder->branch_id)->exists();
return $user->branches()->where('branches.id', $cardOrder->branch_id)->exists();
}
if ($user->ownsLoanOrder($loanOrder)) {
if ($user->ownsCardOrder($cardOrder)) {
return true;
}

View File

@@ -69,6 +69,8 @@ class NovaServiceProvider extends NovaApplicationServiceProvider
/**
* Get the dashboards that should be listed in the Nova sidebar.
*
* @return array<int, \App\Nova\Dashboards\Main>
*/
protected function dashboards(): array
{
@@ -79,6 +81,8 @@ class NovaServiceProvider extends NovaApplicationServiceProvider
/**
* Get the tools that should be listed in the Nova sidebar.
*
* @return array<int, string>
*/
public function tools(): array
{
@@ -111,7 +115,7 @@ class NovaServiceProvider extends NovaApplicationServiceProvider
public function setupUserNavigation(): void
{
Nova::userMenu(function (Request $request, Menu $menu) {
$menu->prepend(MenuItem::make(__('My Profile'), $request->user()->profilePage()));
$menu->prepend(MenuItem::make(__('My Profile'), $request->user()?->profilePage()));
return $menu;
});
@@ -138,7 +142,9 @@ class NovaServiceProvider extends NovaApplicationServiceProvider
*/
public function setupFieldMacros(): void
{
// @phpstan-ignore-next-line
Date::macro('toTurkmenFormat', fn () => $this->displayUsing(fn ($value) => $value?->format('d.m.Y')));
// @phpstan-ignore-next-line
DateTime::macro('turkmenDateTime', fn () => $this->displayUsing(fn ($value) => $value?->format('H:i, d.m.Y')));
}
}

View File

@@ -9,10 +9,13 @@ class BranchRepo
{
/**
* Model
*
* @var App\Models\Branch\Branch
*/
protected $model;
protected mixed $model;
/**
* Query
*/
protected mixed $query;
/**
* New Branch Repo
@@ -45,13 +48,15 @@ class BranchRepo
/**
* Query
*/
public function query()
public function query(): mixed
{
return $this->query;
}
/**
* Branch values
*
* @return \Illuminate\Support\Collection<int, string>|array<int, string>
*/
public static function values(): Collection|array
{

View File

@@ -13,7 +13,7 @@ class CardOrderRepo
*/
public static function creating(): Closure
{
return function ($model) {
return function (mixed $model) {
$model->status = $model->status ?: OrderRepo::defaultStatus();
};
}
@@ -31,8 +31,8 @@ class CardOrderRepo
/**
* Fill unique id
*/
public static function fillUniqueId($model): string
public static function fillUniqueId(mixed $model): string
{
return sprintf('TB%s-%s', Branch::find($model->branch_id)->unique_code, $model->id) ?? uniqid();
return sprintf('TB%s-%s', Branch::find($model->branch_id)->unique_code ?? uniqid(), $model->id);
}
}

View File

@@ -9,6 +9,8 @@ class CardStateRepo
{
/**
* Card state values
*
* @return \Illuminate\Support\Collection<int, string>|array<int, string>
*/
public static function values(): Collection|array
{

View File

@@ -9,6 +9,8 @@ class CardTypeRepo
{
/**
* Card type values
*
* @return \Illuminate\Support\Collection<int, string>|array<int, string>
*/
public static function values(): Collection|array
{

View File

@@ -5,6 +5,7 @@ namespace App\Repos\Order\Loan;
use App\Models\Branch\Branch;
use App\Repos\Order\OrderRepo;
use Closure;
use Illuminate\Database\Eloquent\Model;
class LoanOrderRepo
{
@@ -13,7 +14,7 @@ class LoanOrderRepo
*/
public static function creating(): Closure
{
return function ($model) {
return function (mixed $model) {
$model->status = $model->status ?: OrderRepo::defaultStatus();
};
}
@@ -31,8 +32,12 @@ class LoanOrderRepo
/**
* Fill unique id
*/
public static function fillUniqueId($model): string
public static function fillUniqueId(mixed $model): string
{
return sprintf('TB%s-%s', Branch::find($model->branch_id)->unique_code, $model->id) ?? uniqid();
return sprintf(
'TB%s-%s',
Branch::find($model->branch_id)->unique_code ?? uniqid(),
$model->id,
);
}
}

View File

@@ -9,6 +9,8 @@ class LoanTypeRepo
{
/**
* Loan type values
*
* @return \Illuminate\Support\Collection<string, mixed>|array<int, string>
*/
public static function values(): Collection|array
{

View File

@@ -39,6 +39,8 @@ class OrderRepo
/**
* Status Values
*
* @return array<string, string>
*/
public static function statusValues(): array
{
@@ -53,6 +55,8 @@ class OrderRepo
/**
* Tailwind
*
* @return array<string, string>
*/
public static function statusClasses(): array
{
@@ -67,6 +71,8 @@ class OrderRepo
/**
* Status icons
*
* @return array<string, string>
*/
public static function statusIcons(): array
{
@@ -81,6 +87,8 @@ class OrderRepo
/**
* HEX Colors
*
* @return array<string, string>
*/
public static function statusColors(): array
{

View File

@@ -29,13 +29,16 @@ class OnlinePaymentRepo
*/
public function getPrice(int|float|string $price): string
{
return number_format($price, 2, '', '');
return number_format(floatval($price), 2, '', '');
}
/**
* Pay card order
*
* @param mixed $resource
* @return array<string, string>
*/
public function payCardOrder($resource): array
public function payCardOrder(mixed $resource): array
{
$orderNumber = $this->generateOrderNumber($resource);
@@ -89,7 +92,7 @@ class OnlinePaymentRepo
/**
* Generate order number for payment
*/
public function generateOrderNumber($resource): int
public function generateOrderNumber(mixed $resource): int
{
return ApiKeyHalkbank::generateOrderNumber($resource);
}

View File

@@ -16,6 +16,8 @@ class PaymentStatusRepo
/**
* Payment statuses
*
* @return array<string, string>
*/
public static function values(): array
{

View File

@@ -6,6 +6,8 @@ class CountryRepo
{
/**
* List of countries
*
* @return array<string, string>
*/
public static function values(): array
{

View File

@@ -26,6 +26,8 @@ class NovaMenuRepo
{
/**
* Nova menu items
*
* @return array<int, \Laravel\Nova\Menu\MenuSection>
*/
public static function items(Request $request): array
{

View File

@@ -20,7 +20,7 @@ class NovaRepo
*/
public static function serving(ServingNova $event): void
{
// static::setLocale($event);
static::setLocale($event);
}
/**
@@ -44,11 +44,11 @@ class NovaRepo
/**
* Set locales
*/
public static function setLocale($event): void
public static function setLocale(ServingNova $event): void
{
$user = $event->request->user();
if (array_key_exists($user?->locale, config('app.locales'))) {
if ($user && array_key_exists($user->locale, config('app.locales'))) {
app()->setLocale($user->locale);
}
}
@@ -61,8 +61,8 @@ class NovaRepo
return function (Request $request) {
$locale = $request->post('locale');
if (array_key_exists($locale, config('app.locales'))) {
$request->user()->update(['locale' => $locale]);
if (is_string($locale) && array_key_exists($locale, config('app.locales'))) {
$request->user()?->update(['locale' => $locale]);
}
};
}

View File

@@ -20,6 +20,8 @@ class EducationRepo
/**
* Education statuses
*
* @return array<string, string>
*/
public static function values(): array
{

View File

@@ -16,6 +16,8 @@ class MarriageRepo
/**
* Marriage values
*
* @return array<string, string>
*/
public static function values(): array
{

View File

@@ -28,6 +28,8 @@ class PassportRepo
/**
* Passport values
*
* @return array<string, string>
*/
public static function values(): array
{

View File

@@ -41,6 +41,8 @@ class RegionRepo
/**
* Regions
*
* @return array<string, string>
*/
public static function values(): array
{