import Link from "next/link"; import { getTranslations } from "next-intl/server"; import { ContentCard, EmptyState } from "@/components/public/ui"; import { formatDate } from "@/lib/format-date"; import { prisma } from "@/lib/prisma"; export const revalidate = 300; 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, "date", "")} — ${g.endDate ? formatDate(g.endDate, "date", "") : "ongoing"}` : t("dateUnknown")}

); })}
)}
); }