| 1 | <?php  | 
            ||
| 10 | final class HandleStoredEventJob implements HandleDomainEventJob, ShouldQueue  | 
            ||
| 11 | { | 
            ||
| 12 | use InteractsWithQueue, Queueable, SerializesModels;  | 
            ||
| 13 | |||
| 14 | public StoredEvent $storedEvent;  | 
            ||
| 
                                                                                                    
                        
                         | 
                |||
| 15 | |||
| 16 | public array $tags;  | 
            ||
| 17 | |||
| 18 | public function __construct(StoredEvent $storedEvent, array $tags)  | 
            ||
| 19 |     { | 
            ||
| 20 | $this->storedEvent = $storedEvent;  | 
            ||
| 21 | |||
| 22 | $this->tags = $tags;  | 
            ||
| 23 | }  | 
            ||
| 24 | |||
| 25 | public function handle(Projectionist $projectionist): void  | 
            ||
| 26 |     { | 
            ||
| 27 | $projectionist->handle($this->storedEvent);  | 
            ||
| 28 | }  | 
            ||
| 29 | |||
| 30 | public function tags(): array  | 
            ||
| 31 |     { | 
            ||
| 32 | return empty($this->tags)  | 
            ||
| 33 | ? [$this->storedEvent->event_class]  | 
            ||
| 34 | : $this->tags;  | 
            ||
| 35 | }  | 
            ||
| 36 | |||
| 37 | public static function createForEvent(StoredEvent $event, array $tags): HandleDomainEventJob  | 
            ||
| 38 |     { | 
            ||
| 39 | return new static($event, $tags);  | 
            ||
| 40 | }  | 
            ||
| 41 | }  | 
            ||
| 42 |