php_components_pack/sources/models/ActionStateMessage.php
2025-07-13 12:23:08 +03:00

78 lines
2.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace goodboyalex\php_components_pack\models;
use goodboyalex\php_components_pack\enums\MessageType;
use goodboyalex\php_components_pack\interfaces\ISerializable;
/**
* Модель сообщения о состоянии.
*
* @author Александр Бабаев
* @package php_components_pack
* @version 1.1
* @since 1.0
*/
final class ActionStateMessage implements ISerializable
{
/**
* @var MessageType $MessageType Тип сообщения
*/
public MessageType $MessageType;
/**
* @var bool $IsCritical Критичность сообщения
*/
public bool $IsCritical;
/**
* @var string $Message Текст сообщения
*/
public string $Message;
/**
* Конструктор
*
* @param MessageType $type Тип сообщения
* @param bool $isCritical Критичность сообщения
* @param string $message Текст сообщения
*/
public function __construct (MessageType $type = MessageType::Info, bool $isCritical = false, string $message = "")
{
$this->MessageType = $type;
$this->IsCritical = $isCritical;
$this->Message = $message;
}
/**
* @inheritDoc
*/
public function UnSerialize (string $serialized): void
{
// Десериализую массив
$array = json_decode($serialized, true);
// Заполняю поля
$this->MessageType =
isset($array["MessageType"]) ? MessageType::FromName($array["MessageType"]) : MessageType::Info;
$this->IsCritical = isset($array["IsCritical"]) && $array["IsCritical"] == 1;
$this->Message = $array["Message"] ?? "";
}
/**
* @inheritDoc
*/
public function Serialize (): string
{
// Создаю массив результата
$result = [];
// Заполняю массив
$result["MessageType"] = $this->MessageType->GetValue();
$result["IsCritical"] = $this->IsCritical ? 1 : 0;
$result["Message"] = $this->Message;
// Сериализую
return json_encode($result);
}
}