Author SHA1 Message Date
Daan Meijer af1eabfa01 refactor: Relocate real-time mutation broadcasts to model hooks 2026-06-23 11:38:06 +02:00
5 changed files with 13 additions and 48 deletions
@@ -71,9 +71,6 @@ class MutationController extends Controller
return $mutation;
});
// Broadcast the real-time creation event!
broadcast(new MutationCreated($mutation));
return redirect()->route('dynamics.ledgers.show', [$dynamic, $ledger]);
}
@@ -149,9 +146,6 @@ class MutationController extends Controller
}
broadcast(new MessageSent($dynamicMsg));
// Broadcast the real-time update event!
broadcast(new MutationUpdated($mutation));
return redirect()->back();
}
+9
View File
@@ -92,6 +92,15 @@ class Mutation extends Model
]);
}
broadcast(new MessageSent($dynamicMsg));
// Trigger the real-time creation broadcast dynamically
broadcast(new \App\Events\MutationCreated($mutation));
});
static::updated(function (Mutation $mutation) {
if ($mutation->wasChanged('status')) {
broadcast(new \App\Events\MutationUpdated($mutation));
}
});
}
-8
View File
@@ -3,7 +3,6 @@
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;
@@ -27,13 +26,6 @@ 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,
]);
}
/**
@@ -1,30 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('messages', function (Blueprint $table) {
DB::table('messages')->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']);
});
}
};
+4 -4
View File
@@ -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 === 'mutation' ||
message.subject_type === 'ledger'
message.subject_type === 'App\\Models\\Mutation' ||
message.subject_type === 'App\\Models\\Ledger'
) {
const ledgerId =
message.subject_type === 'mutation'
message.subject_type === 'App\\Models\\Mutation'
? message.subject?.ledger_id
: message.subject?.id;
const ledgerName =
message.subject_type === 'mutation'
message.subject_type === 'App\\Models\\Mutation'
? message.subject?.ledger?.name
: message.subject?.name;