type; } /** * @inheritDoc */ public abstract function toArray(): array; /** * @inheritDoc */ public static function fromArray(array $data): InputMessageContent { if(isset($data['message_text'])) { return InputTextMessageContent::fromArray($data); } if(isset($data['latitude']) && isset($data['longitude']) && isset($data['tile']) && isset($data['address'])) { return InputVenueMessageContent::fromArray($data); } if(isset($data['latitude']) && isset($data['longitude'])) { return InputLocationMessageContent::fromArray($data); } if(isset($data['title']) && isset($data['description']) && isset($data['payload'])) { return InputInvoiceMessageContent::fromArray($data); } throw new InvalidArgumentException("Invalid object type, unexpected type"); } }