import Game from '@/components/Game'; import NewsSection from '@/components/NewsSection'; import { getOrCreateDailyPuzzle } from '@/lib/dailyPuzzle'; import Link from 'next/link'; import { PrismaClient } from '@prisma/client'; import { notFound } from 'next/navigation'; export const dynamic = 'force-dynamic'; const prisma = new PrismaClient(); interface PageProps { params: Promise<{ genre: string }>; } export default async function GenrePage({ params }: PageProps) { const { genre } = await params; const decodedGenre = decodeURIComponent(genre); // Check if genre exists and is active const currentGenre = await prisma.genre.findUnique({ where: { name: decodedGenre } }); if (!currentGenre || !currentGenre.active) { notFound(); } const dailyPuzzle = await getOrCreateDailyPuzzle(decodedGenre); const genres = await prisma.genre.findMany({ where: { active: true }, orderBy: { name: 'asc' } }); const specials = await prisma.special.findMany({ orderBy: { name: 'asc' } }); const now = new Date(); const activeSpecials = specials.filter(s => { const isStarted = !s.launchDate || s.launchDate <= now; const isEnded = s.endDate && s.endDate < now; return isStarted && !isEnded; }); const upcomingSpecials = specials.filter(s => { return s.launchDate && s.launchDate > now; }); return ( <>