import Link from 'next/link'; import { createRadioRank, deleteRadioRank, updateRadioRank, } from '@/actions/admin-radio-extra'; import { prisma } from '@/lib/prisma'; import { StatusCard } from '@/components/admin/dashboard'; import { Medal } from 'lucide-react'; export const dynamic = 'force-dynamic'; type Rank = { id: bigint; name: string; description: string | null; badgeCode: string | null; isActive: boolean; }; export default async function AdminRadioRanksPage() { let ranks: Rank[] = []; let dbError = false; try { ranks = await prisma.radioRanks.findMany({ select: { id: true, name: true, description: true, badgeCode: true, isActive: true, }, orderBy: { id: 'asc' }, }); } catch { dbError = true; ranks = []; } const activeCount = ranks.filter((r) => r.isActive).length; return (

Radio Ranks

DJ / staff ranks assignable on radio applications.

{dbError ? (

Could not load ranks (database unavailable).

) : (
0 ? 'ok' : 'neutral'} icon="✅" />
)}

Add rank

Existing ranks ({ranks.length})

{ranks.length === 0 ? (
No ranks yet — add one above.
) : (
{ranks.map((r) => (
#{String(r.id)} {r.isActive ? 'active' : 'inactive'}
))}
)}
); }