/* =====================================================
   MÓDULO: DASHBOARD - SINAGEM
   =====================================================

   Lógica específica da página de dashboard.

   FUNÇÕES:
   - Atualizar métricas
   - Animar cards
   - Carregar gráficos
   ===================================================== */

Sinagem.Dashboard = Sinagem.Dashboard || {};

/**
 * Animar cards na entrada
 */
Sinagem.Dashboard.animateCards = function() {
    const cards = document.querySelectorAll('.sinagem-card');
    cards.forEach((card, index) => {
        setTimeout(() => {
            card.classList.add('fade-in');
        }, index * 100);
    });
};

/**
 * Animar número
 */
Sinagem.Dashboard.animateNumber = function(element, targetValue, duration = 1000) {
    const startValue = parseInt(element.textContent.replace(/\D/g, '')) || 0;
    const startTime = performance.now();

    const animate = (currentTime) => {
        const elapsed = currentTime - startTime;
        const progress = Math.min(elapsed / duration, 1);

        const currentValue = Math.floor(startValue + (targetValue - startValue) * progress);
        element.textContent = Sinagem.Utils.formatNumber(currentValue);

        if (progress < 1) {
            requestAnimationFrame(animate);
        }
    };

    requestAnimationFrame(animate);
};

/**
 * Formatar número com separadores
 */
Sinagem.Dashboard.formatNumber = function(number) {
    return number.toLocaleString('pt-BR');
};

/**
 * Atualizar métricas via AJAX
 */
Sinagem.Dashboard.refreshMetrics = function() {
    console.log('📊 Atualizando métricas do dashboard');

    // Exemplo: buscar dados do servidor
    // Sinagem.Utils.ajax('/api/dashboard/metrics')
    //     .then(data => this.updateMetrics(data))
    //     .catch(error => console.error('Erro:', error));
};

console.log('📊 Módulo Dashboard carregado');
