51 lines
1001 B
PHP
51 lines
1001 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
namespace Kreait\Firebase\RemoteConfig;
|
||
|
|
|
||
|
|
use JsonSerializable;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-type RemoteConfigRolloutValueShape array{
|
||
|
|
* rolloutId: non-empty-string,
|
||
|
|
* value: string,
|
||
|
|
* percent: int<0, 100>
|
||
|
|
* }
|
||
|
|
*
|
||
|
|
* @see https://firebase.google.com/docs/reference/remote-config/rest/v1/RemoteConfig#rolloutvalue
|
||
|
|
*/
|
||
|
|
final class RolloutValue implements JsonSerializable
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* @param RemoteConfigRolloutValueShape $data
|
||
|
|
*/
|
||
|
|
private function __construct(private readonly array $data)
|
||
|
|
{
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param RemoteConfigRolloutValueShape $data
|
||
|
|
*/
|
||
|
|
public static function fromArray(array $data): self
|
||
|
|
{
|
||
|
|
return new self($data);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @return RemoteConfigRolloutValueShape
|
||
|
|
*/
|
||
|
|
public function toArray(): array
|
||
|
|
{
|
||
|
|
return $this->data;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @return RemoteConfigRolloutValueShape
|
||
|
|
*/
|
||
|
|
public function jsonSerialize(): array
|
||
|
|
{
|
||
|
|
return $this->data;
|
||
|
|
}
|
||
|
|
}
|