import type { Metadata } from "next"; import { headers } from "next/headers"; import { auth } from "@/lib/auth/server"; import { db, supportTickets, eq, desc } from "@epicure/db"; import { SupportManager } from "@/components/support/support-manager"; import { getMessages } from "@/lib/i18n/server"; import { getPublicUrl } from "@/lib/storage"; import { FEATURE_DEFINITIONS } from "@/lib/feature-flags"; export const metadata: Metadata = {}; export default async function SupportPage({ searchParams, }: { searchParams: Promise<{ upgrade?: string }>; }) { const session = await auth.api.getSession({ headers: await headers() }); if (!session) return null; const m = getMessages((session.user as { locale?: string }).locale); const { upgrade } = await searchParams; const upgradeFeature = FEATURE_DEFINITIONS.find((f) => f.key === upgrade); const prefill = upgradeFeature ? { type: "suggestion" as const, title: `Interested in upgrading for: ${upgradeFeature.label}` } : undefined; const rows = await db.query.supportTickets.findMany({ where: eq(supportTickets.userId, session.user.id), orderBy: desc(supportTickets.createdAt), with: { attachments: true }, }); return (

{m.support.title}

{m.support.subtitle}

({ id: r.id, type: r.type, title: r.title, description: r.description, status: r.status, giteaIssueUrl: r.giteaIssueUrl, createdAt: r.createdAt.toISOString(), attachments: r.attachments.map((a) => ({ id: a.id, contentType: a.contentType, url: getPublicUrl(a.storageKey), })), }))} />
); }