import { Users, UserCheck, UserMinus, Clock, BarChart3, TrendingUp } from 'lucide-react'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card'; import { createMemberManagementApi } from '@kit/member-management/api'; import { CmsPageShell } from '~/components/cms-page-shell'; import { StatsCard } from '~/components/stats-card'; import { StatsBarChart, StatsPieChart } from '~/components/stats-charts'; import { AccountNotFound } from '~/components/account-not-found'; interface PageProps { params: Promise<{ account: string }>; } export default async function MemberStatisticsPage({ params }: PageProps) { const { account } = await params; const client = getSupabaseServerClient(); const { data: acct } = await client .from('accounts') .select('id') .eq('slug', account) .single(); if (!acct) return ; const api = createMemberManagementApi(client); const stats = await api.getMemberStatistics(acct.id); const statusChartData = [ { name: 'Aktiv', value: stats.active ?? 0 }, { name: 'Inaktiv', value: stats.inactive ?? 0 }, { name: 'Ausstehend', value: stats.pending ?? 0 }, { name: 'Ausgetreten', value: stats.resigned ?? 0 }, ]; return ( } /> } /> } /> } /> Mitglieder nach Status Verteilung ); }