setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $e) {
$dbError = $e->getMessage();
}
// Safe query functions
function safeQuery($pdo, $sql, $default = 0) {
try { return $pdo->query($sql)->fetchColumn() ?: $default; }
catch (Exception $e) { return $default; }
}
function safeQueryAll($pdo, $sql) {
try { return $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC); }
catch (Exception $e) { return []; }
}
// Get stats
$stats = [
'servers' => safeQuery($pdo, "SELECT COUNT(*) FROM admin.mta_servers WHERE status='Activated'"),
'domains' => safeQuery($pdo, "SELECT COUNT(*) FROM admin.domains"),
'brain_tests' => safeQuery($pdo, "SELECT COUNT(*) FROM admin.brain_test_results"),
'brain_winners' => safeQuery($pdo, "SELECT COUNT(*) FROM admin.brain_winners"),
'ai_providers' => safeQuery($pdo, "SELECT COUNT(*) FROM admin.ai_providers WHERE status='active'"),
'clicks_today' => safeQuery($pdo, "SELECT COUNT(*) FROM actions.clicks WHERE action_date >= CURRENT_DATE"),
'leads_month' => safeQuery($pdo, "SELECT COUNT(*) FROM actions.leads WHERE action_date >= DATE_TRUNC('month', CURRENT_DATE)"),
];
// Get recent brain results
$brainResults = safeQueryAll($pdo, "SELECT * FROM admin.brain_test_results ORDER BY id DESC LIMIT 5");
$brainWinners = safeQueryAll($pdo, "SELECT * FROM admin.brain_winners ORDER BY id DESC LIMIT 5");
$aiProviders = safeQueryAll($pdo, "SELECT * FROM admin.ai_providers ORDER BY id LIMIT 10");
// n8n workflows status
$n8nWorkflows = [];
try {
$db = new SQLite3('/opt/n8n/.n8n/database.sqlite');
$result = $db->query("SELECT id, name, active FROM workflow_entity ORDER BY name");
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$n8nWorkflows[] = $row;
}
} catch (Exception $e) {}
?>
Control Hub - WEVADS
🖥️
= $stats['servers'] ?>
Serveurs Actifs
🌐
= number_format($stats['domains']) ?>
Domaines
🧠
= $stats['brain_tests'] ?>
Brain Tests
🏆
= $stats['brain_winners'] ?>
Configs Gagnantes
🤖
= $stats['ai_providers'] ?>
AI Providers
📊
= number_format($stats['clicks_today']) ?>
Clicks Today
n8n Workflows (= count($n8nWorkflows) ?>)
= htmlspecialchars($wf['name']) ?>
= $wf['active'] ? 'Active' : 'Inactive' ?>
AI Providers
| Provider | Model | Status | Requests |
| = htmlspecialchars($p['name'] ?? 'N/A') ?> |
= htmlspecialchars($p['model'] ?? 'N/A') ?> |
= htmlspecialchars($p['status'] ?? 'N/A') ?> |
= $p['total_requests'] ?? 0 ?> |