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>
This commit is contained in:
Hamza-Ayed
2026-07-27 16:14:45 +03:00
co-authored by Claude Opus 5
parent 0aab85c732
commit 53322d87a6
16 changed files with 53 additions and 377 deletions
+15 -115
View File
@@ -7,142 +7,60 @@ class AppLink {
static String get serverPHP => box.read('serverPHP');
static String get paymentServer {
switch (currentCountry) {
case 'Syria':
return 'https://wallet-syria.siromove.com/v1/main';
case 'Egypt':
return 'https://wallet-egypt.siromove.com/v1/main';
case 'Jordan':
return 'https://walletintaleq.intaleq.xyz/v2/main';
default:
return 'https://wallet.siromove.com/v1/main';
}
return 'https://api.intaleqapp.com/v2/main';
}
static const String appDomain = 'siromove.com';
static const String appDomain = 'intaleqapp.com';
static String get inviteRedirectUrl {
if (currentCountry == 'Syria') {
return "https://siromove.com/inviteSyria.php";
return "https://intaleqapp.com/invite.php";
}
return "https://siromove.com/invite.php";
return "https://intaleqapp.com/invite.php";
}
static String get location {
switch (currentCountry) {
case 'Syria':
return 'https://api-syria.siromove.com/siro_v3/ride/location';
case 'Egypt':
return 'https://api-egypt.siromove.com/siro_v3/ride/location';
case 'Jordan':
return 'https://jordan-siro.intaleqapp.com/backend/ride/location';
default:
return 'https://api.siromove.com/siro_v3/ride/location';
}
return 'https://api.intaleqapp.com/backend/ride/location';
}
static String get locationServer => locationServerSide;
static String get locationServerSide {
switch (currentCountry) {
case 'Syria':
return 'https://location-syria.siromove.com/siro/ride/location';
case 'Egypt':
return 'https://location-egypt.siromove.com/siro/ride/location';
case 'Jordan':
return 'https://jordan-siro.intaleqapp.com/loction_server/siro/ride/location';
default:
return 'https://location-jordan.siromove.com/siro/ride/location';
}
return 'https://api.intaleqapp.com/loction_server/siro/ride/location';
}
static String get locationSocketUrl {
switch (currentCountry) {
case 'Syria':
return 'https://location-syria.siromove.com';
case 'Egypt':
return 'https://location-egypt.siromove.com';
case 'Jordan':
return 'https://jordan-siro.intaleqapp.com:2020';
default:
return 'https://jordan-siro.intaleqapp.com:2020';
}
return 'https://api.intaleqapp.com:2020';
}
static String get mapSaasRoute {
switch (currentCountry) {
case 'Syria':
return 'https://map-syria.siromove.com/api/maps/route';
case 'Egypt':
return 'https://map-egypt.siromove.com/api/maps/route';
case 'Jordan':
return 'https://map-saas.intaleqapp.com/api/maps/route';
default:
return 'https://map-saas.intaleqapp.com/api/maps/route';
}
return 'https://map-saas.intaleqapp.com/api/maps/route';
}
static String get mapSaasPlaces {
switch (currentCountry) {
case 'Syria':
return 'https://map-syria.siromove.com/api/geocoding/places';
case 'Egypt':
return 'https://map-egypt.siromove.com/api/geocoding/places';
case 'Jordan':
return 'https://map-saas.intaleqapp.com/api/geocoding/places';
default:
return 'https://map-saas.intaleqapp.com/api/geocoding/places';
}
return 'https://map-saas.intaleqapp.com/api/geocoding/places';
}
static String get routeApiBaseUrl {
switch (currentCountry) {
case 'Syria':
return "https://routes-syria.siromove.com/route/v1/driving";
case 'Egypt':
return "https://routes-egypt.siromove.com/route/v1/driving";
case 'Jordan':
return "https://routesjo.intaleq.xyz/route/v1/driving";
default:
return "https://routes.siromove.com/route/v1/driving";
}
return "https://routesjo.intaleq.xyz/route/v1/driving";
}
static String get currentCountry => box.read(BoxName.countryCode) ?? 'Jordan';
static String get endPoint {
switch (currentCountry) {
case 'Syria':
return 'https://api-syria.siromove.com/siro';
case 'Egypt':
return 'https://api-egypt.siromove.com/siro';
case 'Jordan':
return 'https://jordan-siro.intaleqapp.com/backend';
default:
return 'https://api.siromove.com/siro';
}
return 'https://api.intaleqapp.com/backend';
}
static String get syria => 'https://api-syria.siromove.com/siro';
static String get server => endPoint;
///=================ride==========================///
///https://jordan-siro.intaleqapp.com/backend
///https://api.intaleqapp.com/backend
static String get ride => '$server/ride';
/// this ride server is for socket communication not for rest api calls
/// https://rides.intaleq.xyz/intaleq
static String get rideServer {
switch (currentCountry) {
case 'Syria':
return 'https://ride-syria.siromove.com/siro/ride';
case 'Egypt':
return 'https://ride-egypt.siromove.com/siro/ride';
case 'Jordan':
return 'https://jordan-siro.intaleqapp.com/backend';
default:
return 'https://jordan-siro.intaleqapp.com/backend';
}
return 'https://api.intaleqapp.com/backend';
}
static String get getSurgeHeatmap =>
@@ -153,16 +71,7 @@ class AppLink {
///mapOSM = 'https://routesy.intaleq.xyz'
static String get mapOSM {
switch (currentCountry) {
case 'Syria':
return 'https://routes-syria.siromove.com';
case 'Egypt':
return 'https://routes-egypt.siromove.com';
case 'Jordan':
return 'https://routesjo.intaleq.xyz';
default:
return 'https://routes.siromove.com';
}
return 'https://routesjo.intaleq.xyz';
}
static String get seferCairoServer => endPoint;
@@ -394,16 +303,7 @@ class AppLink {
"$ride/location/save_driver_destination.php";
static String get reverseGeocoding {
switch (currentCountry) {
case 'Syria':
return 'https://map-syria.siromove.com/api/geocoding/reverse';
case 'Egypt':
return 'https://map-egypt.siromove.com/api/geocoding/reverse';
case 'Jordan':
return 'https://map-saas.intaleqapp.com/api/geocoding/reverse';
default:
return 'https://map-saas.intaleqapp.com/api/geocoding/reverse';
}
return 'https://map-saas.intaleqapp.com/api/geocoding/reverse';
}
static String get updateApiKey => "$ride/apiKey/update.php";