import React from 'react'; import { supabaseAdmin } from '@/lib/supabase-admin'; 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 query = supabaseAdmin .from('merchants') .select('id') if (isUUID) { query.eq('id', identifier); } else { query.eq('short_id', identifier); } const { data: merchant } = await query.single(); if (!merchant) return null; const { data, error } = await supabaseAdmin .from('transactions') .select('*') .eq('merchant_id', merchant.id) .order('created_at', { ascending: false }); if (error) return null; return data; } 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ş