refactor: إعادة تسمية التطبيقات الأربعة siro_* → intaleq_*

المجلدات وأسماء حزم dart واستيراداتها:
  siro_rider → intaleq_rider    siro_driver  → intaleq_driver
  siro_admin → intaleq_admin    siro_service → intaleq_service

شمل ذلك `name:` في كل pubspec وكل `package:siro_*` في الاستيرادات
(115 ملفاً في rider وحده)، وإشارات أسماء المجلدات في docs/ وتعليق في
backend/Admin/notifications/broadcast.php. لم تبقَ إشارة واحدة (تحقّقت).

+ ضُمّت حزم get و get_storage داخل intaleq_driver/packages/ وحُوّلت
مساراتها الثلاثة من `../../Intaleq/packages/*` إلى `./packages/*`. كانت
تُحل عرضاً إلى مجلد App/Intaleq القديم المجاور — تبعية خارج المستودع
تنكسر بأول نقل. لم يبقَ في أي تطبيق تبعية مسار خارج الشجرة.

⚠️ لم تُمسّ بعد: هويات المتاجر (applicationId · PRODUCT_BUNDLE_IDENTIFIER ·
shorebird app_id) ولا الألوان ولا النصوص المرئية ولا النطاقات — كل منها
كوميت منفصل، والهويات تحتاج قرار المالك.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Hamza-Ayed
2026-07-27 16:10:58 +03:00
co-authored by Claude Opus 5
parent 92dc6b3641
commit 0aab85c732
3137 changed files with 65294 additions and 1950 deletions
@@ -29,9 +29,9 @@
---
### 1.1 siro_admin - الإصدار القديم (GetX)
### 1.1 intaleq_admin - الإصدار القديم (GetX)
**الملف:** `siro_admin/lib/views/widgets/snackbar.dart`
**الملف:** `intaleq_admin/lib/views/widgets/snackbar.dart`
- يستخدم `Get.snackbar()` حصريًا
- يوجد دالتان فقط: `mySnackeBarError()` و `mySnackbarSuccess()`
@@ -42,9 +42,9 @@
- النصوص بالإنكليزية: `'Error'.tr`, `'Success'.tr`
- 30+ استخدامًا في التطبيق
### 1.2 siro_service - الإصدار القديم (GetX)
### 1.2 intaleq_service - الإصدار القديم (GetX)
**الملف:** `siro_service/lib/views/widgets/mycircular.dart`
**الملف:** `intaleq_service/lib/views/widgets/mycircular.dart`
- يستخدم `Get.snackbar()` حصريًا
- يوجد 3 دوال: `mySnackbarError()` و `mySnackbarWarning()` و `mySnackbarSuccess()`
@@ -52,9 +52,9 @@
- نفس `SnackbarConfig` للثوابت
- 70+ استخدامًا في التطبيق
### 1.3 siro_driver - الإصدار الحديث (Custom Widget)
### 1.3 intaleq_driver - الإصدار الحديث (Custom Widget)
**الملف:** `siro_driver/lib/views/widgets/error_snakbar.dart`
**الملف:** `intaleq_driver/lib/views/widgets/error_snakbar.dart`
- ويج محسّن مخصص مع `_SnackContent` و `AnimationController`
- يوجد 4 دوال: `mySnackbarSuccess()` و `mySnackeBarError()` و `mySnackbarInfo()` و `mySnackbarWarning()`
@@ -67,11 +67,11 @@
- **مشكلة:** يستخدم `Get.snackbar()` الذي يرمي `FlutterError` إذا لم يكن `Overlay` جاهزًا
- 100+ استخدامًا في التطبيق
### 1.4 siro_rider - الإصدار الحديث المحسّن (ScaffoldMessenger)
### 1.4 intaleq_rider - الإصدار الحديث المحسّن (ScaffoldMessenger)
**الملف:** `siro_rider/lib/views/widgets/error_snakbar.dart`
**الملف:** `intaleq_rider/lib/views/widgets/error_snakbar.dart`
- نفس تصميم `siro_driver` مع تحسينات جوهرية
- نفس تصميم `intaleq_driver` مع تحسينات جوهرية
- **يستخدم فقط `ScaffoldMessenger`** بدلاً من `Get.snackbar()` (لتجنب أخطاء `Overlay`)
- يحتوي على آلية إعادة محاولة (retry) تصل إلى 3 مرات
- `messenger.clearSnackBars()` قبل العرض (يمنع التراكم)
@@ -81,7 +81,7 @@
### 1.5 دوال Toast البسيطة
- **siro_driver** و **siro_rider** لديهما `lib/controller/functions/toast.dart`
- **intaleq_driver** و **intaleq_rider** لديهما `lib/controller/functions/toast.dart`
- `Toast.show(BuildContext context, String message, Color color)` - دالة بسيطة جدًا
- تستخدم `ScaffoldMessenger.of(context).showSnackBar()` مع `SnackBar` مادة
- 10+ استخدامات في كل تطبيق
@@ -90,7 +90,7 @@
### الفروقات بين الإصدارين (القديم والحديث)
| الخاصية | siro_admin (قديم) | siro_driver (حديث) | siro_rider (حديث) | siro_service (قديم) |
| الخاصية | intaleq_admin (قديم) | intaleq_driver (حديث) | intaleq_rider (حديث) | intaleq_service (قديم) |
|---------|:-----------------:|:------------------:|:-----------------:|:-------------------:|
| عدد الدوال | 2 | 4 | 4 | 3 |
| `mySnackbarWarning` | ❌ | ✅ | ✅ | ✅ |
@@ -111,7 +111,7 @@
**الخطوة 1:** إنشاء مجلد مشترك (shared package) في المسار:
```
siro_admin/lib/shared/widgets/snackbar/
intaleq_admin/lib/shared/widgets/snackbar/
```
**الخطوة 2:** توحيد الواجهة (API) لتصبح:
@@ -124,7 +124,7 @@ void mySnackbarWarning(String message);
void mySnackbarInfo(String message);
```
**الخطوة 3:** الاعتماد على `ScaffoldMessenger` فقط (مثل siro_rider) لتجنب مشاكل `Overlay` في GetX.
**الخطوة 3:** الاعتماد على `ScaffoldMessenger` فقط (مثل intaleq_rider) لتجنب مشاكل `Overlay` في GetX.
**الخطوة 4:** توحيد الألوان والثوابت:
@@ -135,7 +135,7 @@ void mySnackbarInfo(String message);
| info | `#1A73E8` (أزرق) | `#F0F6FF` | `info_rounded` |
| warning | `#F29900` (برتقالي) | `#FFF8E6` | `warning_amber_rounded` |
**الخطوة 5:** تحويل ملفات `toast.dart` في `siro_driver` و `siro_rider` لاستخدام دالة واحدة موحدة بدلاً من التكرار.
**الخطوة 5:** تحويل ملفات `toast.dart` في `intaleq_driver` و `intaleq_rider` لاستخدام دالة واحدة موحدة بدلاً من التكرار.
**الخطوة 6:** إزالة دوال `Get.snackbar()` المباشرة من جميع ملفات التحكم (controllers) والاستعاضة عنها بالدوال الموحدة.
@@ -160,7 +160,7 @@ void mySnackbarInfo(String message);
```
┌─────────────────────────────────────────────────────────────────────────────┐
│ طبقة العرض (Admin Dashboard) │
│ siro_admin → لوحة تحكم المدير → Flutter Web │
│ intaleq_admin → لوحة تحكم المدير → Flutter Web │
│ endpoints: Admin/marketing/*.php │
├─────────────────────────────────────────────────────────────────────────────┤
│ طبقة API (PHP Backend) │
@@ -559,8 +559,8 @@ Android Bot (Scraper) ←→ worker.php (API)
### 8.2 ملفات ترحيل البصمات - مفتاح مشفر مكشوف
#### `siro_admin/lib/views/admin/enceypt/fingerprint_migration.dart`
#### `siro_admin/lib/views/admin/enceypt/driver_fingerprint_migration.dart`
#### `intaleq_admin/lib/views/admin/enceypt/fingerprint_migration.dart`
#### `intaleq_admin/lib/views/admin/enceypt/driver_fingerprint_migration.dart`
- **الوصف:** أدوات Flutter لترحيل البصمات
- **الخطر:** يحتويان على مفتاح المشرف (admin key) بشكل نصي صريح:
```
@@ -595,7 +595,7 @@ Android Bot (Scraper) ←→ worker.php (API)
- **الخطر:** إذا كان الوصول إليه ممكنًا عبر الويب، فإنه يسرب كامل قاعدة الشفرة
- **التصنيف:** ⚠️ متوسط - انقل خارج جذر الويب أو احذف
#### `siro_admin/lib/debug_jwt.dart`
#### `intaleq_admin/lib/debug_jwt.dart`
- **الوصف:** سكربت Flutter لاختبار JWT
- **الخطر:** يكشف بنية JWT ومنهجية التشفير
- **التصنيف:** ⚠️ منخفض - احذف من بنية الإنتاج
@@ -620,8 +620,8 @@ Android Bot (Scraper) ←→ worker.php (API)
| `backend/Admin/Staff/setup.php` | إعادة تعيين الصلاحيات |
| `backend/auth/Tester/getTesterApp.php` | SQL Injection + لا مصادقة |
| `backend/auth/Tester/updateTesterApp.php` | SQL Injection + لا مصادقة |
| `siro_admin/lib/views/admin/enceypt/fingerprint_migration.dart` | مفتاح مكشوف 🔥 |
| `siro_admin/lib/views/admin/enceypt/driver_fingerprint_migration.dart` | مفتاح مكشوف 🔥 |
| `intaleq_admin/lib/views/admin/enceypt/fingerprint_migration.dart` | مفتاح مكشوف 🔥 |
| `intaleq_admin/lib/views/admin/enceypt/driver_fingerprint_migration.dart` | مفتاح مكشوف 🔥 |
### أولوية متوسطة - أمان أو تنظيف 🟡
@@ -634,7 +634,7 @@ Android Bot (Scraper) ←→ worker.php (API)
| `backend/migration/update_fingerprint_admin.php` | ترحيل بصمات - احذف بعد التأكد |
| `backend/migration/update_driver_fingerprint_admin.php` | ترحيل بصمات - احذف بعد التأكد |
| `backend/Admin/auth/register.php` | مراجعة - هل ما زال مستخدمًا؟ |
| `siro_admin/lib/debug_jwt.dart` | تصحيح JWT - احذف من الإنتاج |
| `intaleq_admin/lib/debug_jwt.dart` | تصحيح JWT - احذف من الإنتاج |
| `backend/intaleq_v1_secure_latest.md` (33k سطر) | كود مصدر كامل - انقل أو احذف |
### أولوية منخفضة - تحسين أمني 🟢