import type { Metadata, Viewport } from "next";
import type { ReactNode } from "react";
import "@/app/globals.css";
import { site } from "@/data/site";
import { AnalyticsScripts } from "@/components/analytics-scripts";
import { JsonLd } from "@/components/json-ld";
import { SiteChrome } from "@/components/site-chrome";

export const metadata: Metadata = {
  metadataBase: new URL(site.url),
  title: {
    default: site.title,
    template: "%s | SelahBeat",
  },
  description: site.description,
  keywords: [...site.keywords],
  applicationName: "SelahBeat",
  authors: [{ name: "SelahBeat" }],
  creator: "SelahBeat",
  publisher: "SelahBeat",
  alternates: {
    canonical: "/",
  },
  openGraph: {
    type: "website",
    locale: "pt_BR",
    url: "/",
    siteName: "SelahBeat",
    title: site.title,
    description: site.description,
    images: [
      {
        url: "/images/brand/hero.webp",
        width: 2400,
        height: 1100,
        alt: "SelahBeat — verdades eternas, som do presente",
      },
    ],
  },
  twitter: {
    card: "summary_large_image",
    title: site.title,
    description: site.description,
    images: ["/images/brand/hero.webp"],
  },
  icons: {
    icon: [
      { url: "/icon-192.png", sizes: "192x192", type: "image/png" },
      { url: "/icon-512.png", sizes: "512x512", type: "image/png" },
    ],
    apple: "/icon-192.png",
  },
  manifest: "/manifest.webmanifest",
};

export const viewport: Viewport = {
  width: "device-width",
  initialScale: 1,
  themeColor: "#070604",
  colorScheme: "dark",
};

export default function RootLayout({ children }: { children: ReactNode }) {
  const musicGroupSchema = {
    "@context": "https://schema.org",
    "@type": "MusicGroup",
    name: "SelahBeat",
    genre: ["Trap gospel", "Rap cristão", "Funk gospel", "Worship urbano"],
    description: site.description,
    image: `${site.url}/images/brand/logo-bg.webp`,
    url: site.url,
    sameAs: [
      "https://open.spotify.com/intl-pt/artist/50fJZ4NozrlCPMpR2OGwuc",
      "https://music.apple.com/us/artist/selahbeat/1871727467",
      "https://music.amazon.com.br/artists/B0GJN2B63J/selahbeat",
      "https://www.deezer.com/br/artist/369368972",
      "https://music.youtube.com/@SelahBeat",
      "https://www.youtube.com/@SelahBeat",
      "https://www.instagram.com/selah.beat/",
    ],
  };

  return (
    <html lang="pt-BR">
      <body>
        <a className="skip-link" href="#conteudo">
          Pular para o conteúdo
        </a>
        <JsonLd data={musicGroupSchema} />
        <SiteChrome>{children}</SiteChrome>
        <AnalyticsScripts />
      </body>
    </html>
  );
}
