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:
co-authored by
Claude Opus 5
parent
6a33cc7241
commit
ca766a2d4e
@@ -45,6 +45,11 @@ EXTRA = {
|
||||
"phoneTitle": "أهلاً بك، كابتن",
|
||||
"profileLead": "اسمك يظهر للراكب عند الرحلة.",
|
||||
"historyEmpty": "لا رحلات بعد — اتصل لتصلك الطلبات",
|
||||
"rewardsInviteTitle": "ادعُ سائقاً",
|
||||
"rewardsInviteLead": "شارك كودك — تربح عن كل سائق ينضم",
|
||||
"menuInvite": "ادعُ سائقاً",
|
||||
"menuDriverApp": "تطبيق الراكب",
|
||||
"shareMessage": "انضم لـTripz كسائق — استعمل كودي {code}",
|
||||
},
|
||||
'en': {
|
||||
"obApplyTitle": "Register as a driver",
|
||||
@@ -81,6 +86,11 @@ EXTRA = {
|
||||
"phoneTitle": "Welcome, captain",
|
||||
"profileLead": "Your name is shown to the rider during a trip.",
|
||||
"historyEmpty": "No trips yet — go online to receive requests",
|
||||
"rewardsInviteTitle": "Invite a driver",
|
||||
"rewardsInviteLead": "Share your code — earn for every driver who joins",
|
||||
"menuInvite": "Invite a driver",
|
||||
"menuDriverApp": "Rider app",
|
||||
"shareMessage": "Join Tripz as a driver — use my code {code}",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ cd "$(dirname "$0")/.."
|
||||
# ملفات يملكها السائق ولا تُنسخ من الراكب أبداً
|
||||
OWN=(
|
||||
"core/config.dart" # appRole = driver
|
||||
"core/build_config.dart" # اسم التطبيق (الألوان تُحدَّث يدوياً معاً)
|
||||
"core/build_config.dart" # اسم التطبيق + روابط الطرف الآخر
|
||||
"core/di.dart" # DutyCubit + OnboardingCubit + PayoutCubit
|
||||
"core/router.dart" # DutyPage + EarningsPage + بوابة التسجيل
|
||||
"core/l10n/gen"
|
||||
|
||||
Reference in New Issue
Block a user