%PDF- %PDF-
| Direktori : /home/graphicd/www/vebto/vendor/laravel-notification-channels/fcm/src/ |
| Current File : /home/graphicd/www/vebto/vendor/laravel-notification-channels/fcm/src/FcmMessage.php |
<?php
namespace NotificationChannels\Fcm;
use Kreait\Firebase\Messaging\Message;
use NotificationChannels\Fcm\Resources\AndroidConfig;
use NotificationChannels\Fcm\Resources\ApnsConfig;
use NotificationChannels\Fcm\Resources\FcmOptions;
use NotificationChannels\Fcm\Resources\Notification;
use NotificationChannels\Fcm\Resources\WebpushConfig;
class FcmMessage implements Message
{
/**
* @var string|null
*/
protected $name;
/**
* @var array|null
*/
protected $data;
/**
* @var Notification|null
*/
protected $notification;
/**
* @var AndroidConfig|null
*/
protected $android;
/**
* @var WebpushConfig|null
*/
protected $webpush;
/**
* @var ApnsConfig|null
*/
protected $apns;
/**
* @var FcmOptions|null
*/
protected $fcmOptions;
/**
* @var string|null
*/
protected $token;
/**
* @var string|null
*/
protected $topic;
/**
* @var string|null
*/
protected $condition;
public static function create(): self
{
return new self;
}
/**
* @return string|null
*/
public function getName(): ?string
{
return $this->name;
}
/**
* @param string|null $name
* @return FcmMessage
*/
public function setName(?string $name): self
{
$this->name = $name;
return $this;
}
/**
* @return array|null
*/
public function getData(): ?array
{
return $this->data;
}
/**
* @param array|null $data
* @return FcmMessage
*/
public function setData(?array $data): self
{
$this->data = $data;
return $this;
}
/**
* @return Notification|null
*/
public function getNotification(): ?Notification
{
return $this->notification;
}
/**
* @param Notification|null $notification
* @return FcmMessage
*/
public function setNotification(?Notification $notification): self
{
$this->notification = $notification;
return $this;
}
/**
* @return AndroidConfig|null
*/
public function getAndroid(): ?AndroidConfig
{
return $this->android;
}
/**
* @param AndroidConfig|null $android
* @return FcmMessage
*/
public function setAndroid(?AndroidConfig $android): self
{
$this->android = $android;
return $this;
}
/**
* @return WebpushConfig|null
*/
public function getWebpush(): ?WebpushConfig
{
return $this->webpush;
}
/**
* @param WebpushConfig|null $webpush
* @return FcmMessage
*/
public function setWebpush(?WebpushConfig $webpush): self
{
$this->webpush = $webpush;
return $this;
}
/**
* @return ApnsConfig|null
*/
public function getApns(): ?ApnsConfig
{
return $this->apns;
}
/**
* @param ApnsConfig|null $apns
* @return FcmMessage
*/
public function setApns(?ApnsConfig $apns): self
{
$this->apns = $apns;
return $this;
}
/**
* @return FcmOptions|null
*/
public function getFcmOptions(): ?FcmOptions
{
return $this->fcmOptions;
}
/**
* @param FcmOptions|null $fcmOptions
* @return FcmMessage
*/
public function setFcmOptions(?FcmOptions $fcmOptions): self
{
$this->fcmOptions = $fcmOptions;
return $this;
}
/**
* @return string|null
*/
public function getToken(): ?string
{
return $this->token;
}
/**
* @param string|null $token
* @return FcmMessage
*/
public function setToken(?string $token): self
{
$this->token = $token;
return $this;
}
/**
* @return string|null
*/
public function getTopic(): ?string
{
return $this->topic;
}
/**
* @param string|null $topic
* @return FcmMessage
*/
public function setTopic(?string $topic): self
{
$this->topic = $topic;
return $this;
}
/**
* @return string|null
*/
public function getCondition(): ?string
{
return $this->condition;
}
/**
* @param string|null $condition
* @return FcmMessage
*/
public function setCondition(?string $condition): self
{
$this->condition = $condition;
return $this;
}
public function toArray()
{
return [
'name' => $this->getName(),
'data' => $this->getData(),
'notification' => ! is_null($this->getNotification()) ? $this->getNotification()->toArray() : null,
'android' => ! is_null($this->getAndroid()) ? $this->getAndroid()->toArray() : null,
'webpush' => ! is_null($this->getWebpush()) ? $this->getWebpush()->toArray() : null,
'apns' => ! is_null($this->getApns()) ? $this->getApns()->toArray() : null,
'fcm_options' => ! is_null($this->getFcmOptions()) ? $this->getFcmOptions()->toArray() : null,
'token' => $this->getToken(),
'topic' => $this->getTopic(),
'condition' => $this->getCondition(),
];
}
public function jsonSerialize()
{
return $this->toArray();
}
}