34 lines
900 B
TypeScript
34 lines
900 B
TypeScript
import { prisma } from "@/lib/prisma";
|
|
import AdminYoga from "./yoga-admin";
|
|
|
|
export default async function YogaAdminPage() {
|
|
const [tiers, members, recentAttendances] = await Promise.all([
|
|
prisma.yogaTier.findMany({ orderBy: { numberOfSessions: "asc" } }),
|
|
prisma.user.findMany({
|
|
where: { isYoga: true },
|
|
orderBy: { name: "asc" },
|
|
include: {
|
|
yoga: {
|
|
include: {
|
|
attendances: { orderBy: { date: "desc" }, take: 5 },
|
|
},
|
|
},
|
|
},
|
|
}),
|
|
prisma.yogaAttendance.findMany({
|
|
orderBy: { date: "desc" },
|
|
take: 10,
|
|
include: {
|
|
profile: {
|
|
include: { user: { select: { name: true } } },
|
|
},
|
|
},
|
|
}),
|
|
]);
|
|
|
|
const safeMembers = members.map(({ password, ...m }) => m);
|
|
|
|
return (
|
|
<AdminYoga tiers={tiers} members={safeMembers} recentAttendances={recentAttendances} />
|
|
);
|
|
} |