import { Footer } from "@/components/layout/footer";
import { Navbar } from "@/components/layout/navbar";
import { getPublicChrome } from "@/services/public-content";
import { VisitorTracker } from "@/components/analytics/visitor-tracker";
import { getCurrentSession } from "@/lib/auth/session";
import { prisma } from "@/lib/db/prisma";

export const dynamic = "force-dynamic";

export default async function PublicLayout({ children }: { children: React.ReactNode }) {
  const [{ settings, socialLinks }, session] = await Promise.all([getPublicChrome(), getCurrentSession()]);
  const student = session?.user.role === "STUDENT" ? await prisma.student.findUnique({ where: { userId: session.user.id }, select: { class: { select: { name: true } } } }) : null;
  const unread = session?.user.role === "STUDENT" ? await prisma.notification.count({ where: { userId: session.user.id, readAt: null } }) : 0;
  return <><VisitorTracker/><Navbar websiteName={settings?.websiteName ?? "WEBKU"} role={session?.user.role} userName={session?.user.name} studentClass={student?.class.name} unread={unread}/>{children}<Footer websiteName={settings?.websiteName ?? "WEBKU"} tagline={settings?.tagline} footerText={settings?.footerText} socialLinks={socialLinks} /></>;
}
