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

$isAdvertiser = ($_GET['view'] ?? '') === 'advertiser';
if (!isset($_SESSION['admin_id']) && !$isAdvertiser) {
    die("Access denied");
}

$offerId = $_GET['id'] ?? 0;
$format = $_GET['format'] ?? 'csv';
if (!$offerId) die("Missing offer ID");

// Fetch offer
$stmt = $pdo->prepare("SELECT * FROM partners_offers WHERE offer_id = ?");
$stmt->execute([$offerId]);
$offer = $stmt->fetch(PDO::FETCH_ASSOC);

// Fetch creatives
$stmt = $pdo->prepare("SELECT * FROM partners_offer_creatives WHERE offer_id = ?");
$stmt->execute([$offerId]);
$creatives = $stmt->fetchAll(PDO::FETCH_ASSOC);

// Conversion metrics
$stmt = $pdo->prepare("SELECT COUNT(*) FROM partners_clicks WHERE offer_id = ?");
$stmt->execute([$offerId]);
$totalClicks = $stmt->fetchColumn();

$stmt = $pdo->prepare("SELECT COUNT(*) as convs, SUM(payout) as revenue FROM partners_conversions WHERE offer_id = ?");
$stmt->execute([$offerId]);
$convData = $stmt->fetch(PDO::FETCH_ASSOC);

$conversionRate = $totalClicks ? round(($convData['convs'] / $totalClicks) * 100, 2) : 0;
$epc = $totalClicks ? round($convData['revenue'] / $totalClicks, 4) : 0;

// Device breakdown
$stmt = $pdo->prepare("SELECT device_type, COUNT(*) as clicks FROM partners_clicks WHERE offer_id = ? GROUP BY device_type ORDER BY clicks DESC");
$stmt->execute([$offerId]);
$deviceStats = $stmt->fetchAll(PDO::FETCH_ASSOC);

// SubID and referrer performance
$stmt = $pdo->prepare("SELECT subid, referrer, COUNT(*) as clicks FROM partners_clicks WHERE offer_id = ? GROUP BY subid, referrer ORDER BY clicks DESC LIMIT 100");
$stmt->execute([$offerId]);
$subidStats = $stmt->fetchAll(PDO::FETCH_ASSOC);

// Optional modules
$postbacks = $modules = [];
if (!$isAdvertiser) {
    $stmt = $pdo->prepare("SELECT * FROM partners_offer_postbacks WHERE offer_id = ?");
    $stmt->execute([$offerId]);
    $postbacks = $stmt->fetchAll(PDO::FETCH_ASSOC);

    $stmt = $pdo->prepare("SELECT * FROM partners_offer_modules WHERE offer_id = ?");
    $stmt->execute([$offerId]);
    $modules = $stmt->fetchAll(PDO::FETCH_ASSOC);
}

// Export logic
if ($format === 'json') {
    header('Content-Type: application/json');
    echo json_encode([
        'offer' => $offer,
        'creatives' => $creatives,
        'conversion_metrics' => [
            'total_clicks' => $totalClicks,
            'total_conversions' => $convData['convs'],
            'total_revenue' => $convData['revenue'],
            'conversion_rate_percent' => $conversionRate,
            'epc' => $epc
        ],
        'device_stats' => $deviceStats,
        'subid_stats' => $subidStats,
        'postbacks' => $postbacks,
        'modules' => $modules
    ], JSON_PRETTY_PRINT);
    exit;
}

if ($format === 'csv') {
    header('Content-Type: text/csv');
    header("Content-Disposition: attachment; filename=offer_export_$offerId.csv");

    $fp = fopen('php://output', 'w');
    fputcsv($fp, ['Offer Details']);
    foreach ($offer as $key => $val) fputcsv($fp, [$key, $val]);

    fputcsv($fp, []);
    fputcsv($fp, ['Creatives']);
    foreach ($creatives as $row) fputcsv($fp, $row);

    fputcsv($fp, []);
    fputcsv($fp, ['Conversion Metrics']);
    fputcsv($fp, ['Total Clicks', $totalClicks]);
    fputcsv($fp, ['Total Conversions', $convData['convs']]);
    fputcsv($fp, ['Total Revenue', $convData['revenue']]);
    fputcsv($fp, ['Conversion Rate (%)', $conversionRate]);
    fputcsv($fp, ['EPC', $epc]);

    fputcsv($fp, []);
    fputcsv($fp, ['Device Breakdown']);
    foreach ($deviceStats as $row) fputcsv($fp, $row);

    fputcsv($fp, []);
    fputcsv($fp, ['SubID & Referrer Breakdown']);
    foreach ($subidStats as $row) fputcsv($fp, $row);

    if (!$isAdvertiser) {
        fputcsv($fp, []);
        fputcsv($fp, ['Postbacks']);
        foreach ($postbacks as $row) fputcsv($fp, $row);

        fputcsv($fp, []);
        fputcsv($fp, ['Modules']);
        foreach ($modules as $row) fputcsv($fp, $row);
    }

    fclose($fp);
    exit;
}
?>
<!DOCTYPE html>
<html>
<head>
    <title><?php echo SITE_TITLE . ' | Offer Export'; ?></title>
    <link rel="stylesheet" href="css/admin.css">
</head>
<body>
<div class="container">
<h2>📤 Export Offer #<?php echo htmlspecialchars($offerId); ?></h2>
<p><a href="admin_offer_exports.php?id=<?php echo htmlspecialchars($offerId); ?>&format=json" target="_blank">Export as JSON</a></p>
<p><a href="admin_offer_exports.php?id=<?php echo htmlspecialchars($offerId); ?>&format=csv" target="_blank">Export as CSV</a></p>
<p><a href="admin_offer_exports.php?id=<?php echo htmlspecialchars($offerId); ?>&format=json&view=advertiser" target="_blank">Advertiser JSON View</a></p>
<p><a href="admin_offer_exports.php?id=<?php echo htmlspecialchars($offerId); ?>&format=csv&view=advertiser" target="_blank">Advertiser CSV View</a></p>
</div>
</body>
</html>