/**
 * ملف تحسين اختيار الوحدات التلقائي
 * هذا الملف يتم إضافته لتحسين عملية اختيار الوحدة الافتراضية تلقائياً
 * 
 * الميزات:
 * 1. عند اختيار صنف، يتم جلب الوحدات تلقائياً
 * 2. يتم اختيار الوحدة الافتراضية (is_default = true) تلقائياً
 * 3. إذا لم توجد وحدة افتراضية، يتم اختيار أول وحدة في القائمة
 * 4. توفير الوقت والجهد على المستخدم
 */

// دالة محسنة لإضافة مستمعي الأحداث
function attachItemEventListenersImproved() {
    document.querySelectorAll('.item-select').forEach(select => {
        select.addEventListener('change', function() {
            const index = this.dataset.index;
            const itemId = this.value;

            const unitSelect = document.querySelector(`.item-unit-select[data-index="${index}"]`);
            unitSelect.innerHTML = '<option value="">-- اختر الوحدة --</option>';

            if (itemId) {
                // جلب الوحدات ونسبة الضريبة من الصنف
                fetch(`/inventory/items/${itemId}/units`, { credentials: 'same-origin' })
                    .then(response => response.json())
                    .then(data => {
                        if (data.success && data.data && data.data.length > 0) {
                            let defaultUnitId = null;
                            let firstUnitId = null;
                            
                            // إضافة الوحدات وتحديد الافتراضية
                            data.data.forEach((unit, idx) => {
                                const option = document.createElement('option');
                                option.value = unit.id;
                                option.textContent = unit.unit_name;
                                unitSelect.appendChild(option);
                                
                                // حفظ معرف الوحدة الافتراضية
                                if (unit.is_default) {
                                    defaultUnitId = unit.id;
                                }
                                
                                // حفظ أول وحدة
                                if (idx === 0) {
                                    firstUnitId = unit.id;
                                }
                            });
                            
                            // اختيار الوحدة الافتراضية أو الأولى إذا لم توجد افتراضية
                            if (defaultUnitId) {
                                unitSelect.value = defaultUnitId;
                                console.log(`✅ تم اختيار الوحدة الافتراضية: ${defaultUnitId}`);
                            } else if (firstUnitId) {
                                unitSelect.value = firstUnitId;
                                console.log(`✅ تم اختيار أول وحدة: ${firstUnitId}`);
                            }
                            
                            // تطبيق حدث التغيير لتحديث البيانات الأخرى إذا لزم الأمر
                            unitSelect.dispatchEvent(new Event('change'));
                        }
                    })
                    .catch(error => {
                        console.error('❌ خطأ في جلب الوحدات:', error);
                    });
                
                // جلب نسبة الضريبة من الصنف وتحديثها في الحقل
                fetch(`/items/${itemId}`, { 
                    credentials: 'same-origin',
                    headers: {
                        'Accept': 'application/json'
                    }
                })
                    .then(response => response.json())
                    .then(data => {
                        if (data && data.tax_rate) {
                            const taxInput = document.querySelector(`.item-tax[data-index="${index}"]`);
                            if (taxInput && !taxInput.value) {
                                taxInput.value = data.tax_rate;
                                taxInput.dispatchEvent(new Event('change'));
                            }
                        }
                    })
                    .catch(error => console.error('❌ خطأ في جلب نسبة الضريبة:', error));
            }
        });
    });

    document.querySelectorAll('.item-qty, .item-price, .item-discount, .item-tax').forEach(input => {
        input.addEventListener('change', updateTotals);
        input.addEventListener('keyup', updateTotals);
    });
}

// إعادة تسمية الدالة القديمة إلى الجديدة تلقائياً عند التحميل
document.addEventListener('DOMContentLoaded', function() {
    // إذا كانت الدالة القديمة موجودة، استبدلها
    if (typeof attachItemEventListeners !== 'undefined') {
        attachItemEventListeners = attachItemEventListenersImproved;
    }
});
