import type { Metadata } from "next";
import { Poppins } from "next/font/google";
import Script from "next/script";
import "./globals.css";

import Header from "@/components/common/Header";
import Footer from "@/components/common/Footer";

const poppins = Poppins({
  subsets: ["latin"],
  weight: ["400", "500", "600", "700", "800"],
  display: "swap",
  variable: "--font-poppins",
});

export const metadata: Metadata = {
  metadataBase: new URL("https://www.rajvisocialwelfare.org"),

  // Google Search Console Verification added here
  verification: {
    google: "OimtZBmXcCzFE-YBifb8sO9L582hH8BXdLwFjYERz84",
  },

  title: {
    default:
      "Rajvi Social Welfare Trust | NGO for Education, Healthcare & Welfare",
    template: "%s | Rajvi Social Welfare Trust",
  },

  description:
    "Rajvi Social Welfare Trust empowers communities through education support, healthcare awareness, women empowerment, youth development, environmental awareness and community welfare initiatives across India.",

  keywords: [
    "Rajvi Social Welfare Trust",
    "NGO in India",
    "NGO in Uttar Pradesh",
    "Education Support NGO",
    "Healthcare Awareness NGO",
    "Women Empowerment NGO",
    "Youth Development NGO",
    "Community Welfare NGO",
    "Donate to NGO India",
    "Volunteer NGO India",
  ],

  authors: [{ name: "Rajvi Social Welfare Trust" }],
  creator: "Rajvi Social Welfare Trust",
  publisher: "Rajvi Social Welfare Trust",

  alternates: {
    canonical: "/",
  },

  openGraph: {
    title:
      "Rajvi Social Welfare Trust | Education, Healthcare & Community Welfare",
    description:
      "Empowering communities through education, healthcare awareness, women empowerment and grassroots welfare programs.",
    url: "https://www.rajvisocialwelfare.org",
    siteName: "Rajvi Social Welfare Trust",
    type: "website",
    locale: "en_IN",
    images: [
      {
        url: "/images/1.webp",
        width: 1200,
        height: 630,
        alt: "Rajvi Social Welfare Trust NGO Programs",
      },
    ],
  },

  twitter: {
    card: "summary_large_image",
    title: "Rajvi Social Welfare Trust | NGO for Social Welfare in India",
    description:
      "Education, healthcare awareness, women empowerment, youth development and community welfare programs.",
    images: ["/images/1.webp"],
  },

  robots: {
    index: true,
    follow: true,
    googleBot: {
      index: true,
      follow: true,
      "max-image-preview": "large",
      "max-snippet": -1,
      "max-video-preview": -1,
    },
  },
};

export default function RootLayout({
  children,
}: Readonly<{ children: React.ReactNode }>) {
  const organizationSchema = {
    "@context": "https://schema.org",
    "@type": "NGO",
    name: "Rajvi Social Welfare Trust",
    url: "https://www.rajvisocialwelfare.org",
    logo: "https://www.rajvisocialwelfare.org/logo.webp",
    image: "https://www.rajvisocialwelfare.org/images/1.webp",
    description:
      "Rajvi Social Welfare Trust works for education support, healthcare awareness, women empowerment, youth development, environmental awareness and community welfare initiatives across India.",
    areaServed: "India",
    address: {
      "@type": "PostalAddress",
      streetAddress: "238, Plot No. 8, Near IDFC Bank, Pocket C, Sector 13",
      addressLocality: "Dwarka",
      addressRegion: "New Delhi",
      postalCode: "110077",
      addressCountry: "IN",
    },
    contactPoint: {
      "@type": "ContactPoint",
      telephone: "+91-7310295095",
      contactType: "Customer Support",
      areaServed: "IN",
      availableLanguage: ["Hindi", "English"],
    },
    sameAs: ["https://www.facebook.com/rajvisocialwelfare"],
  };

  return (
    <html lang="en" className={poppins.variable} suppressHydrationWarning>
      <body
        className="min-h-screen overflow-x-hidden bg-white text-slate-900 antialiased"
        suppressHydrationWarning
      >
        <Script
          id="organization-schema"
          type="application/ld+json"
          strategy="beforeInteractive"
          dangerouslySetInnerHTML={{
            __html: JSON.stringify(organizationSchema),
          }}
        />

        <Header />

        <main>{children}</main>

        <Footer />
      </body>
    </html>
  );
}