import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import { QueryProvider } from "@/lib/store/query-provider";
import "./globals.css";

const geistSans = Geist({
  variable: "--font-geist-sans",
  subsets: ["latin"],
});

const geistMono = Geist_Mono({
  variable: "--font-geist-mono",
  subsets: ["latin"],
});

export const metadata: Metadata = {
  metadataBase: new URL("https://cities-web-nine.vercel.app"),
  title: {
    default: "Cities - Connect, Trade & Thrive with Your Neighbors",
    template: "%s | Cities",
  },
  description:
    "Connect locally, engage meaningfully, and discover your community. Share what matters and build lasting relationships with Cities.",
  keywords: [
    "community",
    "marketplace",
    "local commerce",
    "digital wallet",
    "neighborhood",
    "social platform",
  ],
  openGraph: {
    title: "Cities - Connect, Trade & Thrive with Your Neighbors",
    description:
      "Connect locally, engage meaningfully, and discover your community. Share what matters and build lasting relationships.",
    siteName: "Cities",
    url: "https://cittis.cc",
    type: "website",
    images: [
      {
        url: "/og-image.png",
        width: 1200,
        height: 630,
        alt: "Cities - Connect, Trade & Thrive",
      },
    ],
  },
  twitter: {
    card: "summary_large_image",
    title: "Cities - Connect, Trade & Thrive with Your Neighbors",
    description:
      "Connect locally, engage meaningfully, and discover your community. Share what matters and build lasting relationships.",
    images: ["/og-image.png"],
  },
  applicationName: "Cities",
};

export default function RootLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  return (
    <html
      lang="en"
      className={`${geistSans.variable} ${geistMono.variable} h-full antialiased`}
      suppressHydrationWarning
    >
      <body className="min-h-full flex flex-col" suppressHydrationWarning>
        <QueryProvider>{children}</QueryProvider>
      </body>
    </html>
  );
}
