<h1 class="h3 mb-4">Bem-vindo ao SOV</h1>

<div class="row mb-4">
    <div class="col-md-3">
        <div class="card shadow-sm">
            <div class="card-body text-center">
                <i class="bi bi-plus-circle fs-2 text-primary"></i>
                <h6 class="mt-2">Nova Ordem</h6>
                <a href="<?= URL ?>/ordens/cadastrar" class="btn btn-sm btn-outline-primary mt-2">Criar</a>
            </div>
        </div>
    </div>
    <div class="col-md-3">
        <div class="card shadow-sm">
            <div class="card-body text-center">
                <i class="bi bi-file-earmark-text fs-2 text-success"></i>
                <h6 class="mt-2">Minhas Ordens</h6>
                <a href="<?= URL ?>/ordens" class="btn btn-sm btn-outline-success mt-2">Ver</a>
            </div>
        </div>
    </div>
    <div class="col-md-3">
        <div class="card shadow-sm">
            <div class="card-body text-center">
                <i class="bi bi-graph-up-arrow fs-2 text-warning"></i>
                <h6 class="mt-2">Relatórios</h6>
                <a href="<?= URL ?>/relatorios" class="btn btn-sm btn-outline-warning mt-2">Acessar</a>
            </div>
        </div>
    </div>
</div>

<div class="row">
    <div class="col-md-6 mb-4">
        <div class="card shadow-sm">
            <div class="card-header">
                <strong>Despesas porr mês</strong>
            </div>
            <div class="card-body">
                <canvas id="graficoBI" height="120"></canvas>
            </div>
        </div>
    </div>


    <div class="col-md-6 mb-4">
        <div class="card shadow-sm">
            <div class="card-header">
                <strong>Despesas por Tipo</strong>
            </div>
           <div class="card-body">
                <canvas id="graficoTipos"></canvas>
        </div>

        </div>
    </div>


    <div class="col-md-6 mb-4">
        <div class="card shadow-sm">
            <div class="card-header">
                <strong>Top 5 Diárias por Funcionário</strong>
            </div>
           <div class="card-body">
               <canvas id="graficoDiariasFuncionario"></canvas>
        </div>

        </div>
    </div>
    


    <div class="col-md-6 mb-4">
        <div class="card shadow-sm">
            <div class="card-header">
                <strong>Ordens por Status</strong>
            </div>
            <div class="card-body">
                <canvas id="graficoOrdensStatus" height="120"></canvas>
            </div>
        </div>
    </div>
</div>

<!-- Chart.js -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

<script>
document.addEventListener('DOMContentLoaded', function () {
    const meses = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'];

    // Gráfico: Despesas por mês
    fetch('<?= URL ?>/dashboard/dadosDespesas')
        .then(res => res.json())
        .then(dados => {
            const labels = dados.map(item => meses[Number(item.mes) - 1]);
            const valores = dados.map(item => parseFloat(item.total));

            new Chart(document.getElementById('graficoBI'), {
                type: 'bar',
                data: {
                    labels,
                    datasets: [{
                        label: 'Despesas (R$)',
                        data: valores,
                        backgroundColor: 'rgba(54, 162, 235, 0.6)',
                        borderColor: 'rgba(54, 162, 235, 1)',
                        borderWidth: 1,
                        borderRadius: 5
                    }]
                },
                options: {
                    responsive: true,
                    plugins: {
                        legend: { position: 'top' },
                        tooltip: {
                            callbacks: {
                                label: ctx => 'R$ ' + ctx.raw.toFixed(2).replace('.', ',')
                            }
                        }
                    },
                    scales: {
                        y: {
                            beginAtZero: true,
                            title: { display: true, text: 'Valor (R$)' }
                        }
                    }
                }
            });
        });

    // Gráfico: Despesas por Tipo
    document.addEventListener('DOMContentLoaded', function () {
  fetch('<?= URL ?>/dashboard/despesasPorTipo')
    .then(res => res.json())
    .then(dados => {
      const labels = dados.map(d => d.tipo);
      const valores = dados.map(d => parseFloat(d.total));
      new Chart(document.getElementById('graficoTipos'), {
        type: 'pie',
        data: {
          labels,
          datasets: [{
            label: 'Por Tipo',
            data: valores,
            backgroundColor: ['#007bff', '#ffc107', '#28a745', '#dc3545', '#6f42c1', '#17a2b8']
          }]
        },
        options: {
          responsive: true,
          plugins: {
            title: {
              display: true,
              text: 'Despesas por Tipo'
            }
          }
        }
      });
    });
});

    // Gráfico: Ordens por Status
    fetch('<?= URL ?>/dashboard/ordensPorStatus')
        .then(res => res.json())
        .then(dados => {
            const labels = dados.map(d => d.status);
            const valores = dados.map(d => parseInt(d.total));

            new Chart(document.getElementById('graficoOrdensStatus'), {
                type: 'doughnut',
                data: {
                    labels,
                    datasets: [{
                        label: 'Ordens',
                        data: valores,
                        backgroundColor: ['#17a2b8', '#ffc107', '#28a745', '#dc3545', '#6c757d']
                    }]
                },
                options: {
                    responsive: true,
                    plugins: {
                        title: { display: true, text: 'Ordens por Status' },
                        tooltip: {
                            callbacks: {
                                label: ctx => ctx.label + ': ' + ctx.raw
                            }
                        }
                    }
                }
            });
        });
});
</script>
