import { getServerSession } from "../../api/auth/[...nextauth]/auth";
import { PrismaClient } from "@repo/db";
import { KursItem } from "../events/_components/item";

export default async () => {
	const prisma = new PrismaClient();
	const session = await getServerSession();
	if (!session) return null;
	const user = await prisma.user.findUnique({
		where: {
			id: session.user.id,
		},
	});
	if (!user) return null;

	const events = await prisma.event.findMany({
		include: {
			appointments: {
				where: {
					appointmentDate: {
						gte: new Date(),
					},
				},
			},
			participants: {
				where: {
					userId: user.id,
				},
			},
		},
	});
	const userAppointments = await prisma.eventAppointment.findMany({
		where: {
			Participants: {
				some: {
					userId: user.id,
				},
			},
		},
	});

	return (
		<div className="grid grid-cols-6 gap-4">
			{events.map((event) => {
				return (
					<KursItem
						selectedAppointments={userAppointments}
						user={user}
						event={event}
						key={event.id}
					/>
				);
			})}
		</div>
	);
};
