'N/A',
'active_deals' => 'N/A',
'volume_ton' => 'N/A',
'pending_disputes' => 'N/A',
];
try {
$pdo = db();
// Total Users
$stmt = $pdo->query('SELECT COUNT(*) FROM users');
$stats['total_users'] = $stmt->fetchColumn();
// Active Deals
$stmt = $pdo->query("SELECT COUNT(*) FROM orders WHERE status IN ('PENDING_CONFIRMATION', 'AWAITING_PAYMENT', 'AWAITING_SELLER_CONFIRMATION')");
$stats['active_deals'] = $stmt->fetchColumn();
// Volume (TON)
$stmt = $pdo->query("SELECT SUM(amount_crypto) FROM orders WHERE currency = 'TON' AND status = 'COMPLETED'");
$volume = $stmt->fetchColumn();
$stats['volume_ton'] = $volume ? round($volume, 2) : 0;
// Pending Disputes
$stmt = $pdo->query("SELECT COUNT(*) FROM disputes WHERE status = 'OPEN'");
$stats['pending_disputes'] = $stmt->fetchColumn();
// Chart Data: Deals Over Time (Last 7 Days)
$deals_chart_data = $pdo->query(
"SELECT DATE(created_at) as date, COUNT(*) as count
FROM orders
WHERE created_at >= CURDATE() - INTERVAL 7 DAY
GROUP BY DATE(created_at)
ORDER BY date ASC"
)->fetchAll(PDO::FETCH_ASSOC);
// Chart Data: Volume by Currency
$volume_chart_data = $pdo->query(
"SELECT ad.currency, SUM(o.amount_crypto) as total_volume
FROM orders o
JOIN ads ad ON o.ad_id = ad.id
WHERE o.status = 'COMPLETED'
GROUP BY ad.currency"
)->fetchAll(PDO::FETCH_ASSOC);
// Recent Activity
$stmt = $pdo->query(
"SELECT a.action, a.details, a.created_at, u.nickname
FROM audit_log a
LEFT JOIN users u ON a.user_id = u.id
ORDER BY a.created_at DESC
LIMIT 10"
);
$recent_activity = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
error_log($e->getMessage());
// Stats will show 'N/A' on error
$recent_activity = [];
$deals_chart_data = [];
$volume_chart_data = [];
}
?>