import { prisma } from "@/lib/prisma" import Link from "next/link" import Navigation from "@/components/Navigation" export const dynamic = "force-dynamic" export default async function Home() { // Fetch top 10 players by Elo rating const topPlayers = await prisma.player.findMany({ orderBy: { currentElo: "desc" }, take: 10, include: { partnershipStats: true, partnershipStats2: true, }, }) // Fetch most recent tournament const mostRecentTournament = await prisma.event.findFirst({ where: { eventType: "tournament", status: { not: "draft" } }, orderBy: { eventDate: "desc" }, include: { matches: { include: { player1P1: true, player1P2: true, player2P1: true, player2P2: true, }, orderBy: { playedAt: "desc" }, }, }, }) // Fetch club president (first user with club_admin role) const clubPresident = await prisma.user.findFirst({ where: { role: "club_admin" }, select: { name: true, email: true }, }) // Calculate win rates for top players const playersWithWinRates = topPlayers.map((player) => ({ ...player, winRate: player.gamesPlayed > 0 ? (player.wins / player.gamesPlayed) * 100 : 0, })) return (
{/* Header Section */}

EuchreCamp

Track your Euchre games, tournaments, and partnership performance with our comprehensive tournament management system.

Sign In Create Account
{/* Top 10 Players Section */}

Top 10 Players

{playersWithWinRates.map((player, index) => ( ))}
Rank Player Elo Rating Games Win Rate
{index + 1} {player.name} {player.currentElo} {player.gamesPlayed} {player.gamesPlayed > 0 ? `${player.winRate.toFixed(1)}%` : "N/A"}
View Full Rankings →
{/* Most Recent Tournament Section */} {mostRecentTournament && (

Most Recent Tournament

{mostRecentTournament.name}

{mostRecentTournament.eventDate && (

{new Date(mostRecentTournament.eventDate).toLocaleDateString()}

)}

Status: {mostRecentTournament.status}

{/* Tournament Matches */}

Matches ({mostRecentTournament.matches.length})

{mostRecentTournament.matches.map((match) => (
{match.player1P1?.name} & {match.player1P2?.name}
{match.team1Score}
vs
{match.player2P1?.name} & {match.player2P2?.name}
{match.team2Score}
{match.playedAt && ( {new Date(match.playedAt).toLocaleDateString()} at{' '} {new Date(match.playedAt).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })} )}
))}
)} {/* Club President Section */}

Club Information

Club President

{clubPresident?.name || clubPresident?.email || "Not assigned"}

) }