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
@@ -53,33 +53,17 @@ class WalletRepository {
|
||||
/// الخادم يولّد مرجعاً ويعرض حساب الاستلام، ثم يحوّل المستخدم، والتسوية
|
||||
/// تصل لاحقاً عبر مطابقة رسالة المزوّد. هذا **نفس مسار سيرو** حرفياً.
|
||||
/// PayMob وحده يرجّع رابط إعادة توجيه، و`cash` وحده فوري.
|
||||
/// شحن **الرصيد التشغيلي** للسائق — نيّة مختلفة عن شحن المحفظة:
|
||||
/// `credit_topup` إيرادٌ يُقيَّد على المستأجر، والخادم يرفضها من غير
|
||||
/// السائق (`payments.service.ts:67`).
|
||||
Future<TopupResult> chargeCredit({
|
||||
required num amount,
|
||||
required String provider,
|
||||
required String currency,
|
||||
}) =>
|
||||
charge(
|
||||
amount: amount,
|
||||
provider: provider,
|
||||
currency: currency,
|
||||
purpose: 'credit_topup',
|
||||
);
|
||||
|
||||
Future<TopupResult> charge({
|
||||
required num amount,
|
||||
required String provider,
|
||||
required String currency,
|
||||
String purpose = 'topup',
|
||||
}) async {
|
||||
final res = await _api.post<Map<String, dynamic>>(
|
||||
'/payments/charge',
|
||||
body: {
|
||||
'amount': amount,
|
||||
'provider': provider,
|
||||
'purpose': purpose,
|
||||
'purpose': 'topup',
|
||||
'currency': currency,
|
||||
},
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user