Files
wevads-platform/scripts/dataflow-manager.php
2026-02-26 04:53:11 +01:00

170 lines
8.8 KiB
PHP
Executable File

<?php
$pdo = new PDO('pgsql:host=localhost;dbname=adx_system', 'admin', 'admin123');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stats = [];
try { $stats['seeds'] = $pdo->query("SELECT COUNT(*) FROM admin.brain_seeds")->fetchColumn() ?: 0; } catch(Exception $e) { $stats['seeds'] = 0; }
try { $stats['leads'] = $pdo->query("SELECT COUNT(*) FROM admin.harvested_leads")->fetchColumn() ?: 0; } catch(Exception $e) { $stats['leads'] = 0; }
try { $stats['o365'] = $pdo->query("SELECT COUNT(*) FROM admin.office_accounts WHERE status='Active'")->fetchColumn() ?: 0; } catch(Exception $e) { $stats['o365'] = 0; }
try { $stats['configs'] = $pdo->query("SELECT COUNT(*) FROM admin.brain_configs")->fetchColumn() ?: 0; } catch(Exception $e) { $stats['configs'] = 0; }
try { $stats['winners'] = $pdo->query("SELECT COUNT(*) FROM admin.brain_winners")->fetchColumn() ?: 0; } catch(Exception $e) { $stats['winners'] = 0; }
try { $stats['campaigns'] = $pdo->query("SELECT COUNT(*) FROM admin.campaigns")->fetchColumn() ?: 0; } catch(Exception $e) { $stats['campaigns'] = 0; }
?>
<!DOCTYPE html>
<html><head>
<meta charset="UTF-8">
<title>Data Flow Manager - WEVAL</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:system-ui;background:#0a0a0f;color:#e2e8f0;min-height:100vh;padding:20px}
h1{color:#5eead4;margin-bottom:10px}
.back-link{color:#5eead4;text-decoration:none;display:inline-block;margin-bottom:20px}
.back-link:hover{text-decoration:underline}
.flow-container{background:#12121a;border-radius:16px;padding:30px;margin:20px 0;border:1px solid #333}
.flow-title{color:#5eead4;font-size:1.3rem;margin-bottom:20px;display:flex;align-items:center;gap:10px}
/* Data Flow Diagram */
.dataflow{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;align-items:center;padding:20px 0}
.dataflow-node{background:#1a1a2e;border:3px solid #333;border-radius:12px;padding:20px;min-width:160px;text-align:center;position:relative;cursor:pointer;transition:all 0.3s}
.dataflow-node:hover{border-color:#5eead4;transform:translateY(-5px);box-shadow:0 10px 30px rgba(94,234,212,0.2)}
.dataflow-node .icon{font-size:2.5rem;margin-bottom:10px}
.dataflow-node .label{font-weight:bold;font-size:0.95rem;margin-bottom:5px}
.dataflow-node .count{font-size:1.8rem;font-weight:bold;color:#5eead4}
.dataflow-node .sublabel{font-size:0.75rem;opacity:0.7}
.dataflow-arrow{font-size:2rem;color:#5eead4;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.5}}
/* Node colors */
.node-seeds{border-color:#10b981}.node-seeds .count{color:#10b981}
.node-harvest{border-color:#f59e0b}.node-harvest .count{color:#f59e0b}
.node-brain{border-color:#9333ea}.node-brain .count{color:#9333ea}
.node-campaign{border-color:#3b82f6}.node-campaign .count{color:#3b82f6}
.node-send{border-color:#ef4444}.node-send .count{color:#ef4444}
.node-track{border-color:#06b6d4}.node-track .count{color:#06b6d4}
/* Stats grid */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin-top:30px}
.stat-card{background:#1a1a2e;border-radius:12px;padding:20px;text-align:center;border-left:4px solid #5eead4}
.stat-card .value{font-size:2rem;font-weight:bold;color:#5eead4}
.stat-card .label{font-size:0.85rem;opacity:0.7;margin-top:5px}
/* Pipeline visual */
.pipeline{background:linear-gradient(90deg,#10b981,#f59e0b,#9333ea,#3b82f6,#ef4444,#06b6d4);height:6px;border-radius:3px;margin:30px 0;position:relative}
.pipeline::after{content:'';position:absolute;left:0;top:0;height:100%;width:30%;background:rgba(255,255,255,0.3);border-radius:3px;animation:flow 3s infinite}
@keyframes flow{0%{left:0;width:10%}50%{width:30%}100%{left:100%;width:10%}}
.section-title{color:#94a3b8;font-size:1rem;margin:30px 0 15px;text-transform:uppercase;letter-spacing:1px}
.quick-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.quick-link{background:#1a1a2e;color:#5eead4;padding:12px 20px;border-radius:8px;text-decoration:none;display:flex;align-items:center;gap:8px;transition:all 0.2s;border:1px solid #333}
.quick-link:hover{background:#5eead4;color:#000;transform:translateY(-2px)}
</style>
</head><body>
<a href="/system-flows.php" class="back-link"><i class="fas fa-arrow-left"></i> Retour aux System Flows</a>
<h1><i class="fas fa-project-diagram"></i> Data Flow Manager</h1>
<p style="opacity:0.7;margin-bottom:30px">Visualisation du flux de données dans le système WEVAL</p>
<div class="flow-container">
<div class="flow-title"><i class="fas fa-stream"></i> Pipeline Principal</div>
<div class="pipeline"></div>
<div class="dataflow">
<a href="/harvest-manager.php" style="text-decoration:none;color:inherit">
<div class="dataflow-node node-seeds">
<div class="icon">🌱</div>
<div class="label">Seeds</div>
<div class="count"><?=number_format($stats['seeds'])?></div>
<div class="sublabel">Emails sources</div>
</div>
</a>
<div class="dataflow-arrow">→</div>
<a href="/harvest-manager.php" style="text-decoration:none;color:inherit">
<div class="dataflow-node node-harvest">
<div class="icon">📧</div>
<div class="label">Harvest</div>
<div class="count"><?=number_format($stats['leads'])?></div>
<div class="sublabel">Leads collectés</div>
</div>
</a>
<div class="dataflow-arrow">→</div>
<a href="/brain-manager.php" style="text-decoration:none;color:inherit">
<div class="dataflow-node node-brain">
<div class="icon">🧠</div>
<div class="label">Brain</div>
<div class="count"><?=$stats['configs']?></div>
<div class="sublabel">Configs testées</div>
</div>
</a>
<div class="dataflow-arrow">→</div>
<a href="/campaign-manager.php" style="text-decoration:none;color:inherit">
<div class="dataflow-node node-campaign">
<div class="icon">🎯</div>
<div class="label">Campaign</div>
<div class="count"><?=$stats['campaigns']?></div>
<div class="sublabel">Campagnes</div>
</div>
</a>
<div class="dataflow-arrow">→</div>
<a href="/sending-manager.php" style="text-decoration:none;color:inherit">
<div class="dataflow-node node-send">
<div class="icon">📤</div>
<div class="label">Send</div>
<div class="count"><?=number_format($stats['o365'])?></div>
<div class="sublabel">Comptes O365</div>
</div>
</a>
<div class="dataflow-arrow">→</div>
<a href="/tracking-manager.php" style="text-decoration:none;color:inherit">
<div class="dataflow-node node-track">
<div class="icon">📊</div>
<div class="label">Track</div>
<div class="count"><?=$stats['winners']?></div>
<div class="sublabel">Winners</div>
</div>
</a>
</div>
</div>
<div class="section-title">📊 Statistiques en temps réel</div>
<div class="stats-grid">
<div class="stat-card" style="border-color:#10b981"><div class="value" style="color:#10b981"><?=number_format($stats['seeds'])?></div><div class="label">Seeds disponibles</div></div>
<div class="stat-card" style="border-color:#f59e0b"><div class="value" style="color:#f59e0b"><?=$stats['leads']?></div><div class="label">Leads harvested</div></div>
<div class="stat-card" style="border-color:#9333ea"><div class="value" style="color:#9333ea"><?=$stats['configs']?></div><div class="label">Brain Configs</div></div>
<div class="stat-card" style="border-color:#3b82f6"><div class="value" style="color:#3b82f6"><?=$stats['winners']?></div><div class="label">Winners</div></div>
<div class="stat-card" style="border-color:#ef4444"><div class="value" style="color:#ef4444"><?=number_format($stats['o365'])?></div><div class="label">O365 Actifs</div></div>
<div class="stat-card" style="border-color:#06b6d4"><div class="value" style="color:#06b6d4"><?=$stats['campaigns']?></div><div class="label">Campagnes</div></div>
</div>
<div class="section-title">🔗 Accès rapide aux managers</div>
<div class="quick-links">
<a href="/harvest-manager.php" class="quick-link"><i class="fas fa-seedling"></i> Harvest Manager</a>
<a href="/brain-manager.php" class="quick-link"><i class="fas fa-brain"></i> Brain Engine</a>
<a href="/campaign-manager.php" class="quick-link"><i class="fas fa-bullseye"></i> Campaign Setup</a>
<a href="/sending-manager.php" class="quick-link"><i class="fas fa-paper-plane"></i> Sending</a>
<a href="/tracking-manager.php" class="quick-link"><i class="fas fa-chart-line"></i> Tracking</a>
<a href="/optimization-manager.php" class="quick-link"><i class="fas fa-sync-alt"></i> Optimization</a>
<a href="/o365-manager.php" class="quick-link"><i class="fab fa-microsoft"></i> O365</a>
<a href="/hamid-fullscreen.php" class="quick-link"><i class="fas fa-robot"></i> WEVAL MIND</a>
</div>
</body></html>