|
@@ -0,0 +1,46 @@
|
|
|
+<?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'),
|
|
|
+ ];
|
|
|
+ }
|
|
|
+}
|