import { prisma } from '@/lib/db';
import { requireUser } from '@/lib/auth';
import { Head } from '@/components/desk/Head';
import { BuyCredits } from '@/components/BuyCredits';
import { planById } from '@/lib/plans';
const ST: Record<string, string> = { pending: 'Bekliyor', succeeded: 'Alındı', failed: 'Başarısız', refunded: 'İade' };
export default async function Odemeler({ searchParams }: { searchParams: Promise<{ odeme?: string }> }) {
  const u = await requireUser(); const { odeme } = await searchParams;
  const pays = await prisma.payment.findMany({ where: { userId: u.id }, orderBy: { createdAt: 'desc' } });
  return (<>
    <Head tag="Kredi ve ödemeler" title={<>{u.credits} video krediniz var</>} />
    {odeme === 'tamam' && <p className="bg-signal-soft px-4 py-2.5 text-[13.5px]">Ödemeniz alındı; kredileriniz onay gelir gelmez eklenir.</p>}
    <BuyCredits />
    <p className="px-4 py-2 text-[12px] text-ink-soft">KDV dahil, tek seferlik. Krediler süresizdir; üretim tamamlanmazsa kredi iade edilir.</p>
    <div className="mt-2 border-t border-ink/15 px-4 pb-1 pt-3"><div className="tag">Ödeme geçmişi</div></div>
    {pays.length ? (
      <table className="w-full text-left text-[13px]">
        <tbody>{pays.map((p) => (
          <tr key={p.id} className="border-b border-ink/10 [&>td]:px-4 [&>td]:py-2">
            <td className="num text-ink-soft">{p.createdAt.toLocaleDateString('tr-TR', { timeZone: 'Europe/Istanbul' })}</td>
            <td>{p.plan === 'admin' ? 'Ücretsiz tanım' : planById(p.plan)?.name || p.plan} · {p.credits} kredi</td>
            <td className="num text-right">{(p.amount / 100).toLocaleString('tr-TR', { style: 'currency', currency: p.currency })}</td>
            <td className="text-right">{ST[p.status] || p.status}</td>
          </tr>))}</tbody>
      </table>
    ) : <p className="px-4 py-3 text-[13.5px] text-ink-soft">Henüz ödeme yok.</p>}
  </>);
}
