import type { Metadata } from "next"; import { eq } from "drizzle-orm"; import { redirect } from "next/navigation"; import { verifySession, getCurrentUser } from "@/lib/session"; import { appDb, schema } from "@/lib/appdb"; import { PUAN_TURLERI } from "@/lib/db"; import type { RaporSonuc } from "@/lib/ai/rapor"; import type { RaporParams } from "@/lib/rapor-havuzu"; import { YazdirButonu } from "./yazdir-butonu"; export const metadata: Metadata = { title: "Tercih Raporu (Yazdır) — KolayTercih", }; const DILIM_LABEL: Record = { hayal: "Hayal", dengeli: "Dengeli", garanti: "Garanti", }; export default async function YazdirPage() { await verifySession("/rapor/yazdir"); const user = await getCurrentUser(); if (!user) redirect("/giris"); if (!user.hasPaket) redirect("/paket"); const satir = await appDb.query.reports.findFirst({ where: eq(schema.reports.userId, user.id), }); if (!satir?.result) redirect("/sonuc"); const rapor = satir.result as RaporSonuc; const params = satir.params as RaporParams; const tarih = new Date(satir.updatedAt).toLocaleDateString("tr-TR", { day: "numeric", month: "long", year: "numeric", }); return (

KolayTercih — 24 Tercihlik Kişisel Liste ve Risk Raporu

Başarı sıralaması: {params.sira.toLocaleString("tr-TR")} · Puan türü: {PUAN_TURLERI[params.tur]} {params.il ? ` · İl: ${params.il}` : ""} · {tarih}

Genel değerlendirme

{rapor.genelDegerlendirme}

{rapor.tercihler.map((t) => { const p = rapor.programlar[t.programId]; return ( ); })}
# Program / Üniversite Dilim Gerekçe Risk notu Trend
{t.sira} {p?.isim}
{p?.universite} · {p?.il ?? "—"}
{DILIM_LABEL[t.dilim]} {t.gerekce} {t.riskNotu} {t.trendOzeti}
); }