Files
juanitosport/app/member/yoga/page.tsx
T

43 lines
1.1 KiB
TypeScript

import { getServerSession } from "next-auth";
import { authOptions } from "@/lib/auth";
import { prisma } from "@/lib/prisma";
import { redirect } from "next/navigation";
import YogaDashboard from "./dashboard";
export default async function YogaPage() {
const session = await getServerSession(authOptions);
if (!session?.user) redirect("/login");
const user = await prisma.user.findUnique({
where: { id: session.user.id },
include: {
yoga: {
include: {
attendances: { orderBy: { date: "desc" } },
},
},
},
});
if (!user) redirect("/login");
const messages = await prisma.message.findMany({
orderBy: { createdAt: "desc" },
where: {
OR: [{ category: null }, { category: "general" }, { category: "yoga" }],
},
include: {
readBy: { where: { userId: user.id } },
},
});
const unreadCount = messages.filter((m) => m.readBy.length === 0).length;
return (
<YogaDashboard
user={user}
messages={messages.map((m) => ({ ...m, isRead: m.readBy.length > 0 }))}
unreadCount={unreadCount}
/>
);
}