2026-01-22 15:51:05 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
|
|
namespace Magdev\WcLicensedProductClient\Dto;
|
|
|
|
|
|
|
|
|
|
final readonly class ActivationResult
|
|
|
|
|
{
|
|
|
|
|
public function __construct(
|
|
|
|
|
public bool $success,
|
|
|
|
|
public string $message,
|
|
|
|
|
) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function fromArray(array $data): self
|
|
|
|
|
{
|
2026-01-24 14:31:13 +01:00
|
|
|
if (!isset($data['success']) || !is_bool($data['success'])) {
|
|
|
|
|
throw new \InvalidArgumentException('Invalid response: missing or invalid success field');
|
|
|
|
|
}
|
|
|
|
|
if (!isset($data['message']) || !is_string($data['message'])) {
|
|
|
|
|
throw new \InvalidArgumentException('Invalid response: missing or invalid message field');
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-22 15:51:05 +01:00
|
|
|
return new self(
|
|
|
|
|
success: $data['success'],
|
|
|
|
|
message: $data['message'],
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|