import Link from "next/link"; import { prisma } from "@/lib/prisma"; import { BackLink } from "@/components/back-link"; import { ConfirmForm } from "@/components/confirm-form"; import { formatPrice, formatDate } from "@/lib/format"; import { deleteDiscountCodeAction } from "../actions"; import { getLocale } from "@/i18n/locale"; import { getDictionary } from "@/i18n/get-dictionary"; export default async function AdminGutscheinePage(props: PageProps<"/admin/gutscheine">) { const t = getDictionary(await getLocale()); const { error } = await props.searchParams; const codes = await prisma.discountCode.findMany({ orderBy: { createdAt: "desc" } }); return (

{t.adminVouchersPage.title}

{t.adminVouchersPage.newVoucher}
{error ? (

{error}

) : null}
{codes.map((code) => ( ))}
{t.adminVouchersPage.colCode} {t.adminVouchersPage.colDiscount} {t.adminVouchersPage.colMinOrder} {t.adminVouchersPage.colMinQuantity} {t.adminVouchersPage.colUsage} {t.adminVouchersPage.colValidity} {t.adminVouchersPage.colStatus}
{code.code} {code.type === "PERCENT" ? `${code.value} %` : formatPrice(code.value)} {code.minOrderCents > 0 ? formatPrice(code.minOrderCents) : "—"} {code.minQuantity !== null ? code.minQuantity : "—"} {code.usedCount} {code.maxUses !== null ? ` / ${code.maxUses}` : ""} {code.validFrom ? formatDate(code.validFrom) : t.adminVouchersPage.immediately} –{" "} {code.validUntil ? formatDate(code.validUntil) : t.adminVouchersPage.unlimited} {code.isActive ? ( {t.adminVouchersPage.statusActive} ) : ( {t.adminVouchersPage.statusInactive} )}
{t.adminVouchersPage.edit}
{codes.length === 0 ?

{t.adminVouchersPage.noVouchersYet}

: null}
); }