<?php
// ========================
// Configuração da base de dados
// ========================
include 'connect.php';

// ========================
// 1. Totais de vendas
// ========================
$totalHoje = $TraceStockDB->query("
    SELECT IFNULL(SUM(total),0) AS total 
    FROM vendas 
    WHERE DATE(criado_em) = CURDATE() AND status='CONCLUIDA'
")->fetch(PDO::FETCH_ASSOC)['total'];

$totalMes = $TraceStockDB->query("
    SELECT IFNULL(SUM(total),0) AS total 
    FROM vendas 
    WHERE YEAR(criado_em) = YEAR(CURDATE()) 
      AND MONTH(criado_em) = MONTH(CURDATE()) 
      AND status='CONCLUIDA'
")->fetch(PDO::FETCH_ASSOC)['total'];

$totalGeral = $TraceStockDB->query("
    SELECT IFNULL(SUM(total),0) AS total 
    FROM vendas 
    WHERE status='CONCLUIDA'
")->fetch(PDO::FETCH_ASSOC)['total'];

// ========================
// 2. Produtos mais vendidos
// ========================
$topProdutos = [];
$result = $TraceStockDB->query("
    SELECT p.nome, SUM(v.quantidade) AS total_vendido
    FROM vendas v
    JOIN produtos p ON p.id = v.produto_id
    WHERE v.status='CONCLUIDA'
    GROUP BY v.produto_id
    ORDER BY total_vendido DESC
    LIMIT 5
");
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $topProdutos[] = $row;
}

// ========================
// 3. Receita por mês (últimos 6 meses)
// ========================
$receitaMes = [];
$result = $TraceStockDB->query("
    SELECT DATE_FORMAT(criado_em, '%Y-%m') AS mes, SUM(total) AS receita
    FROM vendas
    WHERE status='CONCLUIDA'
    GROUP BY mes
    ORDER BY mes DESC
    LIMIT 6
");
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $receitaMes[] = $row;
}
$receitaMes = array_reverse($receitaMes); // inverter p/ gráfico
?>
<div class="row overflow-x-hidden" style="font-size: 1.8vh;">
    <div class="col-lg-12 col-md-12 col-sm-12 text-center">
        <h1 style="font-size: 3.3vh;">📊 Dashboard de Vendas</h1>
    </div>

    <section id="cartoes" class="container col-lg-12 col-md-12 col-sm-12 position-relative justify-content-center align-items-center w-95">
        <div class="row text-center justify-content-center align-items-center" style = "font-size: 1.8vh;">
            <div class="col-lg-3 col-md-3 col-sm-12 mt-5">
                <div class="card h-100 shadow">
                    <div class="card">
                        <h2 class="mt-3" style="font-size: 3.3vh;">Hoje</h2>
                        <p><?= number_format($totalHoje, 2, ',', '.') ?> €</p>
                    </div>
                </div>
            </div>
            <div class="col-lg-3 col-md-3 col-sm-12 mt-5">
                <div class="card h-100 shadow">
                    <div class="card">
                        <h2 class="mt-3" style="font-size: 3.3vh;">Este Mês</h2>
                        <p><?= number_format($totalMes, 2, ',', '.') ?> €</p>
                    </div>
                </div>
            </div>
            <div class="col-lg-3 col-md-3 col-sm-12 mt-5">
                <div class="card h-100 shadow">
                    <div class="card">
                        <h2 class="mt-3" style="font-size: 3.3vh;">Total Geral</h2>
                        <p><?= number_format($totalGeral, 2, ',', '.') ?> €</p>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <section id="cartoes" class="container w-95 mt-3">
        <div class="row text-center">
            <div class="col-md-12 mt-4">
                <div class="card h-100 shadow">
                    <div class="card">
                        <div class="ms-md-5 me-md-5">
                            <h2 class="mt-3" style="font-size: 3.3vh;">📦 Top 5 Produtos Vendidos</h2>
                            <table class="table table-striped table-bordered">
                                <tr>
                                    <th class="w-15">Número ISBN Produto</th>
                                    <th>Produto</th>
                                    <th class="w-15">Total Vendido</th>
                                </tr>
                                <?php 
                                    include 'connect.php';
                                    $query = "SELECT v.produto_id AS isbn, p.nome AS produto_nome, SUM(v.quantidade) AS vendido FROM vendas v INNER JOIN produtos p ON v.produto_id = p.id GROUP BY v.produto_id, p.nome ORDER BY isbn;";
                                    $result = $TraceStockDB->query($query);
                                    if ($result->rowCount() > 0) {
                                        while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
                                            echo "<tr>";
                                            echo "<td>" . htmlspecialchars($row['isbn']) . "</td>";                                            
                                            echo "<td>" . htmlspecialchars($row['produto_nome']) . "</td>";                                            
                                            echo "<td>" . htmlspecialchars($row['vendido']) . "</td>";
                                            echo "</tr>";
                                        }
                                    } else {
                                        echo "<tr><td colspan='3'>Nenhum produto vendido ainda.</td></tr>";
                                    }
                                ?>
                            </table>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>
</div>


<script>
    const receitaLabels = <?= json_encode(array_column($receitaMes, 'mes')) ?>;
    const receitaData = <?= json_encode(array_map('floatval', array_column($receitaMes, 'receita'))) ?>;
</script>