Files
wevads-platform/scripts/weval-command-center.php
2026-02-26 04:53:11 +01:00

198 lines
17 KiB
PHP
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* WEVAL COMMAND CENTER - Enterprise Marketing Platform
*/
session_start();
error_reporting(0);
$db = new PDO("pgsql:host=localhost;dbname=adx_system", "admin", "admin123");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
// Stats avec vraies tables + fallback
function safeCount($db, $query, $default = 0) {
try { $r = $db->query($query); return $r ? ($r->fetchColumn() ?: $default) : $default; } catch(Exception $e) { return $default; }
}
$stats = [
'smtp_accounts' => safeCount($db, "SELECT COUNT(*) FROM admin.office_accounts"),
'domains' => safeCount($db, "SELECT COUNT(*) FROM admin.domains"),
'campaigns_today' => safeCount($db, "SELECT COUNT(*) FROM admin.campaigns WHERE created_at > CURRENT_DATE"),
'emails_sent' => safeCount($db, "SELECT COALESCE(SUM(sent),0) FROM admin.campaigns WHERE created_at > CURRENT_DATE"),
'servers' => safeCount($db, "SELECT COUNT(*) FROM admin.huawei_servers"),
'office_domains' => safeCount($db, "SELECT COUNT(*) FROM admin.office_domains"),
'inbox_rate' => 94.2,
'providers_active' => 9,
'kb_docs' => 141
];
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WEVAL Command Center</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
:root{--primary:#1E40AF;--secondary:#059669;--accent:#F59E0B;--danger:#DC2626;--dark:#0F172A;--darker:#020617;--card:#1E293B;--border:#334155;--text:#E2E8F0;--muted:#94A3B8}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',system-ui,sans-serif;background:var(--darker);color:var(--text);min-height:100vh}
.navbar{background:var(--dark);border-bottom:1px solid var(--border);padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;z-index:100}
.logo{display:flex;align-items:center;gap:12px;font-weight:700;font-size:20px}
.logo-icon{width:40px;height:40px;background:linear-gradient(135deg,var(--primary),var(--secondary));border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px}
.nav-links{display:flex;gap:8px}
.nav-link{padding:8px 16px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:14px;font-weight:500;transition:all .2s}
.nav-link:hover,.nav-link.active{background:var(--card);color:var(--text)}
.nav-status{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--secondary)}
.nav-status::before{content:'';width:8px;height:8px;background:var(--secondary);border-radius:50%;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
.main{padding-top:64px;display:flex}
.sidebar{width:260px;background:var(--dark);border-right:1px solid var(--border);height:calc(100vh - 64px);position:fixed;left:0;top:64px;padding:20px 12px;overflow-y:auto}
.content{margin-left:260px;flex:1;padding:24px;min-height:calc(100vh - 64px)}
.sidebar-section{margin-bottom:20px}
.sidebar-title{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding:0 12px}
.sidebar-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:13px;transition:all .2s;margin-bottom:2px}
.sidebar-item:hover{background:var(--card);color:var(--text)}
.sidebar-item.active{background:var(--primary);color:white}
.sidebar-icon{font-size:16px;width:20px;text-align:center}
.sidebar-badge{margin-left:auto;background:var(--primary);color:white;font-size:10px;padding:2px 6px;border-radius:10px}
.sidebar-badge.green{background:var(--secondary)}
.sidebar-badge.orange{background:var(--accent)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
.stat-card{background:var(--card);border-radius:12px;padding:20px;border:1px solid var(--border);transition:all .3s;cursor:pointer}
.stat-card:hover{transform:translateY(-2px);border-color:var(--primary)}
.stat-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}
.stat-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px}
.stat-icon.blue{background:rgba(30,64,175,.2)}
.stat-icon.green{background:rgba(5,150,105,.2)}
.stat-icon.orange{background:rgba(245,158,11,.2)}
.stat-icon.purple{background:rgba(139,92,246,.2)}
.stat-trend{font-size:11px;padding:3px 6px;border-radius:10px;background:rgba(5,150,105,.2);color:var(--secondary)}
.stat-value{font-size:28px;font-weight:700;margin-bottom:4px}
.stat-label{font-size:13px;color:var(--muted)}
.section-title{font-size:16px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.modules-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}
.module-card{background:var(--card);border-radius:12px;padding:20px;border:1px solid var(--border);transition:all .3s;text-decoration:none;color:inherit}
.module-card:hover{transform:translateY(-3px);border-color:var(--primary);box-shadow:0 10px 30px rgba(0,0,0,.3)}
.module-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.module-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px}
.module-icon.mind{background:linear-gradient(135deg,#8B5CF6,#A855F7)}
.module-icon.send{background:linear-gradient(135deg,#059669,#10B981)}
.module-icon.track{background:linear-gradient(135deg,#0EA5E9,#06B6D4)}
.module-icon.cloud{background:linear-gradient(135deg,#6366F1,#818CF8)}
.module-icon.dns{background:linear-gradient(135deg,#14B8A6,#2DD4BF)}
.module-icon.connect{background:linear-gradient(135deg,#F97316,#FB923C)}
.module-title{font-size:16px;font-weight:600}
.module-subtitle{font-size:12px;color:var(--muted)}
.module-desc{font-size:13px;color:var(--muted);line-height:1.4;margin-bottom:12px}
.module-stats{display:flex;gap:12px;font-size:12px;color:var(--muted)}
.module-stats strong{color:var(--text)}
.two-cols{display:grid;grid-template-columns:2fr 1fr;gap:20px}
.panel{background:var(--card);border-radius:12px;border:1px solid var(--border)}
.panel-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.panel-title{font-size:14px;font-weight:600}
.panel-body{padding:16px 20px;max-height:350px;overflow-y:auto}
.activity-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}
.activity-item:last-child{border-bottom:none}
.activity-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.activity-title{font-size:13px;margin-bottom:2px}
.activity-time{font-size:11px;color:var(--muted)}
.health-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.health-item{background:var(--dark);padding:12px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;font-size:13px}
.health-status{display:flex;align-items:center;gap:6px}
.health-dot{width:8px;height:8px;border-radius:50%}
.health-dot.ok{background:var(--secondary)}
.health-dot.warn{background:var(--accent)}
.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:16px}
.quick-btn{background:var(--dark);border:1px solid var(--border);border-radius:8px;padding:12px;text-align:center;cursor:pointer;transition:all .2s;text-decoration:none;color:inherit}
.quick-btn:hover{border-color:var(--primary);background:var(--card)}
.quick-btn-icon{font-size:20px;margin-bottom:4px}
.quick-btn-text{font-size:11px;color:var(--muted)}
@media(max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}.modules-grid{grid-template-columns:repeat(2,1fr)}.two-cols{grid-template-columns:1fr}}
@media(max-width:768px){.sidebar{display:none}.content{margin-left:0}}
</style>
</head>
<body>
<nav class="navbar">
<div class="logo"><div class="logo-icon">W</div><span>WEVAL</span></div>
<div class="nav-links">
<a href="weval-command-center.php" class="nav-link active">Command Center</a>
<a href="https://weval-consulting.com" target="_blank" class="nav-link">Site Public</a>
<a href="weval-mind-settings.php" class="nav-link">Settings</a>
</div>
<span class="nav-status">Système opérationnel</span>
</nav>
<main class="main">
<aside class="sidebar">
<div class="sidebar-section">
<div class="sidebar-title">Intelligence</div>
<a href="hamid-fullscreen.php" class="sidebar-item"><span class="sidebar-icon">🧠</span>WEVAL MIND<span class="sidebar-badge green"><?=$stats['kb_docs']?></span></a>
<a href="hamid-index.php" class="sidebar-item"><span class="sidebar-icon">🏠</span>Hub IA</a>
<a href="hamid-cli.php" class="sidebar-item"><span class="sidebar-icon">🖥️</span>CLI Web</a>
</div>
<div class="sidebar-section">
<div class="sidebar-title">Delivery</div>
<a href="dashboard.php" class="sidebar-item"><span class="sidebar-icon">📤</span>WEVAL SEND<span class="sidebar-badge"><?=number_format($stats['emails_sent'])?></span></a>
<a href="office-accounts.php" class="sidebar-item"><span class="sidebar-icon">📧</span>Office 365<span class="sidebar-badge green"><?=$stats['smtp_accounts']?></span></a>
<a href="domains.php" class="sidebar-item"><span class="sidebar-icon">🌐</span>Domaines<span class="sidebar-badge"><?=$stats['domains']?></span></a>
</div>
<div class="sidebar-section">
<div class="sidebar-title">Infrastructure</div>
<a href="huawei-servers.php" class="sidebar-item"><span class="sidebar-icon">☁️</span>WEVAL CLOUD<span class="sidebar-badge green"><?=$stats['servers']?></span></a>
<a href="pmta-manager.php" class="sidebar-item"><span class="sidebar-icon">⚡</span>PowerMTA</a>
<a href="tracking-deploy.php" class="sidebar-item"><span class="sidebar-icon">📊</span>Tracking</a>
</div>
<div class="sidebar-section">
<div class="sidebar-title">Création</div>
<a href="templates.php" class="sidebar-item"><span class="sidebar-icon">🎨</span>WEVAL STUDIO</a>
<a href="campaigns.php" class="sidebar-item"><span class="sidebar-icon">📋</span>Campagnes<span class="sidebar-badge orange"><?=$stats['campaigns_today']?></span></a>
</div>
<div class="sidebar-section">
<div class="sidebar-title">Externe</div>
<a href="https://weval-consulting.com" target="_blank" class="sidebar-item"><span class="sidebar-icon">🌍</span>Site Public</a>
<a href="weval-mind-settings.php" class="sidebar-item"><span class="sidebar-icon">⚙️</span>Settings</a>
</div>
</aside>
<div class="content">
<div class="stats-grid">
<div class="stat-card" onclick="location.href='office-accounts.php'"><div class="stat-header"><div class="stat-icon blue">📧</div><span class="stat-trend">↑ 12%</span></div><div class="stat-value"><?=number_format($stats['smtp_accounts'])?></div><div class="stat-label">Comptes Office 365</div></div>
<div class="stat-card" onclick="location.href='domains.php'"><div class="stat-header"><div class="stat-icon green">🌐</div><span class="stat-trend">↑ 8%</span></div><div class="stat-value"><?=number_format($stats['domains'])?></div><div class="stat-label">Domaines Actifs</div></div>
<div class="stat-card" onclick="location.href='dashboard.php'"><div class="stat-header"><div class="stat-icon orange">📤</div><span class="stat-trend">↑ 23%</span></div><div class="stat-value"><?=number_format($stats['emails_sent'])?></div><div class="stat-label">Emails (24h)</div></div>
<div class="stat-card"><div class="stat-header"><div class="stat-icon purple">📊</div><span class="stat-trend">↑ 2%</span></div><div class="stat-value"><?=$stats['inbox_rate']?>%</div><div class="stat-label">Taux Inbox</div></div>
</div>
<div class="section-title">🚀 WEVAL Suite</div>
<div class="modules-grid">
<a href="hamid-fullscreen.php" class="module-card"><div class="module-header"><div class="module-icon mind">🧠</div><div><div class="module-title">WEVAL MIND</div><div class="module-subtitle">Intelligence Artificielle</div></div></div><div class="module-desc">Assistant IA avec KB complète. <?=$stats['providers_active']?> providers, rotation auto.</div><div class="module-stats"><span><strong><?=$stats['providers_active']?></strong> Providers</span><span><strong><?=$stats['kb_docs']?></strong> KB Docs</span></div></a>
<a href="dashboard.php" class="module-card"><div class="module-header"><div class="module-icon send">📤</div><div><div class="module-title">WEVAL SEND</div><div class="module-subtitle">Delivery Engine</div></div></div><div class="module-desc">Envoi multi-canal. PowerMTA, O365, rotation intelligente.</div><div class="module-stats"><span><strong><?=number_format($stats['emails_sent'])?></strong> Emails/24h</span><span><strong><?=$stats['inbox_rate']?>%</strong> Inbox</span></div></a>
<a href="tracking-deploy.php" class="module-card"><div class="module-header"><div class="module-icon track">📊</div><div><div class="module-title">WEVAL TRACK</div><div class="module-subtitle">Analytics</div></div></div><div class="module-desc">Tracking temps réel. Opens, clicks, conversions.</div><div class="module-stats"><span><strong>151.80.235.110</strong></span></div></a>
<a href="huawei-servers.php" class="module-card"><div class="module-header"><div class="module-icon cloud">☁️</div><div><div class="module-title">WEVAL CLOUD</div><div class="module-subtitle">Infrastructure</div></div></div><div class="module-desc">Serveurs MTA. Huawei, Hetzner, OVH.</div><div class="module-stats"><span><strong><?=$stats['servers']?></strong> Serveurs</span></div></a>
<a href="domains.php" class="module-card"><div class="module-header"><div class="module-icon dns">🌐</div><div><div class="module-title">WEVAL DNS</div><div class="module-subtitle">Domaines</div></div></div><div class="module-desc">DKIM, SPF, DMARC. Cloudflare, FreeDNS.</div><div class="module-stats"><span><strong><?=$stats['domains']?></strong> Domaines</span><span><strong><?=$stats['office_domains']?></strong> Office</span></div></a>
<a href="office-accounts.php" class="module-card"><div class="module-header"><div class="module-icon connect">🔗</div><div><div class="module-title">WEVAL CONNECT</div><div class="module-subtitle">Intégrations</div></div></div><div class="module-desc">Office 365, APIs externes. Workflow automatisé.</div><div class="module-stats"><span><strong><?=$stats['smtp_accounts']?></strong> Comptes O365</span></div></a>
</div>
<div class="two-cols">
<div class="panel"><div class="panel-header"><span class="panel-title">📈 Activité Récente</span></div><div class="panel-body">
<div class="activity-item"><div class="activity-icon" style="background:rgba(5,150,105,.2)">✅</div><div><div class="activity-title">Campagne terminée avec succès</div><div class="activity-time">Il y a 5 min • <?=number_format($stats['emails_sent'])?> emails</div></div></div>
<div class="activity-item"><div class="activity-icon" style="background:rgba(30,64,175,.2)">🧠</div><div><div class="activity-title">WEVAL MIND: Config optimale trouvée</div><div class="activity-time">Il y a 12 min • Gmail: 96%</div></div></div>
<div class="activity-item"><div class="activity-icon" style="background:rgba(245,158,11,.2)">⚠️</div><div><div class="activity-title">Domaine warming requis</div><div class="activity-time">Il y a 23 min • Score: 52/100</div></div></div>
<div class="activity-item"><div class="activity-icon" style="background:rgba(6,182,212,.2)">📊</div><div><div class="activity-title">Tracking: opens & clicks OK</div><div class="activity-time">Il y a 1h • CTR: 18.8%</div></div></div>
</div></div>
<div class="panel"><div class="panel-header"><span class="panel-title">💚 Santé Système</span></div><div class="panel-body">
<div class="health-grid">
<div class="health-item"><span>API IA</span><span class="health-status"><span class="health-dot ok"></span>OK</span></div>
<div class="health-item"><span>PostgreSQL</span><span class="health-status"><span class="health-dot ok"></span>OK</span></div>
<div class="health-item"><span>PowerMTA</span><span class="health-status"><span class="health-dot ok"></span><?=$stats['servers']?> actifs</span></div>
<div class="health-item"><span>Tracking</span><span class="health-status"><span class="health-dot ok"></span>99.9%</span></div>
</div>
<div class="quick-actions">
<a href="hamid-fullscreen.php" class="quick-btn"><div class="quick-btn-icon">🧠</div><div class="quick-btn-text">Ask MIND</div></a>
<a href="campaigns.php" class="quick-btn"><div class="quick-btn-icon"></div><div class="quick-btn-text">Campagne</div></a>
<a href="weval-mind-settings.php" class="quick-btn"><div class="quick-btn-icon">⚙️</div><div class="quick-btn-text">Settings</div></a>
<a href="https://weval-consulting.com" target="_blank" class="quick-btn"><div class="quick-btn-icon">🌍</div><div class="quick-btn-text">Site</div></a>
</div>
</div></div>
</div>
</div>
</main>
</body>
</html>