<?php
// /public_html/admin/analytics.php
session_start();
require '../config/db_connect.php';

// Auth Check
if (!isset($_SESSION['user_id'])) { header("Location: ../login.php"); exit(); }
$check = $conn->query("SELECT role FROM users WHERE id = {$_SESSION['user_id']}")->fetch_assoc();
if ($check['role'] !== 'admin') die("Access Denied");

// 1. Get Totals
$today = date('Y-m-d');
$views_today = $conn->query("SELECT COUNT(*) as c FROM site_analytics WHERE DATE(visited_at) = '$today'")->fetch_assoc()['c'];
$unique_today = $conn->query("SELECT COUNT(DISTINCT ip_address) as c FROM site_analytics WHERE DATE(visited_at) = '$today'")->fetch_assoc()['c'];
$total_views = $conn->query("SELECT COUNT(*) as c FROM site_analytics")->fetch_assoc()['c'];

// 2. Chart Data (Last 7 Days)
$chart_labels = [];
$chart_data = [];
for ($i = 6; $i >= 0; $i--) {
    $d = date('Y-m-d', strtotime("-$i days"));
    $chart_labels[] = date('M d', strtotime($d));
    $chart_data[] = $conn->query("SELECT COUNT(*) as c FROM site_analytics WHERE DATE(visited_at) = '$d'")->fetch_assoc()['c'];
}

// 3. Top Countries
$countries = $conn->query("SELECT country, COUNT(*) as c FROM site_analytics GROUP BY country ORDER BY c DESC LIMIT 5");

// 4. Device Stats
$mobile = $conn->query("SELECT COUNT(*) as c FROM site_analytics WHERE device_type = 'Mobile'")->fetch_assoc()['c'];
$desktop = $conn->query("SELECT COUNT(*) as c FROM site_analytics WHERE device_type = 'Desktop'")->fetch_assoc()['c'];
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Website Analytics</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>
<body class="bg-light">
    
    <?php include 'includes/navbar.php'; ?>

    <div class="container mt-4 mb-5">
        <h2 class="mb-4">Traffic Analytics</h2>

        <div class="row mb-4">
            <div class="col-md-4">
                <div class="card shadow-sm border-0 border-start border-4 border-primary">
                    <div class="card-body">
                        <h6 class="text-muted text-uppercase small">Page Views (Today)</h6>
                        <h2 class="display-6 fw-bold text-primary"><?php echo $views_today; ?></h2>
                    </div>
                </div>
            </div>
            <div class="col-md-4">
                <div class="card shadow-sm border-0 border-start border-4 border-success">
                    <div class="card-body">
                        <h6 class="text-muted text-uppercase small">Unique Visitors (Today)</h6>
                        <h2 class="display-6 fw-bold text-success"><?php echo $unique_today; ?></h2>
                    </div>
                </div>
            </div>
            <div class="col-md-4">
                <div class="card shadow-sm border-0 border-start border-4 border-dark">
                    <div class="card-body">
                        <h6 class="text-muted text-uppercase small">Total Lifetime Views</h6>
                        <h2 class="display-6 fw-bold text-dark"><?php echo $total_views; ?></h2>
                    </div>
                </div>
            </div>
        </div>

        <div class="row">
            <div class="col-md-8 mb-4">
                <div class="card shadow-sm">
                    <div class="card-header bg-white fw-bold">Traffic Trend (7 Days)</div>
                    <div class="card-body">
                        <canvas id="trafficChart"></canvas>
                    </div>
                </div>
            </div>

            <div class="col-md-4 mb-4">
                <div class="card shadow-sm mb-4">
                    <div class="card-header bg-white fw-bold">Top Countries</div>
                    <ul class="list-group list-group-flush">
                        <?php while($c = $countries->fetch_assoc()): ?>
                        <li class="list-group-item d-flex justify-content-between align-items-center">
                            <?php echo htmlspecialchars($c['country']); ?>
                            <span class="badge bg-primary rounded-pill"><?php echo $c['c']; ?></span>
                        </li>
                        <?php endwhile; ?>
                    </ul>
                </div>

                <div class="card shadow-sm">
                    <div class="card-header bg-white fw-bold">Device Type</div>
                    <div class="card-body">
                        <canvas id="deviceChart"></canvas>
                    </div>
                </div>
            </div>
        </div>

        <div class="card shadow-sm">
            <div class="card-header bg-white fw-bold">Recent Visitors (Live Feed)</div>
            <div class="table-responsive">
                <table class="table table-hover mb-0 align-middle">
                    <thead class="table-light">
                        <tr>
                            <th>Time</th>
                            <th>IP Address</th>
                            <th>Country</th>
                            <th>OS / Browser</th>
                            <th>Page</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php
                        $logs = $conn->query("SELECT * FROM site_analytics ORDER BY visited_at DESC LIMIT 20");
                        if($logs->num_rows > 0):
                            while($log = $logs->fetch_assoc()):
                        ?>
                        <tr>
                            <td class="small text-muted"><?php echo date('M d, H:i', strtotime($log['visited_at'])); ?></td>
                            <td><span class="font-monospace small bg-light p-1 rounded"><?php echo $log['ip_address']; ?></span></td>
                            <td><?php echo htmlspecialchars($log['country']); ?></td>
                            <td class="small"><?php echo $log['os'] . ' / ' . $log['browser']; ?></td>
                            <td class="small text-primary text-truncate" style="max-width: 150px;"><?php echo htmlspecialchars($log['page_url']); ?></td>
                        </tr>
                        <?php endwhile; else: ?>
                        <tr><td colspan="5" class="text-center p-3">No data yet.</td></tr>
                        <?php endif; ?>
                    </tbody>
                </table>
            </div>
        </div>

    </div>

    <script>
    // Traffic Chart
    new Chart(document.getElementById('trafficChart'), {
        type: 'line',
        data: {
            labels: <?php echo json_encode($chart_labels); ?>,
            datasets: [{
                label: 'Page Views',
                data: <?php echo json_encode($chart_data); ?>,
                borderColor: '#0d6efd',
                backgroundColor: 'rgba(13, 110, 253, 0.1)',
                fill: true,
                tension: 0.3
            }]
        }
    });

    // Device Chart
    new Chart(document.getElementById('deviceChart'), {
        type: 'doughnut',
        data: {
            labels: ['Mobile', 'Desktop'],
            datasets: [{
                data: [<?php echo $mobile; ?>, <?php echo $desktop; ?>],
                backgroundColor: ['#198754', '#0d6efd']
            }]
        }
    });
    </script>

    <?php include 'includes/footer.php'; ?>
</body>
</html>