<?php
require_once __DIR__ . '/../includes/header.php';

// ===== DADOS =====
$total_alunos = $pdo->query("SELECT COUNT(*) FROM alunos WHERE status='Ativo'")->fetchColumn();
$total_funcionarios = $pdo->query("SELECT COUNT(*) FROM funcionarios WHERE status='Ativo'")->fetchColumn();

// Financeiro - Mês atual
$mes = date('m');
$ano = date('Y');

$stmt = $pdo->prepare("SELECT COALESCE(SUM(valor_pago),0) FROM contas_receber WHERE status='pago' AND MONTH(data_pagamento)=? AND YEAR(data_pagamento)=?");
$stmt->execute([$mes, $ano]); $recebido_mes = $stmt->fetchColumn();

$stmt = $pdo->prepare("SELECT COALESCE(SUM(valor),0) FROM contas_receber WHERE status='pendente' AND MONTH(data_vencimento)=? AND YEAR(data_vencimento)=?");
$stmt->execute([$mes, $ano]); $pendente_mes = $stmt->fetchColumn();

$vencido_total = $pdo->query("SELECT COALESCE(SUM(valor - COALESCE(valor_pago,0)),0) FROM contas_receber WHERE data_vencimento < CURDATE() AND status='pendente'")->fetchColumn();

$stmt = $pdo->prepare("SELECT COALESCE(SUM(valor_pago),0) FROM contas_pagar WHERE status='pago' AND MONTH(data_pagamento)=? AND YEAR(data_pagamento)=?");
$stmt->execute([$mes, $ano]); $despesas_mes = $stmt->fetchColumn();

$saldo_bancos = $pdo->query("SELECT COALESCE(SUM(saldo_atual),0) FROM contas_bancarias WHERE status='ativo'")->fetchColumn();

// Contas vencidas
$vencidas = $pdo->query("SELECT cr.*, a.nome AS aluno_nome FROM contas_receber cr LEFT JOIN alunos a ON a.id=cr.aluno_id WHERE cr.data_vencimento < CURDATE() AND cr.status='pendente' ORDER BY cr.data_vencimento ASC LIMIT 7")->fetchAll();

// Últimos recebimentos
$ultimos = $pdo->query("SELECT cr.*, a.nome AS aluno_nome FROM contas_receber cr LEFT JOIN alunos a ON a.id=cr.aluno_id WHERE cr.status='pago' ORDER BY cr.data_pagamento DESC LIMIT 7")->fetchAll();

// Contas a pagar próximas
$proximas_pagar = $pdo->query("SELECT cp.*, f.nome AS fornecedor_nome FROM contas_pagar cp LEFT JOIN fornecedores f ON f.id=cp.fornecedor_id WHERE cp.status='pendente' ORDER BY cp.data_vencimento ASC LIMIT 7")->fetchAll();

// Dados para gráfico (últimos 6 meses)
$chart_labels = [];
$chart_receitas = [];
$chart_despesas = [];
for ($i = 5; $i >= 0; $i--) {
    $m = date('m', strtotime("-{$i} months"));
    $a = date('Y', strtotime("-{$i} months"));
    $chart_labels[] = date('M/y', strtotime("-{$i} months"));
    $stmt = $pdo->prepare("SELECT COALESCE(SUM(valor_pago),0) FROM contas_receber WHERE status='pago' AND MONTH(data_pagamento)=? AND YEAR(data_pagamento)=?");
    $stmt->execute([$m, $a]); $chart_receitas[] = floatval($stmt->fetchColumn());
    $stmt = $pdo->prepare("SELECT COALESCE(SUM(valor_pago),0) FROM contas_pagar WHERE status='pago' AND MONTH(data_pagamento)=? AND YEAR(data_pagamento)=?");
    $stmt->execute([$m, $a]); $chart_despesas[] = floatval($stmt->fetchColumn());
}

$meses_nome = ['','Janeiro','Fevereiro','Marco','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'];
?>

<div class="page-header">
    <div>
        <h2>Dashboard</h2>
        <div class="subtitle"><?= $meses_nome[intval($mes)] ?> <?= $ano ?></div>
    </div>
</div>

<!-- KPIs Principais -->
<div class="grid-5 mb-3">
    <div class="card-kpi green">
        <div class="kpi-label">Recebido no Mes</div>
        <div class="kpi-value"><?= moeda($recebido_mes) ?></div>
    </div>
    <div class="card-kpi yellow">
        <div class="kpi-label">Pendente no Mes</div>
        <div class="kpi-value"><?= moeda($pendente_mes) ?></div>
    </div>
    <div class="card-kpi red">
        <div class="kpi-label">Vencido</div>
        <div class="kpi-value"><?= moeda($vencido_total) ?></div>
    </div>
    <div class="card-kpi red">
        <div class="kpi-label">Despesas no Mes</div>
        <div class="kpi-value"><?= moeda($despesas_mes) ?></div>
    </div>
    <div class="card-kpi blue">
        <div class="kpi-label">Saldo em Banco</div>
        <div class="kpi-value"><?= moeda($saldo_bancos) ?></div>
    </div>
</div>

