import Link from "next/link"; import { getTranslations } from "next-intl/server"; import { ContentCard, EmptyState } 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, 10) : ""; } export default async function RadioGiveawaysPage() { const t = await getTranslations("pages.radioGiveaways"); const giveaways = await prisma.radioGiveaways .findMany({ where: { isActive: true }, orderBy: { startDate: "desc" }, take: 50, select: { id: true, title: true, prize: true, prizeAmount: true, prizeCurrency: true, startDate: true, endDate: true, }, }) .catch(() => []); return (
{giveaways.length === 0 ? ( {t("empty")} ) : (
{giveaways.map((g) => { const id = g.id.toString(); const prizeStr = g.prize || (g.prizeAmount > 0 ? `${g.prizeAmount} ${g.prizeCurrency || "credits"}` : null); return (

🎁{" "} {g.title || t("giveawayLabel", { id })}

{prizeStr ? (

Prize: {prizeStr}

) : null}

{g.startDate ? `${formatDate(g.startDate)} — ${g.endDate ? formatDate(g.endDate) : "ongoing"}` : t("dateUnknown")}

); })}
)}
); }