<?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 . ' | Advertiser Contracts</title>
    <link rel="stylesheet" href="css/admin.css">
</head>
<body>
<div class="container">
<?php
$adminId = $_SESSION['admin_id'];

// Fetch dropdown data
$advertisers = $pdo->query("SELECT id, name FROM advertisers ORDER BY name")->fetchAll(PDO::FETCH_ASSOC);
$offers = $pdo->query("SELECT id, name FROM offers ORDER BY name")->fetchAll(PDO::FETCH_ASSOC);

// Handle new contract
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['advertiser_id'], $_POST['offer_id'])) {
    $stmt = $pdo->prepare("INSERT INTO advertiser_contracts 
        (advertiser_id, offer_id, payout, start_date, end_date, notes) 
        VALUES (?, ?, ?, ?, ?, ?) 
        ON DUPLICATE KEY UPDATE payout = VALUES(payout), start_date = VALUES(start_date), end_date = VALUES(end_date), notes = VALUES(notes)");
    $stmt->execute([
        $_POST['advertiser_id'],
        $_POST['offer_id'],
        $_POST['payout'],
        $_POST['start_date'],
        $_POST['end_date'],
        $_POST['notes']
    ]);
    log_admin_action($pdo, 'update_advertiser_contract', "Updated contract for advertiser #{$_POST['advertiser_id']} on offer #{$_POST['offer_id']}");
    echo "<p class='success'>✅ Contract saved.</p>";
}

// Filters
$filterStart = $_GET['start'] ?? null;
$filterEnd = $_GET['end'] ?? null;
$filterClause = "";
$params = [];

if ($filterStart && $filterEnd) {
    $filterClause = "WHERE c.created_at BETWEEN ? AND ?";
    $params = [$filterStart, $filterEnd];
}

// Fetch contracts
$stmt = $pdo->prepare("
    SELECT c.*, a.name AS advertiser_name, o.name AS offer_name 
    FROM advertiser_contracts c 
    JOIN advertisers a ON c.advertiser_id = a.id 
    JOIN offers o ON c.offer_id = o.id 
    $filterClause
    ORDER BY c.created_at DESC
");
$stmt->execute($params);
$contracts = $stmt->fetchAll(PDO::FETCH_ASSOC);

// UI
echo "<h2>📦 Advertiser Contracts</h2>
<form method='post'>
    <label>Advertiser:
        <select name='advertiser_id' required>
            <option value=''>Select Advertiser</option>";
foreach ($advertisers as $a) {
    echo "<option value='{$a['id']}'>{$a['name']} (#{$a['id']})</option>";
}
echo "</select></label>
<label>Offer:
    <select name='offer_id' required>
        <option value=''>Select Offer</option>";
foreach ($offers as $o) {
    echo "<option value='{$o['id']}'>{$o['name']} (#{$o['id']})</option>";
}
echo "</select></label>
<input name='payout' placeholder='Payout (e.g. 2.5000)' required>
<input name='start_date' type='date' placeholder='Start Date'>
<input name='end_date' type='date' placeholder='End Date'>
<textarea name='notes' placeholder='Contract notes'></textarea>
<button type='submit'>Save Contract</button>
</form>";

echo "<form method='get'>
    <label>Start: <input type='date' name='start' value='$filterStart'></label>
    <label>End: <input type='date' name='end' value='$filterEnd'></label>
    <button type='submit'>Filter</button>
    <button onclick=\"window.location='?export=1';return false;\">Export CSV</button>
</form>";

// Export CSV
if (isset($_GET['export'])) {
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename=advertiser_contracts.csv');
    echo "Advertiser,Offer,Payout,Start,End,Notes,Created\n";
    foreach ($contracts as $c) {
        echo "\"{$c['advertiser_name']}\",\"{$c['offer_name']}\",\"{$c['payout']}\",\"{$c['start_date']}\",\"{$c['end_date']}\",\"".str_replace('"','""',$c['notes'])."\",\"{$c['created_at']}\"\n";
    }
    exit;
}

// Table
echo "<table><tr>
    <th>Advertiser</th><th>Offer</th><th>Payout</th><th>Start</th><th>End</th><th>Notes</th><th>Created</th>
</tr>";
$totalPayout = 0;
foreach ($contracts as $c) {
    $totalPayout += $c['payout'];
    echo "<tr>
        <td>{$c['advertiser_name']} (#{$c['advertiser_id']})</td>
        <td>{$c['offer_name']} (#{$c['offer_id']})</td>
        <td>$" . number_format($c['payout'], 4) . "</td>
        <td>{$c['start_date']}</td>
        <td>{$c['end_date']}</td>
        <td><textarea readonly style='width:300px;height:40px'>" . htmlspecialchars($c['notes']) . "</textarea></td>
        <td>{$c['created_at']}</td>
    </tr>";
}
echo "<tr><td colspan='2'><strong>Total Payout</strong></td><td colspan='5'>$" . number_format($totalPayout, 4) . "</td></tr>";
echo "</table>";
?>
</div>
</body>
</html>