fix: عمود overview + قرارات المالك (الخرائط · فلسفة المال · تنظيف المستودع)
إصلاح انحدار أدخلتُه: /admin/overview كان يستعلم عن `t.created_at` وهو غير موجود في كيان الرحلة (الاسم `requested_at`)، فترجع النقطة 500 ويُفرَّغ جدول المستأجرين في لوحة السوبر-أدمن. فحص الأنواع لم يمسكه لأن استعلامات QueryBuilder نصوص، والمحكّ الذي كان سيمسكه لم يُشغَّل. قرارات المالك 2026-07-18: - الخرائط: `intaleq_maps` حصراً (SDK انطلق على MapLibre). تصحيح قرار سابق خاطئ: flutter_map + latlong2 طبقة منافسة تعطي نوعَي LatLng متضاربين. السبب ليس عمل جوجل في سوريا — بل قِدَم بياناتها في المنطقة. - docs/24 جديد: فلسفة المال — فصل الإيراد (شحن السائق · رسوم العمليات) عن الأمانة (شحن الراكب)، بمحفظتين لا بحقل حالة، ودفتر مضاف فقط. - P موسّعة (بوابات · تسوية بالرسائل لكليك/شام كاش · رسوم بالدولة · تقارير) و O5 (ترتيب المهام المجدولة)، وتأجيل Android Auto/CarPlay. - الحزم: نسخ سيرو الأحدث + live_activities لشاشة القفل في iOS. تنظيف: إخراج 463 ملف بناء NDK من التتبّع، وإخراج شهادات التوقيع ومفتاح App Store من المستودع (تُولَّد من جديد عند الحاجة) مع تحديث .gitignore. الملفات باقية على القرص — أُزيلت من الفهرس فقط. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
de4bbd00ac
commit
4ca932dd1f
@@ -120,11 +120,17 @@ if (Features.chat) routes.add(GoRoute(path: '/chat', builder: ...));
|
||||
**القاعدة الحاكمة**: `الفعّال = BuildConfig ∩ المانيفست الريموت ∩ استحقاقات السيرفر`.
|
||||
التطبيق **لا يمنح** صلاحية — يخفي فقط. من فكّك التطبيق وفعّل كل شيء يصطدم بـ403 من `FeatureGuard`.
|
||||
|
||||
## 6. الخرائط
|
||||
## 6. الخرائط — `intaleq_maps` حصراً
|
||||
|
||||
- **`flutter_map` + بلاطات انطلق** — لا `google_maps_flutter`.
|
||||
- البلاطات: التطبيق → انطلق **مباشرة** (حجم كبير، بلا أسرار).
|
||||
- الجيوكودنغ/المسارات/الأماكن: التطبيق → **سيرفرنا** → انطلق (يحمي المفتاح ويكيّش ويقيس الحصص).
|
||||
**القرار (المالك، 2026-07-18، مصحَّح):** تُستعمل حزمة **`intaleq_maps`** (SDK انطلق، إصدار 2.2.0، مبنية على MapLibre GL) — وهي حزمة المالك نفسه ومنشورة على pub.dev.
|
||||
|
||||
> ⚠️ **تصحيح قرار سابق**: كان مكتوباً «`flutter_map` + بلاطات انطلق». هذا **خطأ**: `flutter_map` و`latlong2` طبقة منافسة تُعرّف `LatLng` خاصاً بها، فيجتمع في المشروع نوعان بنفس الاسم. `intaleq_maps` تُصدِّر `LatLng` و`Marker` و`Polyline` و`CameraUpdate` بنفسها كبديل drop-in لـ`google_maps_flutter`. **لا يُضاف `flutter_map` ولا `latlong2` إطلاقاً.**
|
||||
|
||||
**لماذا انطلق لا جوجل** (تصحيح فهم شائع): خرائط جوجل **تعمل** في سوريا كـAPI وكرندر؛ غير العامل جزئياً هو تطبيق جوجل الرسمي — وهذا لا يعنينا لأن التوجيه داخل تطبيقنا. السبب الحقيقي أن **بيانات جوجل في المنطقة قديمة (لم تُحدَّث منذ 2011)**، بينما انطلق مُحدَّثة وبمستوى تجاري وأدقّ ميدانياً.
|
||||
|
||||
الخريطة كواجهة تأتي من الحزمة؛ ويبقى ما هو **سيرفري** على حاله: الجيوكودنغ والمسارات والأماكن تمرّ عبر **سيرفرنا** (يحمي المفتاح ويكيّش ويقيس الحصص لكل مستأجر).
|
||||
|
||||
**مفتاح الخريطة** يأتي من البيئة/إعداد المستأجر — لا يُكتب في الكود ولا في المستودع.
|
||||
|
||||
## 7. ما يُعاد استعماله من التطبيق القديم — لا يُعاد بناؤه
|
||||
|
||||
@@ -154,7 +160,7 @@ if (Features.chat) routes.add(GoRoute(path: '/chat', builder: ...));
|
||||
| الحقن | `get_it` |
|
||||
| الشبكة | `dio` |
|
||||
| التنقّل | `go_router` |
|
||||
| الخرائط | `flutter_map` + `latlong2` |
|
||||
| الخرائط | **`intaleq_maps`** (لا `flutter_map` ولا `latlong2` ولا `google_maps_flutter`) |
|
||||
| التخزين الآمن | `flutter_secure_storage` |
|
||||
| الزمن الحقيقي | `socket_io_client` |
|
||||
| الإشعارات | `firebase_messaging` + `flutter_local_notifications` |
|
||||
@@ -190,3 +196,15 @@ if (Features.chat) routes.add(GoRoute(path: '/chat', builder: ...));
|
||||
- [ ] النصوص عربية وعبر طبقة الترجمة
|
||||
- [ ] لا استيراد متقاطع بين الميزات
|
||||
- [ ] السيرفر يفرض ما يخفيه التطبيق (لا حماية بالواجهة وحدها)
|
||||
|
||||
---
|
||||
|
||||
## 13. الاختبار على بناء release لا debug ⚠️
|
||||
|
||||
**حذف كود الميزة المقفلة يحدث في بناء release/AOT فقط.** في debug (JIT) يبقى الكود كله موجوداً ولو كان العلم `const false`.
|
||||
|
||||
فالتحقّق من أن نسخة lite لا تحتوي فعلاً على كود النسخ الأعلى **لا يصحّ إلا على بناء release** — وأي فحص على debug يعطي نتيجة مضلِّلة. القياس المعتمد: بناء release لكل طبقة ومقارنة الحجم + تفتيش الرموز.
|
||||
|
||||
## 14. مؤجَّل بقرار المالك (2026-07-18)
|
||||
|
||||
- **Android Auto** (موجود في سيرو: `MyCarSession` · `MyCarScreen` · `MyCarAppService`) و**CarPlay** — عليهما مشاكل ولا أولوية لهما الآن. يُنظر فيهما لاحقاً.
|
||||
|
||||
Reference in New Issue
Block a user