<!-- KPIs Secundários -->
<div class="grid-4 mb-3">
    <div class="card-kpi purple">
        <div class="kpi-label">Alunos Ativos</div>
        <div class="kpi-value"><?= $total_alunos ?></div>
    </div>
    <div class="card-kpi blue">
        <div class="kpi-label">Funcionarios</div>
        <div class="kpi-value"><?= $total_funcionarios ?></div>
    </div>
    <div class="card-kpi green">
        <div class="kpi-label">Resultado do Mes</div>
        <div class="kpi-value"><?= moeda($recebido_mes - $despesas_mes) ?></div>
    </div>
    <div class="card-kpi yellow">
        <div class="kpi-label">Inadimplencia</div>
        <div class="kpi-value"><?= count($vencidas) ?> contas</div>
    </div>
</div>

<!-- Gráfico -->
<div class="card-premium mb-3">
    <div class="card-title">Receitas vs Despesas (Ultimos 6 meses)</div>
    <canvas id="chartDash" height="80"></canvas>
</div>

<!-- Tabelas lado a lado -->
<div class="grid-2 mb-3">
    <!-- Vencidas -->
    <div class="card-premium">
        <div class="card-title" style="color:var(--danger);">Contas Vencidas</div>
        <div class="table-responsive">
        <table class="table-premium">
        <thead><tr><th>Aluno</th><th>Vencimento</th><th class="text-end">Valor</th></tr></thead>
        <tbody>
        <?php if (empty($vencidas)): ?>
        <tr><td colspan="3" class="text-center text-muted">Nenhuma conta vencida</td></tr>
        <?php else: ?>
        <?php foreach ($vencidas as $v): ?>
        <tr>
            <td><?= sanitize($v['aluno_nome'] ?: '-') ?></td>
            <td><span class="badge badge-vencido"><?= data_br($v['data_vencimento']) ?></span></td>
            <td class="text-end text-danger"><?= moeda($v['valor']) ?></td>
        </tr>
        <?php endforeach; ?>
        <?php endif; ?>
        </tbody>
        </table>
        </div>
    </div>

    <!-- Últimos recebimentos -->
    <div class="card-premium">
        <div class="card-title" style="color:var(--success);">Ultimos Recebimentos</div>
        <div class="table-responsive">
        <table class="table-premium">
        <thead><tr><th>Aluno</th><th>Data</th><th class="text-end">Valor</th></tr></thead>
        <tbody>
        <?php if (empty($ultimos)): ?>
        <tr><td colspan="3" class="text-center text-muted">Nenhum recebimento</td></tr>
        <?php else: ?>
        <?php foreach ($ultimos as $u): ?>
        <tr>
            <td><?= sanitize($u['aluno_nome'] ?: '-') ?></td>
            <td><?= data_br($u['data_pagamento']) ?></td>
            <td class="text-end text-success"><?= moeda($u['valor_pago']) ?></td>
        </tr>
        <?php endforeach; ?>
        <?php endif; ?>
        </tbody>
        </table>
        </div>
    </div>
</div>

<!-- Próximas contas a pagar -->
<div class="card-premium">
    <div class="card-title" style="color:var(--warning);">Proximas Contas a Pagar</div>
    <div class="table-responsive">
    <table class="table-premium">
    <thead><tr><th>Fornecedor</th><th>Descricao</th><th>Vencimento</th><th class="text-end">Valor</th></tr></thead>
    <tbody>
    <?php if (empty($proximas_pagar)): ?>
    <tr><td colspan="4" class="text-center text-muted">Nenhuma conta pendente</td></tr>
    <?php else: ?>
    <?php foreach ($proximas_pagar as $p):
        $vencido = strtotime($p['data_vencimento']) < time();
    ?>
    <tr>
        <td><?= sanitize($p['fornecedor_nome'] ?: '-') ?></td>
        <td><?= sanitize($p['descricao']) ?></td>
        <td><span class="badge <?= $vencido ? 'badge-vencido' : 'badge-pendente' ?>"><?= data_br($p['data_vencimento']) ?></span></td>
        <td class="text-end"><?= moeda($p['valor']) ?></td>
    </tr>
    <?php endforeach; ?>
    <?php endif; ?>
    </tbody>
    </table>
    </div>
</div>

<script src="https://cdn.jsdelivr.net/npm/chart.js@4"></script>
<script>
new Chart(document.getElementById('chartDash').getContext('2d'), {
    type: 'bar',
    data: {
        labels: <?= json_encode($chart_labels) ?>,
        datasets: [
            {
                label: 'Receitas',
                data: <?= json_encode($chart_receitas) ?>,
                backgroundColor: 'rgba(34,197,94,0.6)',
                borderColor: '#22c55e',
                borderWidth: 1,
                borderRadius: 6
            },
            {
                label: 'Despesas',
                data: <?= json_encode($chart_despesas) ?>,
                backgroundColor: 'rgba(239,68,68,0.6)',
                borderColor: '#ef4444',
                borderWidth: 1,
                borderRadius: 6
            }
        ]
    },
    options: {
        responsive: true,
        plugins: { legend: { labels: { color: '#94a3b8' } } },
        scales: {
            x: { ticks: { color: '#64748b' }, grid: { color: 'rgba(30,41,59,0.5)' } },
            y: { ticks: { color: '#64748b', callback: v => 'R$ ' + v.toLocaleString('pt-BR') }, grid: { color: 'rgba(30,41,59,0.5)' } }
        }
    }
});
</script>

<?php require_once __DIR__ . '/../includes/footer.php'; ?>
