private void ProcessFieldAttributes(OpenApiSchema schema,
                                            OpenApiObject templateOptions, PropertyInfo propertyInfo, Type declaringType,
                                            List <ValidatorModel> validators, out FormlyFieldAttribute fieldAttr)
        {
            fieldAttr = null;
            var xProps = new OpenApiObject();

            foreach (var fieldPropertyAttribute in GetAttributes <FormlyFieldPropAttribute>(propertyInfo, declaringType))
            {
                xProps[fieldPropertyAttribute.FullPath] = OpenApiExtensions.ToOpenApi(fieldPropertyAttribute.Value);
            }

            foreach (var patchAttr in GetAttributes <FormlyConfigPatcherAttribute>(propertyInfo, declaringType))
            {
                patchAttr.Patch(schema, xProps, templateOptions, _linkGenerator, validators);
                if (patchAttr is FormlyFieldAttribute fAttr)
                {
                    fieldAttr = fAttr;
                }
            }

            if (xProps.Count > 0)
            {
                schema.Extensions["x-props"] = xProps;
            }
        }
        private void PatchFieldTexts(OpenApiObject templateOptions, PropertyInfo propertyInfo, Type declaringType,
                                     FormlyFieldAttribute fieldAttr)
        {
            if (!templateOptions.ContainsKey("label"))
            {
                var label = fieldAttr?.GetDisplayName(propertyInfo) ??
                            TypeHelpers.GetDisplayNameOrDefault(propertyInfo);
                templateOptions["label"] = Oas(label);
            }

            if (!templateOptions.ContainsKey("description"))
            {
                var desc = TypeHelpers.GetDescription(propertyInfo);
                if (!string.IsNullOrEmpty(desc))
                {
                    templateOptions["description"] = Oas(desc);
                }
            }
        }