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