HOME


Mini Shell 1.0
Negocios La Pieza.DO | Registrate o Inicia Sesión

Inicie Sesión en su Cuenta de Negocios

Olvidó Contraseña?
DIR: /var/www/devs.lapieza.net/vendor/kreait/firebase-php/src/Firebase/Messaging/
Upload File :
Current File : //var/www/devs.lapieza.net/vendor/kreait/firebase-php/src/Firebase/Messaging/FcmOptions.php
<?php

declare(strict_types=1);

namespace Kreait\Firebase\Messaging;

use JsonSerializable;

/**
 * @see https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#fcmoptions
 *
 * @phpstan-type FcmOptionsShape array{
 *     analytics_label?: string
 * }
 */
final class FcmOptions implements JsonSerializable
{
    /**
     * @param FcmOptionsShape $data
     */
    private function __construct(private array $data)
    {
    }

    public static function create(): self
    {
        return new self([]);
    }

    /**
     * @param FcmOptionsShape $data
     */
    public static function fromArray(array $data): self
    {
        return new self($data);
    }

    public function withAnalyticsLabel(string $label): self
    {
        $options = clone $this;
        $options->data['analytics_label'] = $label;

        return $options;
    }

    public function jsonSerialize(): array
    {
        return $this->data;
    }
}