import React from 'react'; import { db } from '@/lib/db'; import { format } from 'date-fns'; import { tr } from 'date-fns/locale'; import { CreditCard, Search, Filter, Download, Calendar } from 'lucide-react'; import Link from 'next/link'; import { cookies } from 'next/headers'; import { redirect } from 'next/navigation'; async function getMerchantTransactions(identifier: string) { const isUUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(identifier); const mQueryText = isUUID ? 'SELECT id FROM merchants WHERE id = $1 LIMIT 1' : 'SELECT id FROM merchants WHERE short_id = $1 LIMIT 1'; const mResult = await db.query(mQueryText, [identifier]); const merchant = mResult.rows[0]; if (!merchant) return null; const tResult = await db.query( 'SELECT * FROM transactions WHERE merchant_id = $1 ORDER BY created_at DESC', [merchant.id] ); return tResult.rows; } export default async function MerchantTransactionsPage(props: { params: Promise<{ id: string }>; }) { const resolvedParams = await props.params; const identifier = resolvedParams.id; const transactions = await getMerchantTransactions(identifier); const cookieStore = await cookies(); if (!transactions) return
Tüm ödeme hareketleri
| İşlem No | Müşteri / Referans | Tarih | Tutar | Durum | Gateway |
|---|---|---|---|---|---|
|
#{t.stripe_pi_id?.slice(-8).toUpperCase() || 'EXT-' + t.id.slice(0, 4)}
{t.id.slice(0, 8)}
|
{t.customer_name || t.source_ref_id || 'SİSTEM'}
{t.customer_phone || 'İletişim Yok'}
|
|
{Number(t.amount).toLocaleString('tr-TR', { minimumFractionDigits: 2 })} ₺ | {t.status === 'succeeded' ? 'Başarılı' : t.status === 'failed' ? 'Hatalı' : 'Bekliyor'} | {t.provider || 'STRIPE'} |
Henüz bir işlem kaydedilmemiş