From d8c340028c863d6b0303d10d2765578640f1555e Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Thu, 23 Oct 2025 00:15:55 +0500 Subject: [PATCH] some stan --- app/Helpers/helpers.php | 2 +- app/Http/Middleware/EnsureProfileIsFilled.php | 5 +- app/Livewire/UserPassportFields.php | 5 +- app/Modules/Card/CardModule.php | 64 +++++++++++++++++++ .../Card/Controllers/CardController.php | 49 ++++++++++++++ .../2025_10_22_201901_create_cards_table.php | 36 +++++++++++ app/Modules/Card/Models/Card.php | 36 +++++++++++ .../Card/Repositories/CardRepository.php | 5 ++ app/Modules/Loan/Models/Loan.php | 9 ++- .../Traits/UserAdjustments.php | 2 +- 10 files changed, 203 insertions(+), 10 deletions(-) create mode 100644 app/Modules/Card/CardModule.php create mode 100644 app/Modules/Card/Controllers/CardController.php create mode 100644 app/Modules/Card/Database/Migrations/2025_10_22_201901_create_cards_table.php create mode 100644 app/Modules/Card/Models/Card.php create mode 100644 app/Modules/Card/Repositories/CardRepository.php diff --git a/app/Helpers/helpers.php b/app/Helpers/helpers.php index c05a6c4..12966e0 100644 --- a/app/Helpers/helpers.php +++ b/app/Helpers/helpers.php @@ -51,7 +51,7 @@ function logDB(): void */ function user(): User { - abort_unless(Auth::check(), 'not-authenticated'); + abort_unless(Auth::check(), 401, 'Unauthorized'); /** @var \App\Models\User */ $user = Auth::user(); diff --git a/app/Http/Middleware/EnsureProfileIsFilled.php b/app/Http/Middleware/EnsureProfileIsFilled.php index 9494be8..2892427 100644 --- a/app/Http/Middleware/EnsureProfileIsFilled.php +++ b/app/Http/Middleware/EnsureProfileIsFilled.php @@ -29,7 +29,10 @@ class EnsureProfileIsFilled $profilePageClass = EditProfilePage::class; // <-- !! IMPORTANT: Change to your page $profilePageUrl = $profilePageClass::getUrl(); - $panelId = filament()->getCurrentPanel()->getId(); + /** @var \Filament\Panel */ + $panel = filament()->getCurrentPanel(); + + $panelId = $panel->getId(); $logoutRouteName = "filament.{$panelId}.auth.logout"; // 4. Check for 'safe' conditions diff --git a/app/Livewire/UserPassportFields.php b/app/Livewire/UserPassportFields.php index 566dc70..c4f2a52 100644 --- a/app/Livewire/UserPassportFields.php +++ b/app/Livewire/UserPassportFields.php @@ -23,13 +23,14 @@ class UserPassportFields extends Component implements HasForms use HasSort; use InteractsWithForms; + /** @var array */ public ?array $data = []; protected static int $sort = 10; public function mount(): void { - $this->form->fill(); + $this->form->fill(); // @phpstan-ignore-line } public function form(Schema $schema): Schema @@ -160,7 +161,7 @@ class UserPassportFields extends Component implements HasForms { try { /** @var array{first_name: string, last_name: string, patronic_name: null|string, born_at: string, phone: string, email: string, passport_serie: string, passport_id: string, passport_given_at: string, born_place: string, passport_given_by: string, passport_address: string, real_address: string} */ - $data = $this->form->getState(); + $data = $this->form->getState(); // @phpstan-ignore-line user()->update([ 'first_name' => $data['first_name'], diff --git a/app/Modules/Card/CardModule.php b/app/Modules/Card/CardModule.php new file mode 100644 index 0000000..8c71721 --- /dev/null +++ b/app/Modules/Card/CardModule.php @@ -0,0 +1,64 @@ +enabled; + } + + /** + * Disable module + */ + public function disable(): void + { + $this->enabled = false; + } + + /** + * Enable module + */ + public function enable(): void + { + $this->enabled = true; + } + + /** + * Check if module has a filament resource + */ + public function hasFilamentResource(): bool + { + return false; + } + + /** + * Get module composer requirements + */ + public function getComposerRequirements(): array + { + return []; + } + + /** + * Get module composer suggestions + */ + public function getComposerSuggestions(): array + { + return []; + } +} diff --git a/app/Modules/Card/Controllers/CardController.php b/app/Modules/Card/Controllers/CardController.php new file mode 100644 index 0000000..5a99197 --- /dev/null +++ b/app/Modules/Card/Controllers/CardController.php @@ -0,0 +1,49 @@ +id(); + $table->foreignId('user_id')->constrained('users')->onDelete('cascade'); + + $table->string('number')->index(); + $table->string('name')->index(); + $table->string('month'); + $table->string('year'); + + $table->string('type')->nullable(); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('cards'); + } +}; diff --git a/app/Modules/Card/Models/Card.php b/app/Modules/Card/Models/Card.php new file mode 100644 index 0000000..bb18e12 --- /dev/null +++ b/app/Modules/Card/Models/Card.php @@ -0,0 +1,36 @@ + + */ + public function user(): BelongsTo + { + return $this->belongsTo(User::class); + } +} diff --git a/app/Modules/Card/Repositories/CardRepository.php b/app/Modules/Card/Repositories/CardRepository.php new file mode 100644 index 0000000..bad7f93 --- /dev/null +++ b/app/Modules/Card/Repositories/CardRepository.php @@ -0,0 +1,5 @@ + + * @return BelongsTo */ public function user(): BelongsTo { diff --git a/app/Modules/UserAdjustments/Traits/UserAdjustments.php b/app/Modules/UserAdjustments/Traits/UserAdjustments.php index 99ba547..5d1f3a5 100644 --- a/app/Modules/UserAdjustments/Traits/UserAdjustments.php +++ b/app/Modules/UserAdjustments/Traits/UserAdjustments.php @@ -11,7 +11,7 @@ namespace App\Modules\UserAdjustments\Traits; * @property string $locale [default: tk] * @property bool $password_must_be_changed [default: false] * @property bool $must_fill_profile [default: false] - * @property null|array $options + * @property null|array $options */ trait UserAdjustments {