From 33dcf9bb4a82d667c14cfffdeafcc5321a268467 Mon Sep 17 00:00:00 2001
From: dmitriylaukhin
Date: Fri, 8 May 2026 14:09:59 +0500
Subject: [PATCH] Add total user balances stat card to admin dashboard
---
src/app/admin/dashboard/page.tsx | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/app/admin/dashboard/page.tsx b/src/app/admin/dashboard/page.tsx
index 894ea79..e30836f 100644
--- a/src/app/admin/dashboard/page.tsx
+++ b/src/app/admin/dashboard/page.tsx
@@ -16,6 +16,7 @@ export default async function AdminDashboard() {
homeworkPending,
homeworkTotal,
progressTotal,
+ balanceAggregate,
] = await Promise.all([
prisma.user.count({ where: { role: "student" } }),
prisma.user.count({ where: { role: "student", createdAt: { gte: monthAgo } } }),
@@ -30,8 +31,11 @@ export default async function AdminDashboard() {
prisma.homeworkSubmission.count({ where: { feedbacks: { none: {} } } }),
prisma.homeworkSubmission.count(),
prisma.lessonProgress.count(),
+ prisma.balanceTransaction.aggregate({ _sum: { amount: true } }),
]);
+ const totalBalance = Number(balanceAggregate._sum.amount ?? 0);
+
// Recent enrollments
const recentEnrollments = await prisma.courseEnrollment.findMany({
orderBy: { enrolledAt: "desc" },
@@ -58,7 +62,7 @@ export default async function AdminDashboard() {
{/* Stats grid */}
-
+
0}
href="/curator/homework"
/>
+
@@ -179,7 +189,7 @@ function StatCard({
href,
}: {
label: string;
- value: number;
+ value: number | string;
sub?: string;
subAccent?: boolean;
href?: string;