// تحديث إحصائيات لوحة التحكم
function updateDashboardStats() {
    fetch('api/dashboard_stats.php')
        .then(response => response.json())
        .then(data => {
            document.getElementById('products-count').textContent = data.products_count;
            document.getElementById('today-sales').textContent = formatCurrency(data.today_sales);
            document.getElementById('customers-count').textContent = data.customers_count;
            document.getElementById('total-debts').textContent = formatCurrency(data.total_debts);
        })
        .catch(error => console.error('Error:', error));
}

// تحديث قائمة المنتجات قليلة المخزون
function updateLowStockProducts() {
    fetch('api/low_stock_products.php')
        .then(response => response.json())
        .then(data => {
            const container = document.getElementById('low-stock-products');
            container.innerHTML = '';
            
            if (data.length === 0) {
                container.innerHTML = '<p class="text-muted">لا توجد منتجات قليلة المخزون</p>';
                return;
            }

            const table = document.createElement('table');
            table.className = 'table table-sm';
            table.innerHTML = `
                <thead>
                    <tr>
                        <th>المنتج</th>
                        <th>الكمية المتبقية</th>
                    </tr>
                </thead>
                <tbody>
                    ${data.map(product => `
                        <tr>
                            <td>${product.name}</td>
                            <td>${product.quantity}</td>
                        </tr>
                    `).join('')}
                </tbody>
            `;
            container.appendChild(table);
        })
        .catch(error => console.error('Error:', error));
}

// تحديث آخر المبيعات
function updateRecentSales() {
    fetch('api/recent_sales.php')
        .then(response => response.json())
        .then(data => {
            const container = document.getElementById('recent-sales');
            container.innerHTML = '';
            
            if (data.length === 0) {
                container.innerHTML = '<p class="text-muted">لا توجد مبيعات حديثة</p>';
                return;
            }

            const table = document.createElement('table');
            table.className = 'table table-sm';
            table.innerHTML = `
                <thead>
                    <tr>
                        <th>المنتج</th>
                        <th>الكمية</th>
                        <th>السعر</th>
                        <th>التاريخ</th>
                    </tr>
                </thead>
                <tbody>
                    ${data.map(sale => `
                        <tr>
                            <td>${sale.product_name}</td>
                            <td>${sale.quantity}</td>
                            <td>${formatCurrency(sale.price)}</td>
                            <td>${sale.sale_date}</td>
                        </tr>
                    `).join('')}
                </tbody>
            `;
            container.appendChild(table);
        })
        .catch(error => console.error('Error:', error));
}

// دالة البحث العامة
function searchItems(searchTerm, endpoint, container) {
    fetch(`${endpoint}?search=${encodeURIComponent(searchTerm)}`)
        .then(response => response.json())
        .then(data => {
            container.innerHTML = '';
            if (data.length === 0) {
                container.innerHTML = '<p class="text-muted">لا توجد نتائج</p>';
                return;
            }
            // تنفيذ عرض النتائج حسب نوع العنصر
            renderSearchResults(data, container);
        })
        .catch(error => console.error('Error:', error));
}

// معالجة رفع الصور
function handleImageUpload(input, previewElement) {
    if (input.files && input.files[0]) {
        const reader = new FileReader();
        reader.onload = function(e) {
            previewElement.src = e.target.result;
            previewElement.style.display = 'block';
        };
        reader.readAsDataURL(input.files[0]);
    }
}

// تحديث الصفحة كل دقيقة
if (document.getElementById('products-count')) {
    updateDashboardStats();
    updateLowStockProducts();
    updateRecentSales();
    setInterval(() => {
        updateDashboardStats();
        updateLowStockProducts();
        updateRecentSales();
    }, 60000);
}

// إضافة مستمعات الأحداث عند تحميل الصفحة
document.addEventListener('DOMContentLoaded', function() {
    // مستمع حدث النموذج
    const forms = document.querySelectorAll('form');
    forms.forEach(form => {
        form.addEventListener('submit', function(e) {
            if (!form.checkValidity()) {
                e.preventDefault();
                e.stopPropagation();
            }
            form.classList.add('was-validated');
        });
    });

    // مستمعات أحداث البحث
    const searchInputs = document.querySelectorAll('.search-input');
    searchInputs.forEach(input => {
        input.addEventListener('input', debounce(function(e) {
            const searchTerm = e.target.value;
            const endpoint = input.dataset.endpoint;
            const container = document.querySelector(input.dataset.container);
            if (searchTerm.length >= 2) {
                searchItems(searchTerm, endpoint, container);
            }
        }, 300));
    });
});

// دالة مساعدة للحد من تكرار الطلبات
function debounce(func, wait) {
    let timeout;
    return function executedFunction(...args) {
        const later = () => {
            clearTimeout(timeout);
            func(...args);
        };
        clearTimeout(timeout);
        timeout = setTimeout(later, wait);
    };
}

// دالة تنسيق العملات
function formatCurrency(amount) {
    return amount.toFixed(2) + ' DH';
}

// تحديث إجمالي المبيع في نموذج البيع
function updateTotal() {
    const quantity = parseFloat(document.getElementById('quantity').value) || 0;
    const price = parseFloat(document.getElementById('price').value) || 0;
    const total = quantity * price;
    document.getElementById('total').value = formatCurrency(total);
}

// تحديث السعر عند اختيار منتج
function updatePrice(price) {
    document.getElementById('price').value = formatCurrency(price);
    updateTotal();
}
