import type { Metadata } from "next";
import {
  Barlow_Condensed,
  Cormorant_Garamond,
  Fraunces,
  Inter,
  Outfit,
} from "next/font/google";
import "./globals.css";
import { CartProvider } from "@/context/CartContext";
import { AuthProvider } from "@/context/AuthContext";
import { AdminProvider } from "@/context/AdminContext";
import { FavoritesProvider } from "@/context/FavoritesContext";
import { AnnouncementBar, Footer, Navbar } from "@/components/layout/SiteChrome";
import { SubscribeModal } from "@/components/marketing/SubscribeModal";
import { VisitBeacon } from "@/components/ops/VisitBeacon";

const outfit = Outfit({
  variable: "--font-outfit",
  subsets: ["latin"],
});

const inter = Inter({
  variable: "--font-inter",
  subsets: ["latin"],
  weight: ["400", "500", "600"],
});

const cormorant = Cormorant_Garamond({
  variable: "--font-cormorant",
  subsets: ["latin"],
  weight: ["400", "500", "600", "700"],
});

const fraunces = Fraunces({
  variable: "--font-fraunces",
  subsets: ["latin"],
  weight: ["300", "400", "500", "600"],
  style: ["normal", "italic"],
});

const barlowCondensed = Barlow_Condensed({
  variable: "--font-barlow-condensed",
  subsets: ["latin"],
  weight: ["500", "600", "700"],
});

export const metadata: Metadata = {
  title: {
    default: "OLD TENNIS | El arte de jugar con estilo",
    template: "%s | OLD TENNIS",
  },
  description:
    "Tienda virtual de ropa de tenis clásica y atemporal. Colecciones Sporty Elegance y Club 1976.",
  metadataBase: new URL("https://ot.azulado.cloud"),
};

export default function RootLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  return (
    <html lang="es">
      <body
        className={`${outfit.variable} ${inter.variable} ${cormorant.variable} ${fraunces.variable} ${barlowCondensed.variable} antialiased`}
      >
        <AuthProvider>
          <AdminProvider>
            <FavoritesProvider>
              <CartProvider>
                <AnnouncementBar />
                <Navbar />
                <main>{children}</main>
                <Footer />
                <VisitBeacon />
                <SubscribeModal />
              </CartProvider>
            </FavoritesProvider>
          </AdminProvider>
        </AuthProvider>
      </body>
    </html>
  );
}
