From eaf954d7ff9d854c064bdfa53803c9a3db10f17d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anna-Sara=20S=C3=A9lea?= Date: Wed, 26 Feb 2025 20:05:32 +0100 Subject: [PATCH] Updated Item: Model, Resource, Migration --- .../ItemResource/Pages/CreateItem.php | 13 +++++++ .../Resources/ItemResource/Pages/EditItem.php | 7 ++-- app/Models/Item.php | 12 ++++--- .../2025_01_15_160621_create_items_table.php | 2 +- .../2025_02_24_120234_add_to_items_table.php | 34 +++++++++++++++++++ 5 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 database/migrations/2025_02_24_120234_add_to_items_table.php diff --git a/app/Filament/Resources/ItemResource/Pages/CreateItem.php b/app/Filament/Resources/ItemResource/Pages/CreateItem.php index 6629c22..1b7d9ee 100644 --- a/app/Filament/Resources/ItemResource/Pages/CreateItem.php +++ b/app/Filament/Resources/ItemResource/Pages/CreateItem.php @@ -5,6 +5,7 @@ namespace App\Filament\Resources\ItemResource\Pages; use App\Filament\Resources\ItemResource; use Filament\Actions; use Filament\Resources\Pages\CreateRecord; +use Illuminate\Database\Eloquent\Model; class CreateItem extends CreateRecord { @@ -14,4 +15,16 @@ class CreateItem extends CreateRecord { return $this->getResource()::getUrl('index'); } + + protected function handleRecordCreation(array $data): Model + { + + if ($data['type'] == "game") + { + $data['can_be_loaned'] = true; + } + + + return static::getModel()::create($data); + } } diff --git a/app/Filament/Resources/ItemResource/Pages/EditItem.php b/app/Filament/Resources/ItemResource/Pages/EditItem.php index 70f7027..381ade6 100644 --- a/app/Filament/Resources/ItemResource/Pages/EditItem.php +++ b/app/Filament/Resources/ItemResource/Pages/EditItem.php @@ -17,10 +17,13 @@ class EditItem extends EditRecord ]; } - - protected function getRedirectUrl(): string { return $this->getResource()::getUrl('index'); } + + public function getHeading(): string + { + return 'Edit: ' . $this->getRecord()->desc; + } } diff --git a/app/Models/Item.php b/app/Models/Item.php index 10121bf..722eba5 100644 --- a/app/Models/Item.php +++ b/app/Models/Item.php @@ -2,7 +2,7 @@ namespace App\Models; use App\Models\User; -use App\Models\Type; +use App\Models\Category; use App\Models\Reserveditem; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasOne; @@ -19,16 +19,20 @@ class Item extends Model 'quantity', 'cost', 'can_be_loaned', - 'type_id' + 'category_id', + 'players', + 'play_time', + 'age', + 'type' ]; /** * Get the type of the item */ - public function type(): BelongsTo + public function category(): BelongsTo { - return $this->belongsTo(Type::class); + return $this->belongsTo(Category::class); } public function reserveditem() diff --git a/database/migrations/2025_01_15_160621_create_items_table.php b/database/migrations/2025_01_15_160621_create_items_table.php index b4fce04..f1293d6 100644 --- a/database/migrations/2025_01_15_160621_create_items_table.php +++ b/database/migrations/2025_01_15_160621_create_items_table.php @@ -16,7 +16,7 @@ return new class extends Migration $table->string('desc')->nullable(); $table->date('acquisition_date')->nullable(); $table->string('image')->nullable(); - $table->integer('type_id')->nullable(); + $table->integer('category_id')->nullable(); $table->integer('quantity')->nullable(); $table->string('cost')->nullable(); $table->boolean('can_be_loaned')->default(false); diff --git a/database/migrations/2025_02_24_120234_add_to_items_table.php b/database/migrations/2025_02_24_120234_add_to_items_table.php new file mode 100644 index 0000000..b9e81c9 --- /dev/null +++ b/database/migrations/2025_02_24_120234_add_to_items_table.php @@ -0,0 +1,34 @@ +string('players')->nullable(); + $table->string('age')->nullable(); + $table->string('play_time')->nullable(); + $table->string('type')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('items', function (Blueprint $table) { + $table->dropColumn('players'); + $table->dropColumn('age'); + $table->dropColumn('play_time'); + $table->dropColumn('type'); + }); + } +};