import NextAuthProvider from "@/lib/NextAuthProvider";
import type { Metadata } from "next";
import { getServerSession } from "next-auth";
import { Figtree } from "next/font/google";
import { Toaster } from "sonner";
import Footer from "../layouts/footer";
import Navbar from "../layouts/header";
import { authOptions } from "./api/auth/[...nextauth]/route";
import "./globals.css";
import QueryProvider from "./QueryClientProvider";

const figtree = Figtree({
  variable: "--font-figtree",
  subsets: ["latin"],
  weight: ["300", "400", "500", "600", "700", "800", "900"],
});

export const metadata: Metadata = {
  title: "ReelFlix",
  description: "Watch your favorite movies and TV shows",
};

export default async function RootLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  const session = await getServerSession(authOptions as any);

  return (
    <html lang="en">
      <body className={`${figtree.variable}  antialiased`}>
        <NextAuthProvider session={session}>
          <QueryProvider>
            <Navbar />
            <Toaster richColors />
            {children}
          </QueryProvider>
        </NextAuthProvider>
        <Footer />
      </body>
    </html>
  );
}
