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

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

export async function generateMetadata({ searchParams }: Props): Promise<Metadata> {
  return buildStaticPageMetadata({
    path: "/halla",
    searchParams,
    descriptionFallback: {
      ar: "نظام هلا للمكالمات الذكية وVoIP — استعادة المكالمات الفائتة إلى واتساب بزنس، سنترال عربي، وحملات صوتية.",
      en: "Halla AI voice and VoIP — missed-call recovery to WhatsApp Business, Arabic IVR, and outbound voice campaigns.",
    },
    keywords: [
      "هلا للمكالمات",
      "Halla VoIP",
      "استعادة المكالمات الفائتة",
      "واتساب بزنس",
      "السنترال السعودي",
    ],
  });
}

function buildHallaJsonLd(lang: SeoLang) {
  const pageUrl = localizedUrl("/halla", lang);
  return {
    "@context": "https://schema.org",
    "@type": "SoftwareApplication",
    "@id": `${pageUrl}#software`,
    name: "Halla",
    alternateName: "هلا للمكالمات",
    applicationCategory: "BusinessApplication",
    operatingSystem: "Web",
    url: pageUrl,
    inLanguage: lang === "ar" ? "ar-SA" : "en-US",
    description:
      lang === "ar"
        ? "هلا نظام مكالمات ذكية وVoIP للمكالمات الواردة والصادرة، استعادة المكالمات الفائتة عبر واتساب، والتحويل إلى صندوق الوارد الموحد."
        : "Halla is SkyLight Chat's AI voice and VoIP system for inbound and outbound calls, missed-call WhatsApp recovery, and unified inbox handoff.",
    provider: {
      "@type": "Organization",
      name: "SkyLight Chat",
      url: localizedUrl("/", lang),
    },
    featureList: [
      "Inbound AI call handling",
      "Outbound voice workflows",
      "VoIP telephony",
      "Arabic and English speech workflows",
      "Missed-call WhatsApp recovery",
      "Unified inbox handoff",
    ],
  };
}

export default async function HallaPage({ searchParams }: Props) {
  const lang = await resolveSeoLang(await searchParams);
  const hallaJsonLd = buildHallaJsonLd(lang);

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