import { PublicLive } from "@/components/public-live"
import { PublicIndividualLive } from "@/components/public-individual-live"

// Server-side, IKKE nettleser-fetch -- samme mønster som app/logg-inn/
// page.tsx og generateMetadata i app/t/[id]/page.tsx (peker direkte på
// API-et, går IKKE gjennom next.config.mjs sin rewrites()). Avgjør
// format_type FØR noe rendres, slik at en individuell turnering aldri
// (heller ikke kortvarig) viser Cup-formatets side -- se CHANGELOG.md
// 2026-08-21 for hele bakgrunnen (tournament-router.tsx sin tilsvarende
// klient-side feil, som denne siden bevisst unngår ved å avgjøre server-
// side i stedet).
const API_ORIGIN = process.env.TEECUP_API_ORIGIN || "http://localhost:8000"

export default async function PublicLivePage({
  params,
  searchParams,
}: {
  params: Promise<{ id: string }>
  searchParams: Promise<{ code?: string }>
}) {
  const { id } = await params
  const { code } = await searchParams

  let formatType = "team"
  try {
    const url = `${API_ORIGIN}/public/tournaments/${id}${code ? `?code=${encodeURIComponent(code)}` : ""}`
    const res = await fetch(url, { cache: "no-store" })
    if (res.ok) {
      const data: { format_type?: string } = await res.json()
      formatType = data.format_type === "individual" ? "individual" : "team"
    }
  } catch {
    // Klarte ikke å avgjøre format server-side -- fall tilbake til Cup-
    // siden sin egen feilhåndtering (samme "trygg fallback"-prinsipp som
    // resten av appen), ikke en hard krasj her.
  }

  if (formatType === "individual") {
    return <PublicIndividualLive tournamentId={id} code={code} />
  }
  return <PublicLive tournamentId={id} code={code} />
}
