mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-26 14:40:29 +01:00
96 lines
1.9 KiB
PHP
96 lines
1.9 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Xentral\Modules\GoogleApi\Data;
|
|
|
|
use Xentral\Modules\GoogleApi\Exception\InvalidArgumentException;
|
|
|
|
final class GoogleAccountPropertyValue
|
|
{
|
|
/** @var string $key */
|
|
private $key;
|
|
|
|
/** @var string $value */
|
|
private $value;
|
|
|
|
/** @var int|null */
|
|
private $id;
|
|
|
|
/** @var int|null */
|
|
private $accountId;
|
|
|
|
/**
|
|
* @param int|null $id
|
|
* @param int $accountId
|
|
* @param string $key
|
|
* @param string $value
|
|
*/
|
|
public function __construct(?int $id, ?int $accountId, string $key, string $value)
|
|
{
|
|
$this->id = $id;
|
|
$this->accountId = $accountId;
|
|
$this->key = $key;
|
|
$this->value = $value;
|
|
}
|
|
|
|
/**
|
|
* @param array $data
|
|
*
|
|
* @return GoogleAccountPropertyValue
|
|
*/
|
|
public static function fromDbState(array $data): GoogleAccountPropertyValue
|
|
{
|
|
if (!isset($data['id'], $data['google_account_id'], $data['varname'], $data['value'])) {
|
|
throw new InvalidArgumentException('Invalid or incomplete Dataset.');
|
|
}
|
|
|
|
return new static($data['id'], $data['google_account_id'], $data['varname'], $data['value']);
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function toArray(): array
|
|
{
|
|
return [
|
|
'id' => $this->getId(),
|
|
'google_account_id' => $this->getAccountId(),
|
|
'varname' => $this->getKey(),
|
|
'value' => $this->getValue()
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @return int|null
|
|
*/
|
|
public function getId(): ?int
|
|
{
|
|
return $this->id;
|
|
}
|
|
|
|
/**
|
|
* @return int|null
|
|
*/
|
|
public function getAccountId(): ?int
|
|
{
|
|
return $this->accountId;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getKey(): string
|
|
{
|
|
return $this->key;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getValue(): string
|
|
{
|
|
return $this->value;
|
|
}
|
|
}
|