/*
 * Copyright 2023 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */

export function santizieName(name) {
  return name.replace(/[^a-zA-Z0-9.]+/g, '_');
}

export default function getFormStats(name, fields, dataset) {
  const attachmentsUsed = fields?.some((field) => field.Type === 'file') || false;

  const recaptchaUsed = fields?.some((field) => field.Name?.includes('recaptcha'))
  || Object.entries(dataset).some(([key]) => key?.toLowerCase().includes('sitekey')) || false;

  const hiddenFields = fields?.filter((field) => field.Type === 'hidden');

  const stats = {
    name,
    isMarketToForm: name?.includes('mktoForm') || false,
    fields: fields?.length,
    hiddenFields: hiddenFields?.length,
    attachmentsUsed,
    recaptchaUsed,
    isPDF: false,
  };

  return stats;
}
