private static void validateProperties(Object properties, List<String> errorMessages) {
        List<PropertyFieldInfo> propertyFieldInfos = getFieldInfos(properties.getClass());
        for (PropertyFieldInfo propertyFieldInfo : propertyFieldInfos) {
            if (propertyFieldInfo.isNestedProperty()) {
                Object nestedProperties = propertyFieldInfo.get(properties);
                validateProperties(nestedProperties, errorMessages);
            } else {
                validateProperty(properties, propertyFieldInfo, errorMessages);
            }
        }
    }
@implNote We don't use "hibernate-validator" because it has a terrible performance
turms-server-common/src/main/java/im/turms/server/common/infra/property/TurmsPropertiesValidator.java