import { eq } from "drizzle-orm"; import Link from "next/link"; import { notFound } from "next/navigation"; import { getTranslations } from "next-intl/server"; import { ContentCard } from "@/components/public/ui"; import { db, RadioGiveaways } from "@/lib/db"; import { formatDate } from "@/lib/format-date"; 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 db .select() .from(RadioGiveaways) .where(eq(RadioGiveaways.id, giveawayId)) .limit(1) .catch(() => []); 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, "datetime-seconds", "") : "—"} {" — "} {giveaway.endDate ? formatDate(giveaway.endDate, "datetime-seconds", "") : "ongoing"}
Created {formatDate(giveaway.createdAt, "datetime-seconds", "") || ( — )}
Updated {formatDate(giveaway.updatedAt, "datetime-seconds", "") || ( — )}
); }