import { asc } from "drizzle-orm"; import { getTranslations } from "next-intl/server"; import { createRadioRank, deleteRadioRank, updateRadioRank, } from "@/actions/admin-radio-extra"; import { StatusCard } from "@/components/admin/dashboard"; import { Button } from "@/components/ui/button"; import { db, RadioRanks } from "@/lib/db"; type Rank = { id: bigint; name: string; description: string | null; badgeCode: string | null; isActive: boolean; }; export default async function AdminRadioRanksPage() { const t = await getTranslations("pages.admin.radio"); let ranks: Rank[] = []; let dbError = false; try { ranks = await db .select({ id: RadioRanks.id, name: RadioRanks.name, description: RadioRanks.description, badgeCode: RadioRanks.badgeCode, isActive: RadioRanks.isActive, }) .from(RadioRanks) .orderBy(asc(RadioRanks.id)); } catch { dbError = true; ranks = []; } const activeCount = ranks.filter((r) => r.isActive).length; return (
{dbError ? (

{t("ranksForm.dbError")}

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

{t("ranksForm.addRank")}

{t("ranksForm.existing", { count: ranks.length })}

{ranks.length === 0 ? (
{t("ranksForm.noRanks")}
) : (
{ranks.map((r) => (
#{String(r.id)} {r.isActive ? t("ranksForm.activeLabel") : t("ranksForm.inactiveLabel")}
))}
)}
); }