31 lines
		
	
	
		
			653 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			653 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace kernel\modules\notification\contracts;
 | |
| 
 | |
| abstract class NotificationMessage
 | |
| {
 | |
|     protected array $channels = [];
 | |
| 
 | |
|     abstract public function getMessage(): string;
 | |
|     abstract public function getSubject(): string;
 | |
| 
 | |
|     public function via(): array
 | |
|     {
 | |
|         return $this->channels;
 | |
|     }
 | |
| 
 | |
|     public function addChannel(string $channel): void
 | |
|     {
 | |
|         if (!in_array($channel, $this->channels)) {
 | |
|             $this->channels[] = $channel;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function toArray(): array
 | |
|     {
 | |
|         return [
 | |
|             'message' => $this->getMessage(),
 | |
|             'subject' => $this->getSubject(),
 | |
|         ];
 | |
|     }
 | |
| } |