diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index ee05a42..9d957bf 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -3,6 +3,7 @@ namespace App\Providers; use Carbon\CarbonImmutable; +use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Facades\Date; use Illuminate\Support\Facades\DB; @@ -26,6 +27,13 @@ class AppServiceProvider extends ServiceProvider { JsonResource::withoutWrapping(); $this->configureDefaults(); + + Relation::morphMap([ + 'user' => \App\Models\User::class, + 'dynamic' => \App\Models\Dynamic::class, + 'ledger' => \App\Models\Ledger::class, + 'mutation' => \App\Models\Mutation::class, + ]); } /** diff --git a/database/migrations/2026_06_23_091537_update_existing_messages_morph_types.php b/database/migrations/2026_06_23_091537_update_existing_messages_morph_types.php new file mode 100644 index 0000000..9eb3c8e --- /dev/null +++ b/database/migrations/2026_06_23_091537_update_existing_messages_morph_types.php @@ -0,0 +1,30 @@ +where('subject_type', 'App\\Models\\User')->update(['subject_type' => 'user']); + DB::table('messages')->where('subject_type', 'App\\Models\\Mutation')->update(['subject_type' => 'mutation']); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('messages', function (Blueprint $table) { + DB::table('messages')->where('subject_type', 'user')->update(['subject_type' => 'App\\Models\\User']); + DB::table('messages')->where('subject_type', 'mutation')->update(['subject_type' => 'App\\Models\\Mutation']); + }); + } +}; diff --git a/resources/js/components/Chat.vue b/resources/js/components/Chat.vue index 03e2c95..694fe82 100644 --- a/resources/js/components/Chat.vue +++ b/resources/js/components/Chat.vue @@ -202,16 +202,16 @@ function parseMessageContent(message: { // 2. Link subjects if found in the text if (message.subject_id && message.subject_type) { if ( - message.subject_type === 'App\\Models\\Mutation' || - message.subject_type === 'App\\Models\\Ledger' + message.subject_type === 'mutation' || + message.subject_type === 'ledger' ) { const ledgerId = - message.subject_type === 'App\\Models\\Mutation' + message.subject_type === 'mutation' ? message.subject?.ledger_id : message.subject?.id; const ledgerName = - message.subject_type === 'App\\Models\\Mutation' + message.subject_type === 'mutation' ? message.subject?.ledger?.name : message.subject?.name;