<?php
require_once '../includes/constants.php';
require_once '../includes/session.php';

if (!isset($_SESSION['admin_id']) || !in_array($_SESSION['admin_role'], ['manager','superadmin'])) {
    die("Access denied");
}
?>
<!DOCTYPE html>
<html>
<head>
    <title><?php echo SITE_TITLE . ' | Affiliate Anomalies</title>
    <link rel="stylesheet" href="css/admin.css">
</head>
<body>
<div class="container">
<?php
// Detect conversion spikes
$spikeStmt = $pdo->query("
    SELECT affiliate_id, COUNT(*) AS conv_count 
    FROM conversions 
    WHERE created_at >= NOW() - INTERVAL 1 HOUR 
    GROUP BY affiliate_id 
    HAVING conv_count > 100
");
$spikes = $spikeStmt->fetchAll(PDO::FETCH_ASSOC);

// Detect geo mismatches
$geoStmt = $pdo->query("
    SELECT c.affiliate_id, o.geo_target, c.geo_source 
    FROM conversions c 
    JOIN offers o ON c.offer_id = o.id 
    WHERE c.geo_source != o.geo_target 
    ORDER BY c.created_at DESC LIMIT 50
");
$geoMismatches = $geoStmt->fetchAll(PDO::FETCH_ASSOC);

// Detect payout anomalies
$payoutStmt = $pdo->query("
    SELECT affiliate_id, SUM(amount) AS payout_total 
    FROM affiliate_payouts 
    WHERE created_at >= NOW() - INTERVAL 1 DAY 
    GROUP BY affiliate_id 
    HAVING payout_total > 10000
");
$payouts = $payoutStmt->fetchAll(PDO::FETCH_ASSOC);

// Detect excessive test link activity
$testStmt = $pdo->query("
    SELECT affiliate_id, COUNT(*) AS test_count 
    FROM affiliate_tests 
    WHERE created_at >= NOW() - INTERVAL 1 DAY 
    GROUP BY affiliate_id 
    HAVING test_count > 50
");
$tests = $testStmt->fetchAll(PDO::FETCH_ASSOC);

// UI
echo "<h2>🧠 Affiliate Anomalies</h2>";

echo "<h3>🚨 Conversion Spikes</h3><ul>";
foreach ($spikes as $s) {
    echo "<li>Affiliate #" . htmlspecialchars($s['affiliate_id']) . " — " . htmlspecialchars($s['conv_count']) . " conversions in last hour</li>";
}
echo "</ul>";

echo "<h3>🌍 Geo Mismatches</h3><ul>";
foreach ($geoMismatches as $g) {
    echo "<li>Affiliate #" . htmlspecialchars($g['affiliate_id']) . " — Source: " . htmlspecialchars($g['geo_source']) . ", Target: " . htmlspecialchars($g['geo_target']) . "</li>";
}
echo "</ul>";

echo "<h3>💸 High Payouts</h3><ul>";
foreach ($payouts as $p) {
    echo "<li>Affiliate #" . htmlspecialchars($p['affiliate_id']) . " — $" . number_format($p['payout_total'], 2) . " in last 24h</li>";
}
echo "</ul>";

echo "<h3>🧪 Excessive Test Links</h3><ul>";
foreach ($tests as $t) {
    echo "<li>Affiliate #" . htmlspecialchars($t['affiliate_id']) . " — " . htmlspecialchars($t['test_count']) . " test links in last 24h</li>";
}
echo "</ul>";
?>
</div>
</body>
</html>