q = {};
+ q['birinci'] = p[p.length - 5] + p[p.length - 3];
+ q['ikinci'] = p[p.length - 1] + p[p.length - 15];
+ q['üçüncü'] = p[p.length - 9] + p[p.length - 12];
+ q['dördüncü'] = p[p.length - 11] + p[p.length - 6];
+ q['beş'] = p[p.length - 2] + p[p.length - 8];
+
+ return q;
+ }
+}
diff --git a/apps/driver/lib/constant/currency.dart b/apps/driver/lib/constant/currency.dart
new file mode 100644
index 0000000..f6a2b75
--- /dev/null
+++ b/apps/driver/lib/constant/currency.dart
@@ -0,0 +1,15 @@
+import 'package:siro_driver/main.dart';
+import 'package:siro_driver/constant/box_name.dart';
+import 'package:get/get.dart';
+
+class CurrencyHelper {
+ static String get currency {
+ String country = box.read(BoxName.countryCode) ?? 'Jordan';
+ switch (country) {
+ case 'Syria': return 'SYP'.tr;
+ case 'Egypt': return 'EGP'.tr;
+ case 'Jordan':
+ default: return 'JOD'.tr;
+ }
+ }
+}
diff --git a/apps/driver/lib/constant/finance_design_system.dart b/apps/driver/lib/constant/finance_design_system.dart
new file mode 100644
index 0000000..57f56af
--- /dev/null
+++ b/apps/driver/lib/constant/finance_design_system.dart
@@ -0,0 +1,64 @@
+import 'package:flutter/material.dart';
+import 'package:get/get.dart';
+
+class FinanceDesignSystem {
+ // --- Colors ---
+ static Color get primaryDark => Get.isDarkMode ? const Color(0xFFE0E0E0) : const Color(0xFF0A0E21);
+ static Color get accentBlue => const Color(0xFF3D5AFE);
+ static Color get successGreen => const Color(0xFF00C853);
+ static Color get dangerRed => const Color(0xFFD50000);
+ static Color get backgroundColor => Get.isDarkMode ? const Color(0xFF0A0E21) : const Color(0xFFF6F8FA);
+ static Color get cardColor => Get.isDarkMode ? const Color(0xFF1E1E2E) : const Color(0xFFFFFFFF);
+ static Color get textSecondary => Get.isDarkMode ? Colors.white70 : const Color(0xFF757575);
+ static Color get textMuted => Get.isDarkMode ? Colors.white38 : const Color(0xFFBDBDBD);
+ static Color get borderColor => Get.isDarkMode ? Colors.white10 : Colors.grey.withOpacity(0.1);
+
+ // --- Shadows ---
+ static BoxShadow get softShadow => BoxShadow(
+ color: Colors.black.withOpacity(Get.isDarkMode ? 0.3 : 0.05),
+ blurRadius: 10,
+ offset: const Offset(0, 4),
+ );
+
+ // --- Gradients ---
+ static LinearGradient get balanceGradient => LinearGradient(
+ colors: Get.isDarkMode
+ ? [const Color(0xFF1E1E2E), const Color(0xFF2A2A3E)]
+ : [const Color(0xFF0A0E21), const Color(0xFF1A237E)],
+ begin: Alignment.topLeft,
+ end: Alignment.bottomRight,
+ );
+
+ static const LinearGradient dangerGradient = LinearGradient(
+ colors: [Color(0xFFD50000), Color(0xFFFF5252)],
+ begin: Alignment.topLeft,
+ end: Alignment.bottomRight,
+ );
+
+ // --- Radius ---
+ static const double mainRadius = 16.0;
+ static const double cardRadius = 20.0;
+ static const double buttonRadius = 12.0;
+
+ // --- Spacing ---
+ static const double horizontalPadding = 16.0;
+ static const double verticalSectionPadding = 24.0;
+
+ // --- Text Styles ---
+ static TextStyle get balanceStyle => const TextStyle(
+ fontSize: 32,
+ fontWeight: FontWeight.bold,
+ color: Colors.white,
+ );
+
+ static TextStyle get headingStyle => TextStyle(
+ fontSize: 18,
+ fontWeight: FontWeight.bold,
+ color: primaryDark,
+ );
+
+ static TextStyle get subHeadingStyle => TextStyle(
+ fontSize: 14,
+ color: textSecondary,
+ );
+}
diff --git a/apps/driver/lib/constant/info.dart b/apps/driver/lib/constant/info.dart
new file mode 100755
index 0000000..88688b5
--- /dev/null
+++ b/apps/driver/lib/constant/info.dart
@@ -0,0 +1,291 @@
+class AppInformation {
+ static const String companyName = 'Siro';
+ static const String appName = 'Siro DRIVER';
+ static const String appVersion = 'Siro DRIVER';
+ static const String phoneNumber = '';
+ static const String linkedInProfile =
+ 'https://www.linkedin.com/in/hamza-ayed/';
+ static const String website = 'https://intaleqapp.com';
+ static const String email = 'support@intaleqapp.com';
+ static const String complaintPrompt =
+ 'for this data for complaint from driver or passenger i collect all data i want you analyze this complaint and show what is reason and what is solution .this data collected from many table to find solution if payment in visa not complete and if ride status is finished it will be paymnet in payment table if ride status is not finished there is no need to pay and payment table is null for this ride and if paymentFromPaymentTable not null and visa type not cash the payment sucssessed . if ratingpassenger is low or passengr rating drivers low grade then dont mine of this passenger ,look at driver too like passengerratingdriver with rating or ratingtopassenger .in json add status of complaint and message to passenger and message to driver and message to call center write in arabic in json output with key in english .for output please just json i want';
+ static const String addd = 'BlBlNl';
+ static const String privacyPolicy = '''
+
+
+
+
+
+ Siro - Privacy Policy & Terms of Use
+
+
+
+ Privacy Policy & Terms of Use
+
+
+
Effective Date: August 9, 2025
+
Last Updated: August 9, 2025
+
+
+ 1. Introduction and Acceptance
+ By downloading, registering, or using the Siro application ("App"), you agree to be bound by this Privacy Policy and our Terms of Use. If you do not agree, you must stop using the App immediately. Your continued use constitutes acceptance of these terms and any future updates.
+
+ 2. Definitions
+
+ - "Siro", "we", "us": Refers to the Siro for Ride Hailing company, Damascus – Syria (Owner & operator), which provides the technology platform.
+ - "Driver": An independent service provider who uses the App to offer transportation services.
+ - "Passenger", "you": An individual who uses the App to request transportation services.
+ - "Services": The connection between Passengers and Drivers facilitated by our App.
+
+
+ 3. Privacy Policy
+
+ 3.1 Information We Collect
+ We collect information necessary to provide and improve our Services.
+
+ A. Information You Provide:
+
+ - For Drivers: To ensure safety and compliance, we collect identity information, including your full name, phone number, personal photo, and official documents (e.g., driver's license, vehicle registration).
+ - For Passengers: We only require a phone number for registration and communication. We are not authorized to request or view official identity documents for passengers.
+
+
+ B. Information Collected Automatically:
+
+ - Location Data: We collect precise location data when the App is in use to facilitate ride matching, navigation, and for safety purposes.
+ - Device Data: We collect information about your device, such as model, operating system, and unique identifiers, to ensure App functionality and for security verification.
+ - Usage Data: We log how you interact with our App, including trip history and features used, to improve our services.
+
+
+ 3.2 Payment Information
+ We do not collect, process, or store any sensitive payment information like credit/debit card numbers. We facilitate payments by connecting you to licensed, local third-party providers:
+
+ - Mobile Carrier Billing: Payments via MTN and Syriatel are processed directly by them based on your registered phone number. A one-time password (OTP) sent by the carrier is required to confirm the transaction.
+ - Bank Card Payments: We connect you with the Syrian company "eCash" to process card payments. They handle the transaction, and your bank will send an OTP to your phone to authorize it.
+
+
+ 3.3 How We Use Your Information
+
+ - To operate and maintain the Services (e.g., connect Drivers and Passengers).
+ - To verify Driver identity and eligibility.
+ - To improve App security and prevent fraud.
+ - To provide customer support.
+ - To comply with legal obligations.
+
+
+ 3.4 Data Sharing
+ We do not sell your personal data. We only share it in the following limited circumstances:
+
+ - Between Passenger and Driver: To facilitate a ride, we share necessary information like name, photo, and real-time location.
+ - With Service Providers: For services like payment processing and mapping. These providers are contractually obligated to protect your data.
+ - For Legal Reasons: If required by law or a valid legal order.
+
+
+ 3.5 Policy for Minors
+ Our services are intended for individuals over the age of 18.
+ For Drivers: We strictly verify the identity and age of all drivers to ensure no minors are operating on our platform.
+ For Passengers: While we do not verify passenger identity, the service is not directed at children under 18. If a parent or guardian becomes aware that their child has provided us with information without their consent, they should contact us immediately.
+
+ 4. User Obligations & Conduct
+
+ - You must provide accurate and current information during registration.
+ - You are responsible for maintaining the security of your account.
+ - You agree not to use the App for any illegal activities, to harass others, or to cause damage to a Driver's vehicle.
+
+
+ 5. Disclaimer of Liability
+ The App is provided "as is". Siro is an intermediary platform and is not liable for the actions of Drivers or Passengers, accidents, delays, or any disputes between users. Our liability is limited to the fullest extent permitted by law.
+
+ 6. Policy Updates
+ We may update these terms. If we make significant changes, we will notify you within the App. You will be required to review and accept the new terms to continue using the Services, ensuring your consent is active and informed.
+
+ 7. Account Deletion & Contact
+ You have the right to request the deletion of your account and personal data. To do so, or for any other questions, please contact us. We will respond to deletion requests within 30 days.
+ Email: support@intaleqapp.com
+
+
+
+''';
+
+ static const String privacyPolicyArabic = '''
+
+
+
+
+
+ سيرو - سياسة الخصوصية وشروط الاستخدام
+
+
+
+ سياسة الخصوصية وشروط الاستخدام
+
+
+
تاريخ النفاذ: 9 أغسطس 2025
+
آخر تحديث: 9 أغسطس 2025
+
+
+ 1. المقدمة والقبول
+ عبر تحميل أو تسجيل أو استخدام تطبيق "سيرو" ("التطبيق")، فإنك توافق على الالتزام بسياسة الخصوصية وشروط الاستخدام هذه. إذا كنت لا توافق، يجب عليك التوقف فورًا عن استخدام التطبيق. استمرارك في الاستخدام يُعد قبولاً لهذه الشروط وأي تحديثات مستقبلية لها.
+
+ 2. التعريفات
+
+ - "سيرو"، "نحن": تشير إلى شركة سيرو لنقل الركاب، دمشق – سوريا (مالك ومشغل التطبيق)، التي توفر المنصة التقنية.
+ - "السائق": مقدم خدمة مستقل يستخدم التطبيق لتقديم خدمات النقل.
+ - "الراكب"، "أنت": الفرد الذي يستخدم التطبيق لطلب خدمات النقل.
+ - "الخدمات": عملية الربط بين الركاب والسائقين التي يسهلها تطبيقنا.
+
+
+ 3. سياسة الخصوصية
+
+ 3.1 المعلومات التي نجمعها
+ نحن نجمع المعلومات الضرورية لتقديم خدماتنا وتحسينها.
+
+ أ. المعلومات التي تقدمها بنفسك:
+
+ - بالنسبة للسائقين: لضمان السلامة والامتثال للقوانين، نجمع بيانات الهوية الشخصية، بما في ذلك الاسم الكامل، رقم الهاتف، صورة شخصية، والوثائق الرسمية (مثل رخصة القيادة وتسجيل المركبة).
+ - بالنسبة للركاب: نطلب فقط رقم هاتف للتسجيل والتواصل. نحن غير مخولين بطلب أو الاطلاع على وثائق الهوية الرسمية للركاب.
+
+
+ ب. المعلومات التي تُجمع تلقائيًا:
+
+ - بيانات الموقع: نجمع بيانات الموقع الجغرافي الدقيقة عند استخدام التطبيق لتسهيل تحديد أماكن الانطلاق والوصول، الملاحة، ولأغراض السلامة.
+ - بيانات الجهاز: نجمع معلومات عن جهازك (طراز، نظام تشغيل، معرفات فريدة) لضمان عمل التطبيق وللتحقق الأمني.
+ - بيانات الاستخدام: نسجل كيفية تفاعلك مع التطبيق، بما في ذلك سجل الرحلات والميزات المستخدمة، بهدف تحسين خدماتنا.
+
+
+ 3.2 معلومات الدفع
+ نحن لا نجمع أو نعالج أو نخزن أي معلومات دفع حساسة مثل أرقام بطاقات الائتمان/الخصم. نحن نسهل عمليات الدفع عبر ربطك بمزودي خدمات محليين مرخصين:
+
+ - الدفع عبر رصيد الهاتف المحمول: تتم معالجة الدفعات عبر شركتي MTN و Syriatel مباشرة من خلالهما بناءً على رقم هاتفك المسجل لديهم. يتطلب تأكيد العملية إدخال رمز تحقق (OTP) يُرسل من قبل شركة الاتصالات.
+ - الدفع عبر البطاقات البنكية: نربطك بشركة "eCash" السورية لمعالجة الدفعات بالبطاقات. هي التي تتولى المعاملة، وسيقوم البنك الذي تتعامل معه بإرسال رمز تحقق (OTP) إلى هاتفك لتفويض العملية.
+
+
+ 3.3 كيف نستخدم معلوماتك
+
+ - لتشغيل وصيانة الخدمات (مثل الربط بين السائقين والركاب).
+ - للتحقق من هوية السائقين وأهليتهم.
+ - لتحسين أمان التطبيق ومنع الاحتيال.
+ - لتقديم الدعم الفني للعملاء.
+ - للامتثال للالتزامات القانونية.
+
+
+ 3.4 مشاركة البيانات
+ نحن لا نبيع بياناتك الشخصية. نشاركها فقط في الحالات المحدودة التالية:
+
+ - بين الراكب والسائق: لتسهيل الرحلة، نشارك المعلومات الضرورية مثل الاسم، الصورة، والموقع المباشر.
+ - مع مزودي الخدمات: مثل معالجي الدفع وخدمات الخرائط. هؤلاء المزودون ملزمون تعاقديًا بحماية بياناتك.
+ - لأسباب قانونية: إذا طُلب ذلك بموجب القانون أو أمر قضائي ساري المفعول.
+
+
+ 3.5 سياسة القاصرين
+ خدماتنا موجهة للأفراد الذين تزيد أعمارهم عن 18 عامًا.
+ بالنسبة للسائقين: نحن نتحقق بدقة من هوية وعمر جميع السائقين لضمان عدم وجود قاصرين يعملون على منصتنا.
+ بالنسبة للركاب: على الرغم من أننا لا نتحقق من هوية الركاب، فإن الخدمة غير موجهة للأطفال دون سن 18. إذا علم ولي الأمر أن طفله قد زودنا بمعلومات دون موافقته، فيجب عليه الاتصال بنا على الفور.
+
+ 4. التزامات المستخدم وسلوكه
+
+ - يجب عليك تقديم معلومات دقيقة وحديثة عند التسجيل.
+ - أنت مسؤول عن الحفاظ على أمان حسابك.
+ - أنت توافق على عدم استخدام التطبيق لأي أنشطة غير قانونية، أو لمضايقة الآخرين، أو التسبب في ضرر لمركبة السائق.
+
+
+ 5. إخلاء المسؤولية
+ يتم تقديم التطبيق "كما هو". "سيرو" هي منصة وسيطة وليست مسؤولة عن تصرفات السائقين أو الركاب، أو الحوادث، أو التأخير، أو أي نزاعات بين المستخدمين. مسؤوليتنا محدودة إلى أقصى حد يسمح به القانون.
+
+ 6. تحديثات السياسة
+ قد نقوم بتحديث هذه الشروط. في حال إجراء تغييرات جوهرية، سنقوم بإعلامك داخل التطبيق. سيُطلب منك مراجعة الشروط الجديدة وقبولها لمواصلة استخدام الخدمات، لضمان أن موافقتك فعالة ومبنية على معرفة.
+
+ 7. حذف الحساب والتواصل
+ لديك الحق في طلب حذف حسابك وبياناتك الشخصية. للقيام بذلك، أو لأي استفسارات أخرى، يرجى التواصل معنا. سنرد على طلبات الحذف في غضون 30 يومًا.
+ البريد الإلكتروني: support@intaleqapp.com
+
+
+
+''';
+}
diff --git a/apps/driver/lib/constant/links.dart b/apps/driver/lib/constant/links.dart
new file mode 100755
index 0000000..57b4f93
--- /dev/null
+++ b/apps/driver/lib/constant/links.dart
@@ -0,0 +1,648 @@
+// import 'package:siro_driver/env/env.dart';
+
+import '../main.dart';
+import 'box_name.dart';
+
+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';
+ }
+ }
+
+ static const String appDomain = 'siromove.com';
+
+ static String get inviteRedirectUrl {
+ if (currentCountry == 'Syria') {
+ return "https://siromove.com/inviteSyria.php";
+ }
+ return "https://siromove.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';
+ }
+ }
+
+ 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';
+ }
+ }
+
+ 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';
+ }
+ }
+
+ 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';
+ }
+ }
+
+ 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';
+ }
+ }
+
+ 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";
+ }
+ }
+
+ 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';
+ }
+ }
+
+ static String get syria => 'https://api-syria.siromove.com/siro';
+ static String get server => endPoint;
+
+ ///=================ride==========================///
+ ///https://jordan-siro.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';
+ }
+ }
+
+ static String get getSurgeHeatmap =>
+ "$server/ride/heatmap/get_surge_heatmap.php";
+
+ static String get getPredictiveDemand =>
+ "$server/api/demand/getPredictiveDemandZones.php";
+
+ ///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';
+ }
+ }
+
+ static String get seferCairoServer => endPoint;
+ static String get seferGizaServer =>
+ box.read('Giza') ?? box.read(BoxName.serverChosen);
+ static String get seferAlexandriaServer =>
+ box.read('Alexandria') ?? box.read(BoxName.serverChosen);
+ // static final String server = Env.serverPHP;
+
+ static String get loginJwtDriver => "$server/loginJwtDriver.php";
+ static String get loginJwtWalletDriver => "$server/loginJwtWalletDriver.php";
+ static String get loginFirstTimeDriver => "$server/loginFirstTimeDriver.php";
+
+ static String get googleMapsLink => 'https://maps.googleapis.com/maps/api/';
+ static String get llama => 'https://api.llama-api.com/chat/completions';
+ static String get gemini =>
+ 'https://generativelanguage.googleapis.com/v1beta3/models/text-bison-001:generateText';
+
+ static String get test => "$server/test.php";
+
+ //===============contact==========================
+ static String get savePhones => "$ride/egyptPhones/add.php";
+ static String get savePhonesSyria => "$ride/egyptPhones/syrianAdd.php";
+ static String get getPhones => "$ride/egyptPhones/get.php";
+
+ ////===============firebase==========================
+ static String get getTokens => "$ride/firebase/get.php";
+
+ static String get getDriverToken => "$ride/firebase/getDriverToken.php";
+ static String get addTokens => "$ride/firebase/add.php";
+ static String get addTokensDriver => "$ride/firebase/addDriver.php";
+ static String get addTokensDriverWallet =>
+ "$paymentServer/ride/firebase/addDriver.php";
+
+ //=======================Wallet===================
+ static String get wallet => '$paymentServer/ride/passengerWallet';
+ static String get walletDriver => '$paymentServer/ride/driverWallet';
+ static String get getAllPassengerTransaction =>
+ "$wallet/getAllPassengerTransaction.php";
+ static String get payWithMTNConfirm =>
+ "$paymentServer/ride/mtn/driver/confirm_payment.php";
+ static String get payWithMTNStart =>
+ "$paymentServer/ride/mtn/driver/mtn_start.php";
+ static String get payWithSyriatelConfirm =>
+ "$paymentServer/ride/syriatel/driver/confirm_payment.php";
+ static String get payWithSyriatelStart =>
+ "$paymentServer/ride/syriatel/driver/start_payment.php";
+
+ static String get createMtnInvoice =>
+ "$paymentServer/ride/mtn_new/create_mtn_invoice.php";
+ static String get uploadMtnProof =>
+ "$paymentServer/ride/mtn_new/verify_payment_ai.php";
+ static String get checkMtnStatus =>
+ "$paymentServer/ride/mtn_new/check_status.php";
+
+ static String get createCliqInvoice =>
+ "$paymentServer/ride/cliq/create_cliq_invoice.php";
+ static String get uploadCliqProof =>
+ "$paymentServer/ride/cliq/verify_payment_ai.php";
+ static String get checkCliqStatus =>
+ "$paymentServer/ride/cliq/check_status.php";
+
+ static String get payWithEcashDriver =>
+ "$paymentServer/ride/ecash/driver/payWithEcash.php";
+ static String get payWithEcashPassenger =>
+ "$paymentServer/ride/ecash/passenger/payWithEcash.php";
+// wl.tripz-egypt.com/v1/main/ride/ecash/driver
+ static String get getWalletByPassenger => "$wallet/getWalletByPassenger.php";
+ static String get getPassengersWallet => "$wallet/get.php";
+ static String get getPassengerWalletArchive =>
+ "$wallet/getPassengerWalletArchive.php";
+ static String get addPassengersWallet => "$wallet/add.php";
+ static String get deletePassengersWallet => "$wallet/delete.php";
+ static String get updatePassengersWallet => "$wallet/update.php";
+
+ static String get getWalletByDriver => "$walletDriver/getWalletByDriver.php";
+ static String get transferWalletDriver =>
+ "$endPoint/ride/driverWallet/transfer.php";
+ static String get convertBudgetToPoints =>
+ "$walletDriver/convertBudgetToPoints.php";
+ static String get driverStatistic =>
+ "$endPoint/ride/driverWallet/driverStatistic.php";
+ static String get getDriverDetails =>
+ "$seferCairoServer/ride/driverWallet/getDriverDetails.php";
+
+ // ================= Gamification Endpoints =================
+ static String get getWeeklyAggregate =>
+ "$endPoint/ride/gamification/getWeeklyAggregate.php";
+ static String get getGamificationDashboard =>
+ "$endPoint/ride/gamification/getGamificationDashboard.php";
+ static String get getLeaderboard =>
+ "$endPoint/ride/gamification/getLeaderboard.php";
+ static String get getSubAdminForDriver =>
+ "$server/Admin/gamification/getSubAdminForDriver.php";
+
+ // 🆕 مسار جلب حالة تتابع الرحلات (Gamification Streak)
+ static String get getDriverStreak =>
+ "$server/ride/gamification/get_streak.php";
+ static String get claimChallengeReward =>
+ "$endPoint/ride/gamification/claimChallengeReward.php";
+ static String get getReferralStats =>
+ "$endPoint/ride/gamification/getReferralStats.php";
+ static String get getDriverBehavior =>
+ "$endPoint/ride/gamification/getDriverBehavior.php";
+ static String get getDriverWeekPaymentMove =>
+ "$walletDriver/getDriverWeekPaymentMove.php";
+ static String get getDriversWallet => "$walletDriver/get.php";
+ static String get addDriversWalletPoints => "$walletDriver/add.php";
+ static String get addpromotionDriver => "$walletDriver/promotionDriver.php";
+ static String get deleteDriversWallet => "$walletDriver/delete.php";
+ static String get updateDriversWallet => "$walletDriver/update.php";
+
+ //=======================promo===================ride.mobile-app.store/ride/promo/get.php
+ static String get promo => '$server/ride/promo';
+ static String get getPassengersPromo => "$promo/get.php";
+ static String get getPromoBytody => "$promo/getPromoBytody.php";
+ static String get addPassengersPromo => "$promo/add.php";
+ static String get deletePassengersPromo => "$promo/delete.php";
+ static String get updatePassengersPromo => "$promo/update.php";
+
+ ////=======================cancelRide===================
+
+ static String get addCancelRideFromPassenger =>
+ "$rideServer/cancelRide/add.php";
+ static String get addCancelTripFromDriverAfterApplied =>
+ "$rideServer/cancelRide/addCancelTripFromDriverAfterApplied.php";
+ static String get cancelRide => "$rideServer/cancelRide/get.php";
+//-----------------ridessss------------------
+ static String get addRides => "$rideServer/rides/add.php";
+ static String get getRides => "$rideServer/rides/get.php";
+ static String get getPlacesSyria => "$rideServer/places_syria/get.php";
+ static String get getMishwari => "$rideServer/mishwari/get.php";
+ static String get getMishwariDriver => "$rideServer/mishwari/getDriver.php";
+ static String get sendChatMessage => "$server/ride/chat/send_message.php";
+ static String get getTripCountByCaptain =>
+ "$rideServer/rides/getTripCountByCaptain.php";
+ static String get getRideOrderID => "$rideServer/rides/getRideOrderID.php";
+ static String get getRideStatus => "$rideServer/rides/getRideStatus.php";
+ static String get getOverLayStatus => "$ride/overLay/get.php";
+ static String get getArgumentAfterAppliedFromBackground =>
+ "$ride/overLay/getArgumentAfterAppliedFromBackground.php";
+ static String get addOverLayStatus => "$ride/overLay/add.php";
+ static String get getapiKey => "$ride/apiKey/get.php";
+
+ static String get getapiKeySefer => "$ride/apiKey/get.php";
+ static String get getRideStatusBegin =>
+ "$rideServer/rides/getRideStatusBegin.php";
+ static String get getRideStatusFromStartApp =>
+ "$rideServer/rides/getRideStatusFromStartApp.php";
+ static String get updateRides => "$rideServer/rides/update.php";
+ static String get updateRideAndCheckIfApplied =>
+ "$rideServer/rides/updateRideAndCheckIfApplied.php";
+ static String get updateStausFromSpeed =>
+ "$rideServer/rides/updateStausFromSpeed.php";
+ static String get deleteRides => "$rideServer/rides/delete.php";
+
+//-----------------DriverPayment------------------
+ static String get addDriverScam => "$ride/driver_scam/add.php";
+ static String get getDriverScam => "$ride/driver_scam/get.php";
+
+/////////---getKazanPercent===////////////
+ static String get getKazanPercent => "$ride/kazan/get.php";
+ static String get addKazanPercent => "$ride/kazan/add.php";
+
+////-----------------DriverPayment------------------
+ static String get addDrivePayment => "$paymentServer/ride/payment/add.php";
+ static String get payWithPayMobCardDriver =>
+ "$paymentServer/ride/payMob/paymob_driver/payWithCard.php";
+ static String get payWithWallet =>
+ "$paymentServer/ride/payMob/paymob_driver/payWithWallet.php";
+ static String get paymetVerifyDriver =>
+ "$paymentServer/ride/payMob/paymob_driver/paymet_verfy.php";
+ static String get updatePaymetToPaid =>
+ "$paymentServer/ride/payment/updatePaymetToPaid.php";
+ static String get paymobPayoutDriverWallet =>
+ "$paymentServer/ride/payMob/paymob_driver/paymob_payout.php'";
+
+ static String get addSeferWallet => "$paymentServer/ride/seferWallet/add.php";
+ static String get getSeferWallet => "$paymentServer/ride/seferWallet/get.php";
+ static String get addDriverPaymentPoints =>
+ "$paymentServer/ride/driverPayment/add.php";
+ static String get addPaymentTokenDriver =>
+ "$paymentServer/ride/driverWallet/addPaymentToken.php"; //driverWallet/addPaymentToken.php
+ static String get addPaymentTokenPassenger =>
+ "$paymentServer/ride/passengerWallet/addPaymentTokenPassenger.php";
+ static String get getDriverPaymentPoints =>
+ "$paymentServer/ride/driverWallet/get.php";
+ static String get getDriverPaymentToday =>
+ "$paymentServer/ride/payment/get.php";
+ static String get getCountRide =>
+ "$paymentServer/ride/payment/getCountRide.php";
+ static String get getAllPaymentFromRide =>
+ "$paymentServer/ride/payment/getAllPayment.php";
+ static String get getAllPaymentVisa =>
+ "$paymentServer/ride/payment/getAllPaymentVisa.php";
+
+//-----------------Passenger NotificationCaptain------------------
+ static String get addNotificationPassenger =>
+ "$ride/notificationPassenger/add.php";
+ static String get getNotificationPassenger =>
+ "$ride/notificationPassenger/get.php";
+ static String get updateNotificationPassenger =>
+ "$ride/notificationPassenger/update.php";
+//-----------------Driver NotificationCaptain------------------
+ static String get addNotificationCaptain =>
+ "$ride/notificationCaptain/add.php";
+ static String get addWaitingRide =>
+ "$ride/notificationCaptain/addWaitingRide.php";
+ static String get deleteAvailableRide =>
+ "$ride/notificationCaptain/deleteAvailableRide.php";
+ static String get updateWaitingRide =>
+ "$ride/notificationCaptain/updateWaitingTrip.php";
+ static String get getRideWaiting =>
+ "$endPoint/ride/notificationCaptain/getRideWaiting.php";
+ static String get getNotificationCaptain =>
+ "$ride/notificationCaptain/get.php";
+ static String get updateNotificationCaptain =>
+ "$ride/notificationCaptain/update.php";
+ static String get deleteNotificationCaptain =>
+ "$ride/notificationCaptain/delete.php";
+ //-----------------Api Key------------------
+ static String get addApiKey => "$ride/apiKey/add.php";
+ static String get getApiKey => "$ride/apiKey/get.php";
+ static String get getCnMap => "$server/auth/cnMap.php";
+ static String get getPromptDriverDocumentsEgypt =>
+ "$server/auth/driver/getPromptDriverDocumentsEgypt.php";
+
+ static String get saveDriverDestination =>
+ "$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';
+ }
+ }
+
+ static String get updateApiKey => "$ride/apiKey/update.php";
+ static String get deleteApiKey => "$ride/apiKey/delete.php";
+ static String get checkPhoneNumberISVerfiedDriver =>
+ "$auth/driver/checkPhoneNumberISVerfied.php";
+ static String get getTesterApp => "$auth/Tester/getTesterApp.php";
+ static String get updateTesterApp => "$auth/Tester/updateTesterApp.php";
+
+//-----------------healthInsuranceProvider------------------
+ static String get addHealthInsuranceProvider =>
+ "$server/driver_assurance/add.php";
+ static String get getHealthInsuranceProvider =>
+ "$server/driver_assurance/get.php";
+
+//-----------------Feed Back------------------
+ static String get addFeedBack => "$ride/feedBack/add.php";
+ static String get getFeedBack => "$ride/feedBack/get.php";
+ static String get updateFeedBack => "$ride/feedBack/updateFeedBack.php";
+ static String get add_solve_all => "$server/ride/feedBack/add_solve_all.php";
+ static String get uploadAudio => "$server/upload_audio.php";
+
+ //-----------------Tips------------------
+ static String get addTips => "$ride/tips/add.php";
+ static String get getTips => "$ride/tips/get.php";
+ static String get updateTips => "$ride/tips/update.php";
+
+//-----------------Help Center------------------
+ static String get addhelpCenter => "$ride/helpCenter/add.php";
+ static String get gethelpCenter => "$ride/helpCenter/get.php";
+ static String get getByIdhelpCenter => "$ride/helpCenter/getById.php";
+ static String get updatehelpCenter => "$ride/helpCenter/update.php";
+ static String get deletehelpCenter => "$ride/helpCenter/delete.php";
+
+ //-----------------license------------------
+ static String get addLicense => "$ride/license/add.php";
+ static String get getLicense => "$ride/license/get.php";
+ static String get updateLicense => "$ride/license/updateFeedBack.php";
+//-----------------RegisrationCar------------------
+ static String get addRegisrationCar => "$ride/RegisrationCar/add.php";
+ static String get getRegisrationCar =>
+ "$endPoint/ride/RegisrationCar/get.php";
+ static String get updateRegisrationCar => "$ride/RegisrationCar/update.php";
+ static String get makeDefaultCar => "$ride/RegisrationCar/makeDefaultCar.php";
+
+//-----------------DriverOrder------------------
+
+ static String get addDriverOrder => "$ride/driver_order/add.php";
+ static String get getDriverOrder => "$ride/driver_order/get.php";
+ static String get getOrderCancelStatus =>
+ "$ride/driver_order/getOrderCancelStatus.php";
+ static String get updateDriverOrder => "$ride/driver_order/update.php";
+ static String get deleteDriverOrder => "$ride/driver_order/delete.php";
+
+ // =====================================
+ static String get addRateToPassenger => "$ride/rate/add.php";
+ static String get addRateToDriver => "$ride/rate/addRateToDriver.php";
+ static String get addRateApp => "$ride/rate/add_rate_app.php";
+ static String get sendEmailRateingApp => "$ride/rate/sendEmailRateingApp.php";
+ static String get getDriverRate => "$ride/rate/getDriverRate.php";
+ static String get getPassengerRate => "$ride/rate/getPassengerRate.php";
+
+ ////////////////emails ============//
+ static String get sendEmailToPassengerForTripDetails =>
+ "$ride/rides/emailToPassengerTripDetail.php";
+ static String get sendEmailToDrivertransaction =>
+ "$server/Admin/sendEmailToDrivertransaction.php";
+// ===========================================
+ static String get pathImage => "$server/upload/types/";
+ static String get uploadImage => "$server/uploadImage.php";
+ static String get uploadImage1 => "$server/uploadImage1.php";
+ static String get uploadImagePortrate => "$server/uploadImagePortrate.php";
+ static String get uploadSyrianDocs =>
+ "$syria/auth/driver/uploadDriverDocs.php";
+ static String get uploadImageType => "$server/uploadImageType.php";
+//=============egypt documents ==============
+ static String get uploadEgyptidFront =>
+ "$server/EgyptDocuments/uploadEgyptidFront.php";
+ static String get uploadEgypt => "$server/uploadEgypt.php";
+ static String get uploadEgypt1 => "$server/uploadEgypt1.php";
+
+ //==================certifcate==========
+ // static String location = '$endPoint/ride/location';
+
+ static String get getCarsLocationByPassenger => "$location/get.php";
+ static String get addpassengerLocation =>
+ "$locationServerSide/addpassengerLocation.php";
+ static String get getLocationAreaLinks =>
+ "$location/get_location_area_links.php";
+ static String get getLatestLocationPassenger =>
+ "$location/getLatestLocationPassenger.php";
+ static String get getFemalDriverLocationByPassenger =>
+ "$location/getFemalDriver.php";
+ static String get getDriverCarsLocationToPassengerAfterApplied =>
+ "$location/getDriverCarsLocationToPassengerAfterApplied.php";
+ static String get addCarsLocationByPassenger => "$locationServerSide/add.php";
+ static String get saveBehavior => "$locationServerSide/save_behavior.php";
+ static String get addCarsLocationGizaEndpoint =>
+ "$locationServerSide/add.php";
+ static String get addCarsLocationAlexandriaEndpoint =>
+ "$locationServerSide/add.php";
+ static String get addCarsLocationCairoEndpoint =>
+ "$locationServerSide/add.php";
+ static String get deleteCarsLocationByPassenger =>
+ "$locationServerSide/delete.php";
+ static String get updateCarsLocationByPassenger =>
+ "$locationServerSide/update.php";
+ static String get getTotalDriverDuration =>
+ "$location/getTotalDriverDuration.php";
+ static String get getRidesDriverByDay => "$location/getRidesDriverByDay.php";
+ static String get getTotalDriverDurationToday =>
+ "$location/getTotalDriverDurationToday.php";
+
+ //==================get_driver_behavior.php=============
+ static String get get_driver_behavior =>
+ '$ride/driver_behavior/get_driver_behavior.php';
+
+ //==================cars new drivers=============
+ static String get addNewCarsDrivers => '$ride/carDrivers/add.php';
+ static String get getNewCarsDrivers => '$ride/carDrivers/get.php';
+ static String get deleteNewCarsDrivers => '$ride/carDrivers/delete.php';
+
+ //==================Blog=============
+ static String get profile => '$ride/profile';
+ static String get getprofile => "$profile/get.php";
+ static String get getCaptainProfile => "$profile/getCaptainProfile.php";
+ static String get addprofile => "$profile/add.php";
+ static String get deleteprofile => "$profile/delete.php";
+ static String get updateprofile => "$profile/update.php";
+ static String get updateDriverEmail => "$profile/updateDriverEmail.php";
+
+ //===================Auth============
+
+ static String get getUnifiedCode => "$ride/invitor/get_unified_code.php";
+ static String get addUnifiedInvite => "$ride/invitor/add_unified_invite.php";
+ static String get claimDriverReward =>
+ "$ride/invitor/claim_driver_reward.php";
+ static String get getDriverReferrals =>
+ "$ride/invitor/get_driver_referrals.php";
+
+ static String get addInviteDriver => "$ride/invitor/add.php";
+ static String get addInvitationPassenger =>
+ "$ride/invitor/addInvitationPassenger.php";
+ static String get getInviteDriver => "$ride/invitor/get.php";
+ static String get getDriverInvitationToPassengers =>
+ "$ride/invitor/getDriverInvitationToPassengers.php";
+ static String get updateInviteDriver => "$ride/invitor/update.php";
+ static String get updatePassengerGift =>
+ "$server/ride/invitor/updatePassengerGift.php";
+ static String get claimInviteReward => "$server/ride/invitor/claim.php";
+ static String get updateInvitationCodeFromRegister =>
+ "$ride/invitor/updateInvitationCodeFromRegister.php";
+ static String get register_driver_and_car => "$auth/driver/register.php";
+ static String get updateDriverInvitationDirectly =>
+ "$ride/invitor/updateDriverInvitationDirectly.php";
+ static String get updatePassengersInvitation =>
+ "$ride/invitor/updatePassengersInvitation.php";
+
+ //===================Auth============
+
+ static String get auth => '$server/auth';
+ static String get login => "$auth/login.php";
+ static String get signUp => "$auth/signup.php";
+ static String get updateDriverClaim => "$auth/driver/updateDriverClaim.php";
+ static String get updateShamCashDriver =>
+ "$auth/driver/updateShamCashDriver.php";
+ static String get sendVerifyEmail => "$auth/sendVerifyEmail.php";
+ static String get passengerRemovedAccountEmail =>
+ "$auth/passenger/remove_account.php";
+ static String get verifyEmail => "$auth/verifyEmail.php";
+//===================Auth Captin============
+ static String get authCaptin => '$server/auth/driver';
+ static String get loginCaptin => "$authCaptin/login.php";
+ static String get loginFromGoogleCaptin => "$authCaptin/loginFromGoogle.php";
+ static String get loginUsingCredentialsWithoutGoogle =>
+ "$authCaptin/loginUsingCredentialsWithoutGoogle.php";
+ static String get packageInfo => "$server/auth/packageInfo.php";
+ static String get signUpCaptin => "$authCaptin/register.php";
+ static String get addCriminalDocuments =>
+ "$authCaptin/addCriminalDocuments.php";
+ static String get sendVerifyEmailCaptin => "$authCaptin/sendVerifyEmail.php";
+ static String get sendVerifyOtpMessage => "$server/auth/otp/request.php";
+ static String get verifyOtpMessage => "$server/auth/otp/verify.php";
+ static String get verifyOtpDriver => "$server/auth/otp/verify.php";
+ static String get verifyEmailCaptin => "$authCaptin/verifyEmail.php";
+ static String get removeUser => "$authCaptin/removeAccount.php";
+ static String get deletecaptainAccounr =>
+ "$authCaptin/deletecaptainAccounr.php";
+ static String get updateAccountBank => "$authCaptin/updateAccountBank.php";
+ static String get getAccount => "$authCaptin/getAccount.php";
+ static String get uploadImageToAi => "$auth/document_syria/ai_document.php";
+ static String get isPhoneVerified => "$auth/driver/isPhoneVerified.php";
+
+ //===================Admin Captin============
+
+ static String get getPassengerDetailsByPassengerID =>
+ "$server/Admin/getPassengerDetailsByPassengerID.php";
+ static String get getPassengerDetails =>
+ "$server/Admin/getPassengerDetails.php";
+ static String get getPassengerbyEmail =>
+ "$server/Admin/getPassengerbyEmail.php";
+ static String get addAdminUser => "$server/Admin/adminUser/add.php";
+ static String get addError => "$server/Admin/errorApp.php";
+ static String get getAdminUser => "$server/Admin/adminUser/get.php";
+ static String get getCaptainDetailsByEmailOrIDOrPhone =>
+ "$server/Admin/AdminCaptain/getCaptainDetailsByEmailOrIDOrPhone.php";
+ static String get getCaptainDetails => "$server/Admin/AdminCaptain/get.php";
+ static String get getRidesPerMonth =>
+ "$server/Admin/AdminRide/getRidesPerMonth.php";
+ static String get getRidesDetails => "$server/Admin/AdminRide/get.php";
+
+//////////Sms egypt///////////
+ static String get sendSms => "https://sms.kazumi.me/api/sms/send-sms";
+ static String get senddlr => "https://sms.kazumi.me/api/sms/send-dlr";
+ static String get sendvalidity =>
+ "https://sms.kazumi.me/api/sms/send-validity";
+ static String get sendmany => "https://sms.kazumi.me/api/sms/send-many";
+ static String get checkCredit => "https://sms.kazumi.me/api/sms/check-credit";
+ static String get checkStatus => "https://sms.kazumi.me/api/sms/check-status";
+ static String get getSender => "$server/auth/sms/getSender.php";
+ static String get updatePhoneInvalidSMS =>
+ "$server/auth/sms/updatePhoneInvalidSMS.php";
+
+ //////////////service///////////
+
+ static String get serviceApp => "$server/serviceapp";
+ static String get getComplaintAllData =>
+ "$serviceApp/getComplaintAllData.php";
+ static String get getComplaintAllDataForDriver =>
+ "$serviceApp/getComplaintAllDataForDriver.php";
+
+ static String detectCountryFromPhone(String phone) {
+ final clean = phone.replaceAll(RegExp(r'[^0-9]'), '');
+ if (clean.startsWith('962')) return 'Jordan';
+ if (clean.startsWith('963')) return 'Syria';
+ if (clean.startsWith('20')) return 'Egypt';
+ if (clean.startsWith('07') || clean.startsWith('7')) return 'Jordan';
+ if (clean.startsWith('09') || clean.startsWith('9')) return 'Syria';
+ if (clean.startsWith('01') || clean.startsWith('1')) return 'Egypt';
+ return '';
+ }
+}
diff --git a/apps/driver/lib/constant/notification.dart b/apps/driver/lib/constant/notification.dart
new file mode 100755
index 0000000..b993a16
--- /dev/null
+++ b/apps/driver/lib/constant/notification.dart
@@ -0,0 +1,31 @@
+List syrianDriverMessages = [
+ // --- أوقات الذروة والطلبات الكتيرة ---
+ "وقت الذروة: البلد مولّعة مشاوير! 🌃 افتح التطبيق بسرعة وبلّش أرباحك تدبّل.",
+ "طلبات كتير حواليك: ⚠️ خليك أول كابتن بيلتقط الطلب وخلّي يومك رابح.",
+ "الناس طالعة من الشغل: 🌇 الكل راجع عالبيت، خليك جاهز لرحلات كتيرة!",
+ "زحمة المساء: ⏳ الزباين عم تزيد بهالوقت، لا تضيّع الفرصة واشتغل معنا!",
+
+ // --- التركيز عالربح والمصاري ---
+ "ضاعف ربحك: 💰 كل مشوار بيقربك من هدفك اليومي. جاهز تنطلق؟",
+ "مصاري أكتر: جزدانك ناطر تعبك، كل دقيقة شغل هي ربح مضمون. 💪",
+ "خليك بالواجهة: الطلب الجاي ممكن يكون إلك، كبسة زر بتجيبلك رزقة اليوم.",
+ "رزقتك جاهزة: 💸 لا تخلّي الزباين يستنّوا، افتح التطبيق وخليك متأهّب.",
+
+ // --- التقدير والشكر ---
+ "شكراً إلك: 🙏 إنت مو بس سائق، إنت أساس نجاح تطبيق سيرو.",
+ "نفتخر فيك: 🌟 الكباتن متلك هنن يلي رافعين اسمنا بالعالي.",
+ "أداء ممتاز: 👍 استمر بنفس الروح الحلوة، زباينك مبسوطين منك.",
+ "نجاح مشترك: 🗺️ كل توصيلة بتعملها بتكبر فيها شركتنا وانت كمان.",
+
+ // --- التحفيز والتشجيع ---
+ "صباح النشاط: ☀️ بلّش نهارك بطاقة إيجابية وسيرو لتكسب أكتر.",
+ "كل مشوار فرصة: 🏁 لا توقف، الطريق لإلك والنجاح ناطرك.",
+ "يوم مربح: 💼 السوق ناشط اليوم، لا تفوّت الفرصة!",
+ "جاهز للطلب الجاي: 🔔 الزبون الجاي ممكن يكون أوفر ممتاز، خليك مستعد.",
+
+ // --- نصايح ومعلومات ---
+ "نصيحة اليوم: روح صوب الأسواق والمطاعم، الطلب هناك عالي هالفترة. 🏙️",
+ "حافظ على تقييمك: 😊 الزبون بينجذب للكابتن يلي عنده تقييم عالي وابتسامة.",
+ "جو ممطر: 🌧️ المطر يعني طلبات أكتر، خليك شغّال بهالوقت!",
+ "حدث اليوم: 🎆 في فعالية بالبلد، المشاوير كتيرة بهالمنطقة، استغلها!"
+];
diff --git a/apps/driver/lib/constant/recharge_tiers.dart b/apps/driver/lib/constant/recharge_tiers.dart
new file mode 100644
index 0000000..8c8582d
--- /dev/null
+++ b/apps/driver/lib/constant/recharge_tiers.dart
@@ -0,0 +1,53 @@
+import 'package:siro_driver/constant/box_name.dart';
+import 'package:siro_driver/main.dart';
+
+class RechargeTier {
+ final double amount;
+ final double bonus;
+ const RechargeTier(this.amount, this.bonus);
+
+ double get total => amount + bonus;
+}
+
+class RechargeConfig {
+ final String currencyCode;
+ final List tiers;
+ const RechargeConfig({required this.currencyCode, required this.tiers});
+
+ static const Map _configs = {
+ 'Jordan': RechargeConfig(
+ currencyCode: 'JOD',
+ tiers: [
+ RechargeTier(5, 0),
+ RechargeTier(10, 0),
+ RechargeTier(20, 0),
+ RechargeTier(50, 0),
+ ],
+ ),
+ 'Egypt': RechargeConfig(
+ currencyCode: 'EGP',
+ tiers: [
+ RechargeTier(100, 0),
+ RechargeTier(200, 0),
+ RechargeTier(400, 0),
+ RechargeTier(1000, 0),
+ ],
+ ),
+ 'Syria': RechargeConfig(
+ currencyCode: 'SYP',
+ tiers: [
+ RechargeTier(100, 0),
+ RechargeTier(200, 0),
+ RechargeTier(400, 0),
+ RechargeTier(1000, 0),
+ ],
+ ),
+ };
+
+ static RechargeConfig get current {
+ final country = box.read(BoxName.countryCode) ?? 'Jordan';
+ return _configs[country] ?? _configs['Jordan']!;
+ }
+
+ static List get currentTiers => current.tiers;
+}
diff --git a/apps/driver/lib/constant/style.dart b/apps/driver/lib/constant/style.dart
new file mode 100755
index 0000000..f234f64
--- /dev/null
+++ b/apps/driver/lib/constant/style.dart
@@ -0,0 +1,74 @@
+import 'package:siro_driver/constant/box_name.dart';
+import 'package:siro_driver/main.dart';
+import 'package:flutter/material.dart';
+import 'package:google_fonts/google_fonts.dart';
+import 'colors.dart';
+
+class AppStyle {
+ static TextStyle get headTitle => TextStyle(
+ fontWeight: FontWeight.bold,
+ fontSize: 36,
+ color: AppColor.accentColor,
+ fontFamily: box.read(BoxName.lang) == 'ar'
+ // ?GoogleFonts.markaziText().fontFamily
+ ? GoogleFonts.markaziText().fontFamily
+ : GoogleFonts.inter().fontFamily);
+ static TextStyle get headTitle2 => TextStyle(
+ fontWeight: FontWeight.bold,
+ fontSize: 24,
+ color: AppColor.writeColor,
+ fontFamily: box.read(BoxName.lang) == 'ar'
+ ? GoogleFonts.markaziText().fontFamily
+ : GoogleFonts.inter().fontFamily);
+ static TextStyle get title => TextStyle(
+ fontWeight: FontWeight.normal,
+ fontSize: 16,
+ color: AppColor.writeColor,
+ fontFamily: box.read(BoxName.lang) == 'ar'
+ ? GoogleFonts.markaziText().fontFamily
+ : GoogleFonts.inter().fontFamily);
+ static TextStyle get subtitle => TextStyle(
+ fontWeight: FontWeight.bold,
+ fontSize: 12,
+ color: AppColor.writeColor,
+ fontFamily: box.read(BoxName.lang) == 'ar'
+ ? GoogleFonts.markaziText().fontFamily
+ : GoogleFonts.inter().fontFamily);
+ static TextStyle get number => TextStyle(
+ fontWeight: FontWeight.bold,
+ fontSize: 14,
+ color: AppColor.writeColor,
+ fontFamily: 'digit');
+
+ static BoxDecoration get boxDecoration => BoxDecoration(
+ boxShadow: [
+ BoxShadow(
+ color: AppColor.accentColor.withValues(alpha: 0.3),
+ blurRadius: 5,
+ offset: const Offset(2, 4)),
+ BoxShadow(
+ color: AppColor.accentColor.withValues(alpha: 0.1),
+ blurRadius: 5,
+ offset: const Offset(-2, -2))
+ ],
+ color: AppColor.secondaryColor,
+ borderRadius: const BorderRadius.all(
+ Radius.elliptical(15, 30),
+ ));
+ static BoxDecoration get boxDecoration1 => BoxDecoration(
+ boxShadow: [
+ BoxShadow(
+ color: Colors.black.withValues(alpha: 0.05),
+ blurRadius: 10,
+ offset: const Offset(0, 4)),
+ BoxShadow(
+ color: AppColor.primaryColor.withValues(alpha: 0.02),
+ blurRadius: 5,
+ offset: const Offset(-2, -2))
+ ],
+ color: AppColor.secondaryColor,
+ borderRadius: const BorderRadius.all(
+ Radius.elliptical(15, 30),
+ ),
+ );
+}
diff --git a/apps/driver/lib/constant/table_names.dart b/apps/driver/lib/constant/table_names.dart
new file mode 100755
index 0000000..6e1b658
--- /dev/null
+++ b/apps/driver/lib/constant/table_names.dart
@@ -0,0 +1,19 @@
+class TableName {
+ static const String placesFavorite = "placesFavorite";
+ static const String recentLocations = "recentLocations";
+ static const String carLocations = "carLocations";
+ static const String driverOrdersRefuse = "driverOrdersRefuse";
+ static const String rideLocation = "rideLocation";
+ static const String faceDetectTimes = "faceDetectTimes";
+ static const String behavior = "behavior";
+ static const String captainNotification = "captainNotification";
+ static const String applyRideFromOverLay = "applyRideFromOverLay";
+}
+
+class Driver {
+ static const String driverPass = 'MG6DEJZSczBT6Rx0jOlehQ==';
+ static const String payMobApikey = 'payMobApikey';
+ static const String initializationVector = 'initializationVector';
+ static const String keyOfApp = 'keyOfApp';
+ static const String FCM_PRIVATE_KEY = 'FCM_PRIVATE_KEY';
+}
diff --git a/apps/driver/lib/controller/auth/captin/history_captain.dart b/apps/driver/lib/controller/auth/captin/history_captain.dart
new file mode 100755
index 0000000..f88cce6
--- /dev/null
+++ b/apps/driver/lib/controller/auth/captin/history_captain.dart
@@ -0,0 +1,60 @@
+import 'dart:convert';
+
+import 'package:siro_driver/views/widgets/elevated_btn.dart';
+import 'package:get/get.dart';
+
+import '../../../constant/box_name.dart';
+import '../../../constant/links.dart';
+import '../../../main.dart';
+import '../../../views/home/Captin/history/history_details_page.dart';
+import '../../functions/crud.dart';
+
+class HistoryCaptainController extends GetxController {
+ bool isloading = false;
+ Map historyData = {};
+ Map historyDetailsData = {};
+ late String orderID;
+ getOrderId(String orderId) {
+ orderID = orderId;
+ update();
+ }
+
+ getHistory() async {
+ isloading = true;
+ var res = await CRUD().get(
+ link: AppLink.getDriverOrder,
+ payload: {'driver_id': box.read(BoxName.driverID)});
+ if (res != 'failure') {
+ historyData = jsonDecode(res);
+ isloading = false;
+ update();
+ } else {
+ Get.defaultDialog(
+ title: 'No ride yet'.tr,
+ middleText: '',
+ barrierDismissible: false,
+ confirm: MyElevatedButton(
+ title: 'Back'.tr,
+ onPressed: () {
+ Get.back();
+ Get.back();
+ }));
+ }
+ }
+
+ getHistoryDetails(String orderId) async {
+ isloading = true;
+ var res = await CRUD()
+ .get(link: AppLink.getRideOrderID, payload: {'id': (orderId)});
+ historyDetailsData = jsonDecode(res);
+ isloading = false;
+ update();
+ Get.to(() => HistoryDetailsPage());
+ }
+
+ @override
+ void onInit() {
+ getHistory();
+ super.onInit();
+ }
+}
diff --git a/apps/driver/lib/controller/auth/captin/invit_controller.dart b/apps/driver/lib/controller/auth/captin/invit_controller.dart
new file mode 100755
index 0000000..d8a0ac1
--- /dev/null
+++ b/apps/driver/lib/controller/auth/captin/invit_controller.dart
@@ -0,0 +1,570 @@
+import 'package:siro_driver/constant/currency.dart';
+import 'dart:convert';
+import 'dart:developer';
+
+import 'package:flutter/material.dart';
+import 'package:flutter_contacts/contact.dart';
+import 'package:flutter_contacts/flutter_contacts.dart';
+import 'package:get/get.dart';
+import 'package:local_auth/local_auth.dart';
+import 'package:siro_driver/constant/box_name.dart';
+import 'package:siro_driver/constant/links.dart';
+import 'package:siro_driver/controller/functions/crud.dart';
+import 'package:siro_driver/controller/home/payment/captain_wallet_controller.dart';
+import 'package:siro_driver/print.dart';
+import 'package:siro_driver/controller/functions/country_logic.dart';
+import 'package:siro_driver/main.dart';
+import 'package:siro_driver/views/widgets/error_snakbar.dart';
+import 'package:siro_driver/views/widgets/mydialoug.dart';
+import 'package:share_plus/share_plus.dart';
+
+import '../../firebase/local_notification.dart';
+import '../../functions/launch.dart';
+import '../../notification/notification_captain_controller.dart';
+
+class InviteController extends GetxController {
+ final TextEditingController invitePhoneController = TextEditingController();
+ List driverInvitationData = [];
+ List driverInvitationDataToPassengers = [];
+ String? couponCode;
+ String? driverCouponCode;
+
+ // **FIX**: Added the missing 'contacts' and 'contactMaps' definitions.
+ List contacts = [];
+ RxList