feat(apps): الدراور على نمط سيرو — المكافآت والدعوات والمساعدة

جُرد دراور سيرو: 14 مدخلاً للراكب (map_menu_widget) و23 للسائق
(drawer_captain). بُني ما له نقطة فعلية على NestJS، والباقي مذكور صراحةً.

## مبنيّ
- **المكافآت** (features/rewards): GET /rewards/referrals و /rewards/coupons —
  كلاهما مُتحقَّق حيّاً. كود الدعوة يُنسخ ويُشارك، وعدّادات دعوتَهم/قيد
  التأكيد/مدفوعة. يقابل Promos + Invite Driver في سيرو
- **شارك التطبيق · قيّم التطبيق · سياسة الخصوصية · تطبيق الطرف الآخر** —
  أفعال محليّة بلا نقطة خادم (share_plus + url_launcher)
- **المساعدة** وُسّعت: أسئلة شائعة قابلة للطيّ · واتساب الدعم ·
  **فحص توافق الجهاز** (نمط سيرو) يفحص ما يُعطّل التطبيق فعلاً: خدمة الموقع
  وإذنها وإذن الإشعارات — أسباب حقيقية لشكوى «التطبيق لا يعمل»
- روابط المتجر والخصوصية والدعم صارت قيم بناء لكل مستأجر في BuildConfig

## غير مبنيّ — ولا نقطة خادم له
الشكاوى (R3 في الباكلوج) · الإحصاءات · التحدّيات ولوحة المتصدّرين · مركز
الصيانة · جدولي · التأمين الصحي (مؤجَّل بقرار المالك) · الطعام والمواصلات
(خارج النطاق، docs/39 §1). بناء واجهة بلا خادم يعني شاشة تكذب على المستخدم.

## سجلّ الإشعارات
سيرو يعرض قائمة إشعارات؛ الخادم يوفّر POST /notifications/token فقط بلا نقطة
سرد. لم تُبنَ شاشة قائمة على فراغ.

flutter analyze نظيف في التطبيقين.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Hamza-Ayed
2026-08-05 01:34:23 +03:00
co-authored by Claude Opus 5
parent 6a33cc7241
commit ca766a2d4e
27 changed files with 1406 additions and 48 deletions
+6
View File
@@ -11,6 +11,7 @@ import '../features/profile/view/profile_edit_page.dart';
import '../features/profile/view/profile_setup_page.dart';
import '../features/rating/data/rating_repository.dart';
import '../features/rewards/view/rewards_page.dart';
import '../features/rating/view/rating_page.dart';
@@ -46,6 +47,7 @@ class Routes {
static const profileEdit = '/account';
static const settings = '/settings';
static const support = '/support';
static const rewards = '/rewards';
static const chat = '/chat';
static const onboarding = '/onboarding';
}
@@ -135,6 +137,10 @@ final appRouter = GoRouter(
path: Routes.onboarding,
builder: (context, state) => const OnboardingPage(),
),
GoRoute(
path: Routes.rewards,
builder: (context, state) => const RewardsPage(),
),
GoRoute(
path: Routes.support,
builder: (context, state) => const SupportPage(),