17 Commits
Author SHA1 Message Date
Hamza-Ayed 16b4829a6d Update: 2026-08-06 22:54:35 2026-08-06 22:54:36 +03:00
Hamza-Ayed a31242f947 chore: update app icons, bump version, and refine iOS privacy usage descriptions 2026-08-04 19:54:34 +03:00
Hamza-Ayed cc9c5885b3 refactor: implement single-flight JWT renewal with rate-limiting cooldown and fix storage token handling in auth controllers 2026-08-02 01:39:21 +03:00
Hamza-Ayed c5f8c6cd8e Update: 2026-08-02 00:56:07 2026-08-02 00:56:07 +03:00
Hamza-Ayed f7df080b27 Fix payment server: remove global conRide to prevent crashing non-ride DB queries 2026-08-01 18:28:30 +03:00
Hamza-Ayed 77d7d9faf8 Fix JWT validation: use user_id instead of sub in socket servers, revert statusDriverLocation from toggleActive 2026-08-01 17:57:47 +03:00
Hamza-Ayed 1ddc6f8aa7 Fix payment server: remove global conRide to prevent crashing non-ride DB queries 2026-08-01 17:17:33 +03:00
Hamza-Ayed 84c725040f Update: 2026-08-01 05:29:35 2026-08-01 05:29:35 +03:00
Hamza-Ayed 782138ef7b translate 2026-08-01 04:47:15 +03:00
Hamza-Ayed 125c940814 Update: 2026-08-01 02:48:36 2026-08-01 02:48:36 +03:00
Hamza-Ayed 90d976e1d1 Update: 2026-07-29 19:44:57 2026-07-29 19:44:58 +03:00
Hamza-Ayed af57ca87f2 Update: 2026-07-29 16:36:26 2026-07-29 16:36:27 +03:00
Hamza-Ayed a84f2a31a7 Update: 2026-07-28 02:30:44 2026-07-28 02:30:44 +03:00
Hamza-Ayed 7eeddeb950 Update: 2026-07-27 17:18:25 2026-07-27 17:18:25 +03:00
Hamza-AyedandClaude Opus 5 5a65fc5a9e fix(api): مواءمة مسارات links.dart مع باك إند v3 الفعلي
هدف المالك: أن يعمل المسار كاملاً (تسجيل → رحلة → إنهاء) على api الجديد.
فحصت 463 مساراً في links.dart بمطابقتها على ملفات PHP الفعلية عبر خريطة
docker (root /var/www: /backend → backend/ · /v2/main → payment_server/v2/main/
· /loction_server → loction_server/). كان 71 مساراً بلا ملف؛ صار 44، وكلها
كودٌ ميت أو فجوات موثّقة أدناه لا تخمين.

أُصلح بيقين (27 مساراً):
- المقطع `ride/` كان ناقصاً في 20 مساراً — أغلبها في صميم الدورة:
  rides/get · rides/update · rides/getRideStatus{,Begin,FromStartApp} ·
  rides/updateRideAndCheckIfApplied · rides/getRideOrderID ·
  rides/getTripCountByCaptain · rides/delete · cancelRide/{add,get} ·
  mishwari · places_syria · driver_scam · tips · ecash.
- `seferWallet` → `siroWallet`: payment_server يسمّي المجلد siroWallet
  (تاريخ تسمية sefer→siro) — 3 مسارات محفظة.
- `addFingerPrint` كان على paymentServer وليس فيه firebase أصلاً؛ الملف في
  backend/ride/firebase/add.php.
- 🔴 `paymobPayoutDriverWallet` كان فيه **علامة اقتباس داخل الرابط**:
  `paymob_payout.php'` → 404 مضمون على صرف أرباح السائق. الملف موجود
  فعلاً في payment_server/v2/main/ride/payMob/paymob_driver/.
- `deletecaptainAccounr.php` (لا وجود له) → `auth/driver/deleteAccount.php`.

