import Game from '@/components/Game'; async function getDailyPuzzle() { try { // In a real app, use absolute URL or internal API call // Since we are server-side, we can call the DB directly or fetch the API // Calling API requires full URL (http://localhost:3000...), which is tricky in some envs // Better to call DB directly here or use a helper function shared with the API // But for simplicity, let's fetch the API if we can, or just use Prisma directly. // Using Prisma directly is better for Server Components. const { PrismaClient } = await import('@prisma/client'); const prisma = new PrismaClient(); const today = new Date().toISOString().split('T')[0]; let dailyPuzzle = await prisma.dailyPuzzle.findUnique({ where: { date: today }, include: { song: true }, }); if (!dailyPuzzle) { // Trigger generation logic (same as API) // Duplicating logic is bad, but for now it's quickest. // Ideally extract "getOrCreateDailyPuzzle" to a lib. const songsCount = await prisma.song.count(); if (songsCount > 0) { const skip = Math.floor(Math.random() * songsCount); const randomSong = await prisma.song.findFirst({ skip }); if (randomSong) { dailyPuzzle = await prisma.dailyPuzzle.create({ data: { date: today, songId: randomSong.id }, include: { song: true }, }); } } } if (!dailyPuzzle) return null; return { id: dailyPuzzle.id, audioUrl: `/uploads/${dailyPuzzle.song.filename}`, songId: dailyPuzzle.songId }; } catch (e) { console.error(e); return null; } } export default async function Home() { const dailyPuzzle = await getDailyPuzzle(); return ( ); }