Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
173 changes: 173 additions & 0 deletions IMPORT_SYSTEM_README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
# نظام استيراد البيانات الشامل

تم إنشاء نظام استيراد شامل واحترافي يدعم CSV وExcel وJSON لإدارة بيانات الهواتف.

## المميزات

### 1. دعم تنسيقات متعددة
- **CSV**: ملفات مفصولة بفواصل
- **Excel**: ملفات .xlsx و .xls
- **JSON**: ملفات JSON مع دعم تنسيقات مختلفة

### 2. التحقق من صحة البيانات
- التحقق من وجود الاسم والسعر
- التحقق من صحة تنسيق السعر
- معالجة الأخطاء مع رسائل واضحة
- عرض البيانات الصحيحة والخاطئة منفصلة

### 3. واجهة مستخدم متقدمة
- معاينة البيانات قبل الاستيراد
- إحصائيات مفصلة للاستيراد
- ألوان مختلفة لحالة البيانات
- رسائل خطأ واضحة ومفيدة

### 4. معالجة الأخطاء الشاملة
- معالجة أخطاء الملفات
- معالجة أخطاء التنسيق
- معالجة أخطاء الصلاحيات
- تسجيل الأخطاء للتطوير

## الملفات المضافة

### 1. نماذج البيانات
- `lib/models/import_data_model.dart`: نموذج بيانات الاستيراد مع التحقق من الصحة

### 2. الخدمات
- `lib/services/import_service.dart`: خدمة معالجة الملفات المختلفة

### 3. الشاشات
- `lib/screens/import_screen.dart`: واجهة الاستيراد الرئيسية

### 4. الأدوات المساعدة
- `lib/utils/import_error_handler.dart`: معالج الأخطاء المتقدم

## كيفية الاستخدام

### 1. تشغيل التطبيق
```bash
flutter pub get
flutter run
```

### 2. الوصول للاستيراد
- اضغط على أيقونة الاستيراد (📁) في الشاشة الرئيسية
- أو استخدم زر "استيراد البيانات" في AppBar

### 3. اختيار الملف
- اختر ملف CSV أو Excel أو JSON
- سيتم معالجة الملف تلقائياً
- ستظهر معاينة للبيانات

### 4. مراجعة البيانات
- راجع البيانات الصحيحة في التبويب الأول
- راجع البيانات الخاطئة في التبويب الثاني
- تحقق من الأخطاء وأسبابها

### 5. تأكيد الاستيراد
- اضغط "تأكيد الاستيراد" للبيانات الصحيحة فقط
- سيتم إضافة الهواتف إلى قاعدة البيانات

## تنسيق الملفات المدعومة

### CSV
```csv
name,price,brand,model,description
iPhone 15 Pro,120000,Apple,iPhone 15 Pro,أحدث هاتف من آبل
Samsung Galaxy S24,95000,Samsung,Galaxy S24,هاتف ذكي متطور
```

### Excel
نفس تنسيق CSV ولكن في ملف Excel

### JSON
```json
{
"phones": [
{
"name": "iPhone 15 Pro",
"price": 120000,
"brand": "Apple",
"model": "iPhone 15 Pro",
"description": "أحدث هاتف من آبل"
}
]
}
```

## أسماء الأعمدة المدعومة

### العربية
- اسم، الاسم
- سعر، السعر
- ماركة، الماركة
- موديل، الموديل
- وصف، الوصف
- صورة، الصورة

### الإنجليزية
- name, product_name, product name
- price, cost
- brand, manufacturer
- model, model_name, model name
- description, details
- image, image_path, image path

## معالجة الأخطاء

### أنواع الأخطاء المدعومة
1. **أخطاء الملف**: ملف غير موجود، صلاحيات غير كافية
2. **أخطاء التنسيق**: تنسيق غير صحيح، ترميز خاطئ
3. **أخطاء البيانات**: اسم فارغ، سعر غير صحيح
4. **أخطاء الذاكرة**: ملف كبير جداً

### رسائل الخطأ
- رسائل واضحة باللغة العربية
- اقتراحات لحل المشاكل
- تسجيل مفصل للأخطاء

## التحسينات المستقبلية

### 1. ميزات إضافية
- دعم ملفات XML
- استيراد من قاعدة بيانات خارجية
- تصدير البيانات
- نسخ احتياطي تلقائي

### 2. تحسينات الأداء
- معالجة الملفات الكبيرة
- استيراد متوازي
- ذاكرة تخزين مؤقت

### 3. تحسينات الواجهة
- سحب وإفلات الملفات
- معاينة أفضل للبيانات
- تصدير تقارير الاستيراد

## استكشاف الأخطاء

### مشاكل شائعة
1. **الملف لا يفتح**: تحقق من نوع الملف والصلاحيات
2. **البيانات لا تظهر**: تحقق من تنسيق الملف وأسماء الأعمدة
3. **أخطاء في السعر**: تأكد من أن السعر أرقام فقط
4. **الاسم فارغ**: تأكد من وجود عمود الاسم

### حلول سريعة
- استخدم الملفات النموذجية
- تحقق من ترميز الملف (UTF-8)
- تأكد من أسماء الأعمدة الصحيحة
- راجع رسائل الخطأ بعناية

## الدعم الفني

للحصول على المساعدة:
1. راجع رسائل الخطأ
2. تحقق من تنسيق الملف
3. استخدم الملفات النموذجية
4. راجع هذا الدليل

---

**ملاحظة**: تأكد من تثبيت المكتبات المطلوبة قبل تشغيل التطبيق:
- csv: ^6.0.0
- excel: ^4.0.6
- file_picker: ^8.0.0+1
Loading