export interface ContactFormAos {
  duration: number;
  delay: number;
}

export interface ContactFormSecTitle {
  subTitle: string;
  title: string;
  subTitleAos: ContactFormAos;
  titleAos: ContactFormAos;
}

export interface ContactFormInputRow {
  id: string;
  fieldKind: "input";
  colClass: string;
  label: string;
  name: string;
  type: string;
  placeholder: string;
  required?: boolean;
}

export interface ContactFormTextareaRow {
  id: string;
  fieldKind: "textarea";
  colClass: string;
  label: string;
  name: string;
  placeholder: string;
}

export interface ContactFormSubmitRow {
  id: string;
  fieldKind: "submit";
  colClass: string;
  groupClass: string;
  buttonLabel: string;
  iconSrc: string;
  iconAlt: string;
}

export type ContactFormFieldRow =
  | ContactFormInputRow
  | ContactFormTextareaRow
  | ContactFormSubmitRow;

export interface ContactFormData {
  formAos: ContactFormAos;
  secTitle: ContactFormSecTitle;
  fields: ContactFormFieldRow[];
}

/** https://web3forms.com/ — JSON POST; access key from `NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY`. */
export interface ContactFormWeb3Settings {
  submitUrl: string;
  defaultSubject: string;
  successMessage: string;
  errorMessage: string;
  missingAccessKeyMessage: string;
  sendingLabel: string;
}

export const contactFormWeb3Settings: ContactFormWeb3Settings = {
  submitUrl: "https://api.web3forms.com/submit",
  defaultSubject: "New message — Sasico contact form",
  successMessage: "Thank you! Your message was sent successfully.",
  errorMessage: "Something went wrong. Please try again in a moment.",
  missingAccessKeyMessage:
    "This form is not configured yet. After Purchasing the template Add NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY to your environment.",
  sendingLabel: "Sending…",
};

export const contactFormData: ContactFormData = {
  formAos: { duration: 900, delay: 400 },
  secTitle: {
    subTitle: "Send Us Message",
    title: "Start the Conversation, Shape the Future",
    subTitleAos: { duration: 900, delay: 300 },
    titleAos: { duration: 700, delay: 300 },
  },
  fields: [
    {
      id: "full-name",
      fieldKind: "input",
      colClass: "col-lg-6 col-md-6",
      label: "Full Name",
      name: "name",
      type: "text",
      placeholder: "Benjamin Carter",
      required: true,
    },
    {
      id: "phone",
      fieldKind: "input",
      colClass: "col-lg-6 col-md-6",
      label: "Phone number",
      name: "phone",
      type: "text",
      placeholder: "+1 (555) 123-4567",
    },
    {
      id: "email",
      fieldKind: "input",
      colClass: "col-lg-12",
      label: "Email Address",
      name: "email",
      type: "email",
      placeholder: "info@example.com",
    },
    {
      id: "subject",
      fieldKind: "input",
      colClass: "col-lg-12",
      label: "Subjects",
      name: "subject",
      type: "text",
      placeholder: "I would like to discussed",
    },
    {
      id: "message",
      fieldKind: "textarea",
      colClass: "col-lg-12",
      label: "Message",
      name: "message",
      placeholder: "Write message",
    },
    {
      id: "submit",
      fieldKind: "submit",
      colClass: "col-lg-12",
      groupClass: "form-group v2",
      buttonLabel: "Send Message Us",
      iconSrc: "/assets/images/icon/arrow.svg",
      iconAlt: "Send message arrow icon",
    },
  ],
};
