import { GraduationCap, Users, Calendar, TrendingUp, BarChart3, } from 'lucide-react'; import { getTranslations } from 'next-intl/server'; import { createCourseManagementApi } from '@kit/course-management/api'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card'; import { AccountNotFound } from '~/components/account-not-found'; import { CmsPageShell } from '~/components/cms-page-shell'; import { StatsCard } from '~/components/stats-card'; import { StatsBarChart, StatsPieChart } from '~/components/stats-charts'; interface PageProps { params: Promise<{ account: string }>; } export default async function CourseStatisticsPage({ params }: PageProps) { const { account } = await params; const client = getSupabaseServerClient(); const t = await getTranslations('courses'); const { data: acct } = await client .from('accounts') .select('id') .eq('slug', account) .single(); if (!acct) return ; const api = createCourseManagementApi(client); const stats = await api.getStatistics(acct.id); const statusChartData = [ { name: t('stats.active'), value: stats.openCourses }, { name: t('stats.completed'), value: stats.completedCourses }, { name: t('stats.total'), value: stats.totalCourses }, ]; return (
} /> } /> } /> } />
{t('stats.utilization')} {t('stats.distribution')}
); }