From 759669e0dcd429b96bd3c4e2e0d2b73f8fd8e70d Mon Sep 17 00:00:00 2001 From: magdev Date: Fri, 10 Oct 2025 00:13:58 +0200 Subject: [PATCH] added JsonSerializable interface --- src/Model/StatusModel.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Model/StatusModel.php b/src/Model/StatusModel.php index f1b0bcd..1349992 100644 --- a/src/Model/StatusModel.php +++ b/src/Model/StatusModel.php @@ -4,15 +4,16 @@ namespace Magdev\DolibarrApi\Model; use DateTimeImmutable; use DateTimeZone; +use JsonSerializable; -class StatusModel extends AbstractModel implements ModelInterface +class StatusModel extends AbstractModel implements ModelInterface, JsonSerializable { private ?string $dolibarrVersion = null; private ?bool $accessLocked = null; private ?string $environment = null; private ?DateTimeImmutable $timestampNowUtc = null; - private ?DateTimeZone $timestampPhpTz = null; private ?DateTimeImmutable $dateTz = null; + private ?DateTimeZone $timestampPhpTz = null; public function __construct(?array $data = null) { @@ -21,12 +22,20 @@ class StatusModel extends AbstractModel implements ModelInterface } } + public function jsonSerialize(): mixed + { + return $this->toArray(); + } + public function fromArray(array $data): static { $this->setDolibarrVersion(dolibarrVersion: $data['dolibarr_version']) ->setAccessLocked(accessLocked: (bool) $data['access_locked']) ->setEnvironment(environment: $data['environment']) - ->setTimestampNowUtc(timestampNowUtc: new DateTimeImmutable('@'.$data['timestamp_now_utc'], new DateTimeZone('UTC'))) + ->setTimestampNowUtc(timestampNowUtc: new DateTimeImmutable( + '@'.$data['timestamp_now_utc'], + new DateTimeZone('UTC') + )) ->setDateTz(dateTz: $data['date_tz']) ->setTimestampPhpTz(timestampPhpTz: $data['timestamp_php_tz']) ->setStatusCode(statusCode: $data['code'])