import { useTranslations } from 'next-intl';
import React from 'react';

interface FaqItem {
  title: string;
  description: string;
  description2?: string;
  description3?: string;
  description4?: string;
  description5?: string;
  description6?: string;
  description7?: string;
  descriptionPoints?: { pointTitle?: string; pointDescription: string }[];
  descriptionPoints2?: { pointTitle?: string; pointDescription: string }[];
  descriptionPoints3?: { pointTitle?: string; pointDescription: string }[];
  descriptionPoints4?: { pointTitle?: string; pointDescription: string }[];
  descriptionPoints5?: { pointTitle?: string; pointDescription: string }[];
  descriptionPoints6?: { pointTitle?: string; pointDescription: string }[];
}

interface FaqContent {
  title: string;
  subTitle?: string;
  subTitle1?: string;
  faqs: FaqItem[];
}

interface FaqSchemaProps {
  content: FaqContent;
}

const FaqSchema: React.FC<FaqSchemaProps> = ({ content }) => {
  const t = useTranslations();
  
  const formatAnswer = (faq: FaqItem): string => {
    let answer = t(faq.description);
        
    // Process all description points
    const pointsArrays = [
      faq.descriptionPoints,
      faq.descriptionPoints2,
      faq.descriptionPoints3,
      faq.descriptionPoints4,
      faq.descriptionPoints5,
      faq.descriptionPoints6
    ];
        
    pointsArrays.forEach(points => {
      if (points && points.length > 0) {
        const pointsText = points
          .map(point => point.pointTitle ? 
               `${t(point.pointTitle)}: ${t(point.pointDescription)}` : 
               t(point.pointDescription))
          .join(' ');
        answer += ` ${pointsText}`;
      }
    });
        
    // Process all additional descriptions
    const additionalDescriptions = [
      faq.description2,
      faq.description3,
      faq.description4,
      faq.description5,
      faq.description6,
      faq.description7
    ];
        
    additionalDescriptions.forEach(desc => {
      if (desc) {
        answer += ` ${t(desc)}`;
      }
    });
        
    return answer;
  };

  const faqSchema = {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": content.faqs.map(faq => ({
      "@type": "Question",
      "name": t(faq.title),
      "acceptedAnswer": {
        "@type": "Answer",
        "text": formatAnswer(faq)
      }
    }))
  };

  return (
    <script
      type="application/ld+json"
      dangerouslySetInnerHTML={{
        __html: JSON.stringify(faqSchema)
      }}
    />
  );
};

export default FaqSchema;