* @license https://www.gnu.org/licenses/agpl-3.0.en.html/ GNU Affero General Public License v3.0 */ namespace App\Events; use App\Http\Resources\ChatMessageResource; use App\Models\Message; use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Broadcasting\PresenceChannel; use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; class MessageEdited implements ShouldBroadcastNow { use Dispatchable; use InteractsWithSockets; use SerializesModels; /** * Message details. */ public ChatMessageResource $message; /** * Create a new event instance. */ public function __construct(Message $message) { $message = Message::with(['bot', 'user.group', 'user.chatStatus'])->find($message->id); $this->message = new ChatMessageResource($message); } /** * Get the channels the event should broadcast on. */ public function broadcastOn(): PresenceChannel { // $this->dontBroadcastToCurrentUser(); return new PresenceChannel('chatroom.'.$this->message->chatroom_id); } public function broadcastAs(): string { return 'edit.message'; } }