20250713 1.1.1
This commit is contained in:
78
sources/models/ActionStateMessage.php
Normal file
78
sources/models/ActionStateMessage.php
Normal file
@@ -0,0 +1,78 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user