import Link from "next/link"; import { notFound } from "next/navigation"; import { getTranslations } from "next-intl/server"; import { ContentCard } from "@/components/public/ui"; import { prisma } from "@/lib/prisma"; export const revalidate = 300; function formatDate(d: Date | null | undefined): string { return d ? d.toISOString().slice(0, 19).replace("T", " ") : ""; } export default async function RadioGiveawayDetailPage({ params, }: { params: Promise<{ id: string }>; }) { const { id } = await params; await getTranslations("pages.radioGiveaways"); let giveawayId: bigint; try { giveawayId = BigInt(id); } catch { notFound(); } const giveaway = await prisma.radioGiveaways .findUnique({ where: { id: giveawayId } }) .catch(() => null); if (!giveaway) notFound(); const active = giveaway.isActive ? "Active" : "Ended"; const prizeStr = giveaway.prize || (giveaway.prizeAmount > 0 ? `${giveaway.prizeAmount} ${giveaway.prizeCurrency || "credits"}` : null); return (

← Back to giveaways

{giveaway.description ? ( ) : null} {prizeStr ? ( ) : null}
Description {giveaway.description}
Prize {prizeStr}
Period {giveaway.startDate ? formatDate(giveaway.startDate) : "—"} {" — "} {giveaway.endDate ? formatDate(giveaway.endDate) : "ongoing"}
Created {formatDate(giveaway.createdAt) || ( — )}
Updated {formatDate(giveaway.updatedAt) || ( — )}
); }