52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Lib\Events;
 | |
| 
 | |
| use App\Lib\JobMiddleware\JobChannels;
 | |
| use Illuminate\Broadcasting\Channel;
 | |
| use Illuminate\Broadcasting\InteractsWithSockets;
 | |
| use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
 | |
| use Illuminate\Foundation\Events\Dispatchable;
 | |
| use Illuminate\Queue\SerializesModels;
 | |
| use Ramsey\Uuid\UuidInterface;
 | |
| 
 | |
| class JobEvent implements ShouldBroadcastNow
 | |
| {
 | |
|     use Dispatchable, InteractsWithSockets, SerializesModels;
 | |
| 
 | |
|     public string $message = '';
 | |
| 
 | |
|     final private function __construct(public UuidInterface $jobId)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     public static function on(UuidInterface $jobId): static
 | |
|     {
 | |
|         return new static($jobId);
 | |
|     }
 | |
| 
 | |
|     public function withMessage(string $message): static
 | |
|     {
 | |
|         $this->message = $message;
 | |
| 
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     public function dispatch(): void
 | |
|     {
 | |
|         event($this);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the channels the event should broadcast on.
 | |
|      *
 | |
|      * @return array<int, Channel>
 | |
|      */
 | |
|     public function broadcastOn()
 | |
|     {
 | |
|         return [
 | |
|             new Channel('jobs'),
 | |
|         ];
 | |
|     }
 | |
| }
 |