فجوات حقيقية بقيت — لها مستدعٍ في الكود ولا ملف في الباك إند، ولن أخمّن:
- `uploadEgypt` (4 استدعاءات) و`uploadEgypt1` و`uploadImage`: رافع صور عام
  يمرّر نوعاً ('face_detect' · 'car_front' · 'car_back'). المرشحون:
  auth/driver/uploadImage.php · auth/driver/uploadDriverDocs.php ·
  uploadImagePortrate.php — والاختيار يحدد أي جدول/مجلد يستقبل الصورة.
- `auth/Tester/{get,update}TesterApp.php`: لا مجلد Tester إطلاقاً.
- `auth/sms/getSender.php` و`updatePhoneInvalidSMS`: لا مجلد sms (الموجود
  webhook_sms/webhook.php فقط).
الباقي (نحو 35) بلا أي مستدعٍ = كود ميت من عهود أقدم، يُنظّف لاحقاً.

⚠️ الاحتمال الذي يجب حسمه: هذه الملفات قد تكون موجودة على سيرفر
jordan-siro الحيّ وغير مُودَعة في git. يُتحقق بـ`ls` على السيرفر قبل
كتابة أي بديل.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 16:23:53 +03:00
Hamza-AyedandClaude Opus 5 53322d87a6 feat: توجيه كل النداءات إلى api.intaleqapp.com وطيّ تبديل الدول
⚠️ الطيّ ضرورة أمان لا ترتيب: كل عائلة سيرفرات في links.dart كانت switch
بأربعة فروع (Syria · Egypt · Jordan · default)، وفروع سوريا ومصر تشير إلى
**سيرفرات سيرو الإنتاجية** (api-syria.siromove.com وغيرها). إبقاؤها في
انطلق يعني أن أي جهاز مخزَّن فيه countryCode='Syria' يخاطب إنتاج سيرو
مباشرة. انطلق نشرٌ واحد على مضيف واحد (docs/34: سيرفر لكل مستأجر)،
والدولة تُحل على السيرفر من GLOBAL_COUNTRY.

طُويت 35 كتلة switch إلى قيمة واحدة (11 rider · 11 driver · 6 admin ·
7 service)، والخريطة مأخوذة من تعليق docker/nginx/default.conf نفسه
(«نقطة واحدة لكل الخدمات — التطبيق يغيّر الدومين فقط»):
  server / rideServer   → https://api.intaleqapp.com/backend
  paymentServer         → https://api.intaleqapp.com/v2/main
  location              → …/backend/ride/location
  locationServerSide(د) → …/loction_server/siro/ride/location
  سوكيت الركاب          → https://api.intaleqapp.com:3030
  سوكيت السائقين        → https://api.intaleqapp.com:2020

وأيضاً:
- appDomain و invite: siromove.com → intaleqapp.com، والمجلد
  siromove.com/ → intaleqapp.com/ (فيه invite.php الذي يقصده التطبيق).
- روابط التنزيل siro.app → intaleqapp.com · بريد السائق المولَّد
  @siromove.com → @intaleqapp.com · صفحة التتبع · محاكاة تسجيل سوريا.
- حُذف getter `syria` الميت من links.dart الثلاثة (لا مستدعي له، وكان
  يشير إلى إنتاج سيرو).

لم يُمسّ عمداً:
- `ssl_pinning.dart`: `badCertificateCallback` لا يُستدعى إلا عند فشل
  التحقق العادي، فشهادة api.intaleqapp.com الصالحة تمرّ بلا مساس. ولا
  أختلق بصمة شهادة: تُضاف بصمة انطلق بعد إصدار الشهادة (docs/30 G7).
- `routesjo.intaleq.xyz` و `map-saas.intaleqapp.com`: خدمات خارجية قائمة
  بذاتها للمالك (قرار الخرائط المباشرة) لا تُنقل إلى api.
- `com.siromove.admin` في userAgentPackageName (5 مواضع): من عائلة هويات
  المتاجر — كوميت الهويات، وهو يحتاج قرار المالك.

⚠️ يحتاج نشراً على الطرف الآخر: invite.php و track/index.php و /driver
على intaleqapp.com.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 16:14:45 +03:00
Hamza-AyedandClaude Opus 5 0aab85c732 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>
2026-07-27 16:10:58 +03:00