import type { Metadata } from "next";
import WhatsAppValidatorPage from "@/components/tools/WhatsAppValidatorPage";
import {
  buildStaticPageMetadata,
  localizedUrl,
  resolveSeoLang,
  type SeoLang,
} from "@/lib/seo";

const path = "/tools/whatsapp-number-checker";

type Props = { searchParams: Promise<{ lang?: string }> };

export async function generateMetadata({ searchParams }: Props): Promise<Metadata> {
  const meta = await buildStaticPageMetadata({
    path,
    searchParams,
    descriptionFallback: {
      en: "Free browser tool that requests WhatsApp registration status for international phone numbers. No signup; fair-use limit of 20 numbers per day.",
      ar: "أداة متصفح مجانية تطلب حالة تسجيل أرقام الهاتف الدولية على واتساب. بلا تسجيل، وبحد استخدام عادل 20 رقماً يومياً.",
    },
  });
  return {
    ...meta,
    twitter: {
      card: "summary_large_image",
      title: typeof meta.title === "object" && meta.title && "absolute" in meta.title
        ? String(meta.title.absolute)
        : "Free WhatsApp Number Checker",
      description: String(meta.description ?? ""),
    },
    robots: { index: true, follow: true },
  };
}

function buildJsonLd(lang: SeoLang) {
  const pageUrl = localizedUrl(path, lang);
  const isAr = lang === "ar";
  const faq = isAr
    ? [
        ["هل مدقق أرقام واتساب مجاني فعلاً؟", "نعم. أداة مجانية على skylightchat.com بحد استخدام عادل: 20 رقماً لكل زائر يومياً."],
        ["هل يمكن استخدامها كـ API في أنظمتي؟", "لا. الصفحة أداة عامة للمتصفح فقط. الأتمتة والتكامل مع أنظمة خارجية محظوران. للاستخدام الإنتاجي استخدم خطط سكاي لايت شات."],
        ["ما الصيغة الصحيحة للأرقام؟", "الصيغة الدولية مع رمز الدولة مثل 9665xxxxxxx أو +213559362307."],
      ]
    : [
        ["Is this WhatsApp number checker really free?", "Yes. It’s a free browser tool on skylightchat.com with a fair-use limit of 20 numbers per visitor per day."],
        ["Can I use this as an API in my system?", "No. This page is a free public tool only. Automated scraping and third-party system integrations are blocked. For production verification and WhatsApp messaging, use SkyLight Chat plans."],
        ["What format should numbers be in?", "International format with country code, e.g. 9665xxxxxxx or +213559362307. Local numbers without a country code may fail."],
      ];

  return {
    "@context": "https://schema.org",
    "@graph": [
    {
      "@type": "WebApplication",
      "@id": `${pageUrl}#app`,
      name: isAr ? "مدقق أرقام واتساب المجاني" : "Free WhatsApp Number Checker",
      url: pageUrl,
      inLanguage: isAr ? "ar-SA" : "en-US",
      applicationCategory: "BusinessApplication",
      operatingSystem: "Web",
      isAccessibleForFree: true,
      description:
        isAr
          ? "أداة متصفح مجانية تطلب حالة تسجيل أرقام الهاتف الدولية على واتساب، وقد تعرض نتيجة غير حاسمة."
          : "A free browser tool that requests WhatsApp registration status for international phone numbers; a result can be inconclusive.",
      provider: {
        "@type": "Organization",
        name: "SkyLight Chat",
        url: localizedUrl("/", lang),
      },
    },
    {
      "@type": "FAQPage",
      "@id": `${pageUrl}#faq`,
      inLanguage: isAr ? "ar-SA" : "en-US",
      mainEntity: faq.map(([name, text]) => ({
        "@type": "Question",
        name,
        acceptedAnswer: { "@type": "Answer", text },
      })),
    },
    {
      "@type": "BreadcrumbList",
      itemListElement: [
        { "@type": "ListItem", position: 1, name: isAr ? "الرئيسية" : "Home", item: localizedUrl("/", lang) },
        {
          "@type": "ListItem",
          position: 2,
          name: isAr ? "مدقق أرقام واتساب المجاني" : "Free WhatsApp Number Checker",
          item: pageUrl,
        },
      ],
    },
    ],
  };
}

export default async function Page({ searchParams }: Props) {
  const lang = await resolveSeoLang(await searchParams);
  const jsonLd = buildJsonLd(lang);

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