protected function getPublicPropertiesName(): array
    {
        $reflectionClass = new \ReflectionClass($this);
        $publicProperties = $reflectionClass->getProperties(\ReflectionProperty::IS_PUBLIC);

        return array_map(function (\ReflectionProperty $property) {
            return $property->name;
        }, $publicProperties);
    }