From f6afcffa61d47c72b6fd4b96f90cfb7056b5fa72 Mon Sep 17 00:00:00 2001 From: Michal Skogemann Date: Fri, 13 Jun 2025 13:38:41 +0200 Subject: [PATCH] Refactor Task model to use morphs for creator and assignee relationships --- .../migrations/2023_05_18_113529_add_tasks_table.php | 6 ++---- src/Models/Task.php | 9 +++------ 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/database/migrations/2023_05_18_113529_add_tasks_table.php b/database/migrations/2023_05_18_113529_add_tasks_table.php index 5207b1c..baea0e0 100644 --- a/database/migrations/2023_05_18_113529_add_tasks_table.php +++ b/database/migrations/2023_05_18_113529_add_tasks_table.php @@ -16,10 +16,8 @@ public function up(): void $table->string('name'); $table->text('description')->nullable(); $table->enum('status', ['pending', 'completed', 'running'])->default('pending'); - $table->unsignedBigInteger('owner_id')->nullable(); - $table->string('owner_class')->nullable(); - $table->unsignedBigInteger('assignee_id')->nullable(); - $table->string('assignee_class')->nullable(); + $table->morphs('creator'); + $table->morphs('assignee'); $table->string('job')->nullable(); $table->text('job_data')->nullable(); $table->timestamp('due_date')->nullable(); diff --git a/src/Models/Task.php b/src/Models/Task.php index 3aecb6b..8df6fc9 100644 --- a/src/Models/Task.php +++ b/src/Models/Task.php @@ -15,7 +15,7 @@ class Task extends Model const STATUS_COMPLETED = 'completed'; const STATUS_RUNNING = 'running'; - protected $fillable = [ + protected array $fillable = [ 'name', 'description', 'status', @@ -31,12 +31,9 @@ class Task extends Model 'completed_by', ]; - /** - * @return MorphTo - */ public function owner(): MorphTo { - return $this->morphTo('owner', 'owner_class', 'owner_id'); + return $this->morphTo(); } /** @@ -44,7 +41,7 @@ public function owner(): MorphTo */ public function assignee(): MorphTo { - return $this->morphTo('assignee', 'assignee_class', 'assignee_id'); + return $this->morphTo(); } /**