<?php namespace App\Events; use App\Models\Action; use App\Models\Config; use App\Models\Enums\ConfigGroup; use Illuminate\Broadcasting\Channel; use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Broadcasting\PresenceChannel; use Illuminate\Broadcasting\PrivateChannel; use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; class ObjectActionCreate { use Dispatchable, InteractsWithSockets, SerializesModels; public array $notificationSetting = []; /** * Create a new event instance. */ public function __construct(public Action $action) { $settingResult = Config::query() ->where("group", ConfigGroup::MESSAGE_NOTIFICATION) ->where("key", "setting") ->first(); $this->notificationSetting = $settingResult ? json_decode($settingResult->value, true) : []; } /** * Get the channels the event should broadcast on. * * @return array<int, \Illuminate\Broadcasting\Channel> */ public function broadcastOn(): array { return [ new PrivateChannel('channel-name'), ]; } }