first commit

This commit is contained in:
Hamza-Ayed
2026-06-09 08:40:31 +03:00
commit d8901e1a87
3161 changed files with 536187 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
// import 'package:siro_rider/main.dart';
import 'package:secure_string_operations/secure_string_operations.dart';
import '../env/env.dart';
import 'char_map.dart';
class AK {
static final String sss_pass = X.r(X.r(X.r(Env.sss_pass, cn), cC), cs);
static final String allowed = Env.allowed;
static final String allowedWallet = Env.allowedWallet;
static final String passnpassenger = X
.r(X.r(X.r(Env.passnpassenger, cn), cC), cs)
.toString()
.split(Env.addd)[0];
static final String newId = Env.newId;
static final String sss_encryptionSalt =
X.r(X.r(X.r(Env.sss_encryptionSalt, cn), cC), cs);
static final String secretKey = X.r(X.r(X.r(Env.secretKey, cn), cC), cs);
static final String basicAuthCredentials =
X.r(X.r(X.r(Env.basicAuthCredentials, cn), cC), cs);
static final String accountSIDTwillo =
X.r(X.r(X.r(Env.accountSIDTwillo, cn), cC), cs);
static final String serverAPI = X.r(X.r(X.r(Env.serverAPI, cn), cC), cs);
static final String mapAPIKEY = Env.mapAPIKEY;
static final String mapAPIKEYIOS = Env.mapAPIKEYIOS;
static final String twilloRecoveryCode =
X.r(X.r(X.r(Env.twilloRecoveryCode, cn), cC), cs);
static final String authTokenTwillo =
X.r(X.r(X.r(Env.authTokenTwillo, cn), cC), cs);
static final String chatGPTkey = X.r(X.r(X.r(Env.chatGPTkey, cn), cC), cs);
static final String transactionCloude =
X.r(X.r(X.r(Env.transactionCloude, cn), cC), cs);
static final String visionApi = X.r(X.r(X.r(Env.visionApi, cn), cC), cs);
static final String chatGPTkeySefer =
X.r(X.r(X.r(Env.chatGPTkeySefer, cn), cC), cs);
static final String chatGPTkeySeferNew =
X.r(X.r(X.r(Env.chatGPTkeySeferNew, cn), cC), cs);
static final String serverPHP = Env.serverPHP;
static final String llamaKey = X.r(X.r(X.r(Env.llamaKey, cn), cC), cs);
static final String cohere = X.r(X.r(X.r(Env.cohere, cn), cC), cs);
static final String claudeAiAPI = X.r(X.r(X.r(Env.claudeAiAPI, cn), cC), cs);
static final String geminiApi = X.r(X.r(X.r(Env.geminiApi, cn), cC), cs);
static final String agoraAppId = X.r(X.r(X.r(Env.agoraAppId, cn), cC), cs);
static final String agoraAppCertificate =
X.r(X.r(X.r(Env.agoraAppCertificate, cn), cC), cs);
static final String integrationIdPayMob =
X.r(X.r(X.r(Env.integrationIdPayMob, cn), cC), cs);
static final String passwordPayMob =
X.r(X.r(X.r(Env.passwordPayMob, cn), cC), cs);
static final String usernamePayMob =
X.r(X.r(X.r(Env.usernamePayMob, cn), cC), cs);
static final String payMobApikey =
X.r(X.r(X.r(Env.payMobApikey, cn), cC), cs);
static final String integrationIdPayMobWallet =
X.r(X.r(X.r(Env.integrationIdPayMobWallet, cn), cC), cs);
static final String apiKeyHere = Env.apiKeyHere;
static final String smsPasswordEgypt =
X.r(X.r(X.r(Env.smsPasswordEgypt, cn), cC), cs);
static final String ocpApimSubscriptionKey = Env.ocpApimSubscriptionKey;
static final String chatGPTkeySeferNew4 =
X.r(X.r(X.r(Env.chatGPTkeySeferNew4, cn), cC), cs);
static final String anthropicAIkeySeferNew =
X.r(X.r(X.r(Env.anthropicAIkeySeferNew, cn), cC), cs);
static final String llama3Key = X.r(X.r(X.r(Env.llama3Key, cn), cC), cs);
static final String payMobOutClientSecrret =
X.r(X.r(X.r(Env.payMobOutClientSecrret, cn), cC), cs);
static final String payMobOutClient_id =
X.r(X.r(X.r(Env.payMobOutClient_id, cn), cC), cs);
static final String payMobOutPassword =
X.r(X.r(X.r(Env.payMobOutPassword, cn), cC), cs);
static final String payMobOutUserName =
X.r(X.r(X.r(Env.payMobOutUserName, cn), cC), cs);
///////////
static final String keyOfApp = X.r(X.r(X.r(Env.keyOfApp, cn), cC), cs);
}

View File

@@ -0,0 +1,111 @@
class BoxName {
static const String driverID = "driverID";
static const String countryCode = "countryCode";
static const String googlaMapApp = "googlaMapApp";
static const String tokenParent = "tokenParent";
static const String lang = "lang";
static const String serverChosen = "serverChosen";
static const String security_check = "security_check";
static const String gender = "gender";
static const String themeMode = "themeMode";
static const String jwt = "jwt";
static const String lowEndMode = "lowEndMode";
static const String deviceFpEncrypted = "deviceFpEncrypted";
static const String appVersionChecked = "appVersionChecked";
static const String lastName = "lastName";
static const String fingerPrint = "fingerPrint";
static const String payMobApikey = "payMobApikey";
static const String refreshToken = "refreshToken";
static const String serverLocations = "serverLocations";
static const String carType = "carType";
static const String carPlate = "carPlate";
static const String basicLink = "basicLink";
static const String packagInfo = "packagInfo";
static const String paymentLink = "paymentLink";
static const String locationName = "locationName";
static const String isVerified = 'isVerified';
static const String isFirstTime = 'isFirstTime';
static const String firstTimeLoadKey = 'firstTimeLoadKey';
static const String isSavedPhones = 'isSavedPhones';
static const String statusDriverLocation = "statusDriverLocation";
static const String isTest = "isTest";
static const String hmac = "hmac";
static const String password = "password";
static const String validity = "validity";
static const String promo = "promo";
static const String discount = "discount";
static const String arrivalTime = "arrivalTime";
static const String passwordDriver = "passwordDriver";
static const String agreeTerms = "agreeTerms";
static const String addWork = 'addWork';
static const String addHome = 'addHome';
static const String placesDestination = 'placesDestination';
static const String tipPercentage = 'tipPercentage';
static const String faceDetectTimes = "faceDetectTimes";
static const String sosPhonePassenger = "sosPhonePassenger";
static const String sosPhoneDriver = "sosPhoneDriver";
static const String passengerID = "pasengerID";
static const String phone = "phone";
static const String package = "package";
static const String isInstall = "isInstall";
static const String isGiftToken = "isGiftToken";
static const String inviteCode = "inviteCode";
static const String phoneWallet = "phoneWallet";
static const String phoneDriver = "phoneDriver";
static const String dobDriver = "dobDriver";
static const String sexDriver = "sexDriver";
static const String lastNameDriver = "lastNameDriver";
static const String name = "name";
static const String locationPermission = "locationPermission";
static const String nameDriver = "nameDriver";
static const String driverPhotoUrl = "driverPhotoUrl";
static const String passengerPhotoUrl = "passengerPhotoUrl";
static const String email = "email";
static const String emailDriver = "emailDriver";
static const String tokens = "tokens";
static const String tokenFCM = "tokenFCM";
static const String tokenDriver = "tokenDriver";
static const String cardNumber = "cardNumber";
static const String cardNumberDriver = "cardNumberDriver";
static const String cardHolderName = "cardHolderName";
static const String cardHolderNameDriver = "cardHolderNameDriver";
static const String expiryDate = "expiryDate";
static const String expiryDateDriver = "expiryDateDriver";
static const String cvvCode = "cvvCode";
static const String cvvCodeDriver = "cvvCodeDriver";
static const String passengerWalletDetails = "passengerWalletDetails";
static const String passengerWalletTotal = "passengerWalletTotal";
static const String passengerWalletFound = "passengerWalletFound";
static const String periods = 'periods';
static const String onBoarding = 'onBoarding';
static const String apiKeyRun = 'apiKeyRun';
static const String keyOfApp = 'keyOfApp';
static const String initializationVector = 'initializationVector';
static const String serverAPI = 'serverAPI';
static const String secretKey = 'secretKey';
static const String basicAuthCredentials = 'basicAuthCredentials';
static const String mapAPIKEY = 'mapAPIKEY';
static const String twilloRecoveryCode = 'twilloRecoveryCode';
static const String accountSIDTwillo = 'accountSIDTwillo';
static const String authTokenTwillo = 'authTokenTwillo';
static const String chatGPTkey = 'chatGPTkey';
static const String chatGPTkeySefer = 'chatGPTkeySefer';
static const String transactionCloude = 'transactionCloude';
static const String visionApi = 'visionApi';
static const String vin = "vin";
static const String isvibrate = "isvibrate";
static const String make = "make";
static const String model = "model";
static const String year = "year";
static const String expirationDate = "expirationDate";
static const String color = "color";
static const String owner = "owner";
static const String registrationDate = "registrationDate";
static const String recentLocations = 'recentLocations';
static const String tripData = 'tripData';
static const String parentTripSelected = 'parentTripSelected';
static const String styleVersion = 'styleVersion';
}

View File

@@ -0,0 +1,75 @@
import '../env/env.dart';
Map<String, String> cs = {
"a": Env.a,
"b": Env.b,
"c": Env.c,
"d": Env.d,
"e": Env.e,
"f": Env.f,
"g": Env.g,
"h": Env.h,
"i": Env.i,
"j": Env.j,
"k": Env.k,
"l": Env.l,
"m": Env.m,
"n": Env.n,
"o": Env.o,
"p": Env.p,
"q": Env.q,
"r": Env.r,
"s": Env.s,
"t": Env.t,
"u": Env.u,
"v": Env.v,
"w": Env.w,
"x": Env.x,
"y": Env.y,
"z": Env.z,
};
Map<String, String> cC = {
"A": Env.A,
"B": Env.B,
"C": Env.C,
"D": Env.D,
"E": Env.E,
"F": Env.F,
"G": Env.G,
"H": Env.H,
"I": Env.I,
"J": Env.J,
"K": Env.K,
"L": Env.L,
"M": Env.M,
"N": Env.N,
"O": Env.O,
"P": Env.P,
"Q": Env.Q,
"R": Env.R,
"S": Env.S,
"T": Env.T,
"U": Env.U,
"V": Env.V,
"W": Env.W,
"X": Env.X,
"Y": Env.Y,
"Z": Env.Z
};
//
//
Map<String, String> cn = {
"0": "3",
"1": "7",
"2": "1",
"3": "9",
"4": "0",
"5": "5",
"6": "2",
"7": "6",
"8": "4",
"9": "8"
};

View File

@@ -0,0 +1,66 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
/// A class that holds the color palette for the 'Intaleq' app.
/// The palette is professionally designed to be modern, cohesive, and culturally
/// relevant, inspired by the Syrian flag and the app's brand identity.
class AppColor {
// --- Core Brand Colors (Inspired by the Syrian Flag) ---
/// **Primary Color:** The brand's signature Twitter Blue representing trust and modern communication.
/// Ideal for app bars, primary buttons, and major UI elements.
static const Color primaryColor = Color(0xFF1DA1F2);
/// **Text/Write Color:** A very dark, near-black color for main text.
/// It's softer on the eyes than pure black, improving readability.
/// The variable name `writeColor` is kept as requested.
static Color get writeColor => Get.isDarkMode ? Colors.white : const Color(0xFF1A1A1A);
/// **Secondary Color:** Pure white, used for backgrounds to create a clean
/// and spacious look, ensuring content stands out.
static Color get secondaryColor => Get.isDarkMode ? const Color(0xFF1E1E1E) : Colors.white;
/// **Accent Color:** A vibrant, energetic red from the Syrian flag.
/// Perfect for calls-to-action, highlights, icons, and notifications.
static const Color accentColor = Color.fromARGB(255, 148, 140, 141);
// --- Neutral & Status Colors ---
/// **Grey Color:** A neutral grey for secondary text, borders, dividers,
/// and disabled states.
static Color get grayColor => Get.isDarkMode ? Colors.grey[400]! : const Color(0xFF8E8E93);
/// **Red Color (Error):** A clear, attention-grabbing red for error messages and alerts.
static const Color redColor = Color(0xFFD32F2F);
/// **Green Color (Success):** A positive green for success messages and confirmations.
static const Color greenColor = Color(0xFF388E3C);
/// **Blue Color (Info):** A standard blue for informational text, links, or icons.
static const Color blueColor = Color(0xFF108942);
/// **Yellow Color (Warning):** A warm yellow for warning messages or important highlights.
static const Color yellowColor = Color(0xFFFFA000);
// --- Tier & Social Colors ---
/// **Gold Tier:** A bright gold for premium features, user ranks, or rewards.
static const Color gold = Color(0xFFFFD700);
/// **Bronze Tiers:** Classic bronze colors for other user tiers or levels.
static const Color bronze = Color(0xFFCD7F32);
static const Color goldenBronze = Color(0xFFB87333); // Kept from original
/// **Twitter/X Color:** The official brand color for social login buttons.
/// **Twitter Blue:** The brand's signature blue color used for the drawer,
/// menu icons, and secondary actions (formerly Cyan Blue).
static Color get cyanBlue => const Color(0xFF1DA1F2);
/// **Blue Accent:** A softer, translucent version of the brand blue.
static Color get cyanAccent => const Color(0xFF1DA1F2).withOpacity(0.12);
// --- Utility Colors ---
/// **Accent Tint:** A transparent version of the red accent color.
static Color get deepPurpleAccent => const Color(0xFFCE1126).withOpacity(0.1);
}

View File

@@ -0,0 +1,137 @@
// في ملف: constant/country_polygons.dart
import 'package:intaleq_maps/intaleq_maps.dart';
class CountryPolygons {
// ==========================================================
// 1. الأردن: تغطية الممر الحضري الرئيسي (من إربد شمالاً حتى العقبة جنوباً)
// حوالي 12 نقطة
// ==========================================================
static final List<LatLng> jordanBoundary = [
// شمال إربد (قرب الحدود)
const LatLng(32.65, 35.80),
// شمال شرق المفرق
const LatLng(32.35, 37.00),
// شرق الزرقاء / الأزرق
const LatLng(31.85, 36.80),
// جنوب شرق (نهاية الزحف السكاني)
const LatLng(31.00, 36.50),
// جنوب / معان
const LatLng(30.30, 35.75),
// العقبة
const LatLng(29.50, 35.00),
// البحر الأحمر / الحدود الغربية
const LatLng(29.50, 34.85),
// غرب وادي عربة
const LatLng(30.80, 35.25),
// منطقة البحر الميت / السلط
const LatLng(32.00, 35.50),
// العودة عبر وادي الأردن إلى الشمال
const LatLng(32.45, 35.60),
// العودة لنقطة إربد
const LatLng(32.65, 35.80),
];
// ==========================================================
// 2. سوريا: تغطية الممر الغربي والساحلي (درعا، دمشق، حمص، حماة، حلب، الساحل)
// حوالي 14 نقطة
// ==========================================================
static final List<LatLng> syriaBoundary = [
// درعا / الجنوب
const LatLng(32.65, 35.95),
// شرق السويداء (حدود المنطقة المأهولة)
const LatLng(32.85, 37.10),
// أطراف دمشق الشرقية
const LatLng(33.50, 36.65),
// تدمر (أقصى امتداد شرقي للمضلع)
const LatLng(34.50, 38.30),
// الرقة (شمال شرق)
const LatLng(35.95, 38.80),
// حلب (الشمال)
const LatLng(36.45, 37.15),
// الحدود الشمالية الغربية (إدلب / تركيا)
const LatLng(36.50, 36.50),
// اللاذقية (الساحل)
const LatLng(35.50, 35.75),
// طرطوس (الساحل)
const LatLng(34.80, 35.85),
// حمص
const LatLng(34.70, 36.70),
// حماة
const LatLng(35.10, 36.70),
// العودة إلى منطقة دمشق
const LatLng(33.40, 36.30),
// العودة إلى درعا
const LatLng(32.65, 35.95),
];
// ==========================================================
// 3. مصر: تغطية القاهرة الكبرى، الدلتا، والإسكندرية والإسماعيلية
// حوالي 10 نقاط
// ==========================================================
static final List<LatLng> egyptBoundary = [
// جنوب الفيوم (أقصى امتداد جنوبي غربي)
const LatLng(29.20, 30.60),
// جنوب القاهرة (العياط)
const LatLng(29.80, 31.30),
// شرق السويس
const LatLng(29.95, 32.70),
// الإسماعيلية / القناة
const LatLng(30.60, 32.25),
// بورسعيد / أطراف الدلتا الشمالية الشرقية
const LatLng(31.30, 31.80),
// دمياط / ساحل الدلتا
const LatLng(31.50, 31.25),
// الإسكندرية (أقصى الشمال الغربي)
const LatLng(31.20, 29.80),
// غرب الدلتا
const LatLng(30.50, 30.20),
// العودة لنقطة البداية
const LatLng(29.20, 30.60),
];
// دالة تُرجع رابط API بناءً على اسم الدولة
// static String getRoutingApiUrl(String countryName) {
// switch (countryName) {
// case 'Jordan':
// return 'https://routec.intaleq.xyz/route-jo';
// case 'Syria':
// return 'https://routec.intaleq.xyz/route';
// case 'Egypt':
// return 'https://routec.intaleq.xyz/route-eg';
// default:
// // الافتراضي في حالة لم يقع الموقع ضمن أي من المضلعات
// return 'https://routec.intaleq.xyz/route';
// }
// }
/// دالة تحدد اسم الدولة (باللغة الإنجليزية للـ API) بناءً على الإحداثيات
static String getCountryName(LatLng? point) {
if (point == null) return "jordan";
if (_isPointInPolygon(point, jordanBoundary)) return "jordan";
if (_isPointInPolygon(point, syriaBoundary)) return "syria";
if (_isPointInPolygon(point, egyptBoundary)) return "egypt";
return "jordan"; // الافتراضي
}
/// خوارزمية Ray Casting للتحقق من وقوع نقطة داخل مضلع
static bool _isPointInPolygon(LatLng p, List<LatLng> polygon) {
bool isInside = false;
int j = polygon.length - 1;
for (int i = 0; i < polygon.length; i++) {
if (((polygon[i].latitude > p.latitude) !=
(polygon[j].latitude > p.latitude)) &&
(p.longitude <
(polygon[j].longitude - polygon[i].longitude) *
(p.latitude - polygon[i].latitude) /
(polygon[j].latitude - polygon[i].latitude) +
polygon[i].longitude)) {
isInside = !isInside;
}
j = i;
}
return isInside;
}
}

View File

@@ -0,0 +1,145 @@
import 'package:siro_rider/print.dart';
import 'dart:convert';
import 'package:crypto/crypto.dart';
import '../controller/functions/crud.dart';
import '../main.dart';
import 'box_name.dart';
import 'char_map.dart';
import 'links.dart';
class AC {
gAK() async {
if (box.read(BoxName.apiKeyRun).toString() != 'run') {
var res = await CRUD().get(link: AppLink.getApiKey, payload: {});
var decod = jsonDecode(res);
Log.print(decod);
Map<String, dynamic> jsonData = {};
for (var i = 0; i < decod['message'].length; i++) {
String h = decod['message'][i]['hashed_key'].toString();
String retrievedString = r(r(r(h, cn), cC), cs);
await storage.write(
key: decod['message'][i]['name'].toString(),
value: retrievedString.toString(),
);
//
String name = decod['message'][i]['name'].toString();
String value = decod['message'][i]['hashed_key'].toString();
jsonData[name] = value;
}
String jsonString = json.encode(jsonData);
Log.print(jsonString);
box.write(BoxName.apiKeyRun, 'run');
}
}
String q(String b, String c) {
final d = utf8.encode(c);
final e = utf8.encode(b);
final f = Hmac(sha256, d);
final g = f.convert(e);
final h = g.bytes;
final i = base64Url.encode(h);
return i;
}
String j(String k, String l) {
final m = utf8.encode(l);
final n = base64Url.decode(k);
final o = Hmac(sha256, m);
final p = o.convert(n);
final q = utf8.decode(p.bytes);
return q;
}
String a(String b, String c) {
int d = b.length;
int e = d ~/ 4;
List<String> f = [];
for (int g = 0; g < d; g += e) {
int h = g + e;
if (h > d) {
h = d;
}
String i = b.substring(g, h);
f.add(i);
}
// print(f);
Map<String, String> j = {};
j['birinci'] = f[4];
j['ikinci'] = f[2];
j['üçüncü'] = c + f[1];
j['dördüncü'] = f[0];
j['beş'] = f[3];
String k = '';
j.forEach((l, m) {
k += m;
});
return k;
}
Map<String, String> n(String o, String c) {
String p = o.replaceAll(c, '');
Map<String, String> 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;
}
String c(String a, Map<String, String> b) {
StringBuffer c = StringBuffer();
c.write(a);
String d = "Bl";
c.write(b[d] ?? d);
StringBuffer e = StringBuffer();
String f = c.toString();
for (int g = 0; g < f.length; g++) {
String h = f[g];
e.write(b[h] ?? h);
}
return e.toString();
}
String r(String a, Map<String, String> b) {
StringBuffer c = StringBuffer();
String d = "Bl";
int e = d.length;
for (int f = 0; f < a.length; f++) {
String g = a[f];
String h = b.keys.firstWhere(
(i) => b[i] == g,
orElse: () => g,
);
c.write(h);
}
String j = c.toString();
if (j.endsWith(d)) {
j = j.substring(0, j.length - e);
}
return j;
}
}

View File

@@ -0,0 +1,288 @@
class AppInformation {
static const String companyName = 'Intaleq llc';
static const String appName = 'Intaleq';
static const String phoneNumber = '962798583052';
static const String linkedInProfile =
'https://www.linkedin.com/in/hamza-ayed/';
static const String website = 'https://intaleqapp.com';
static const String email = 'hamzaayed@intaleqapp.com';
static const String addd = 'BlBlNl';
static const String privacyPolicy = '''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Intaleq - Privacy Policy & Terms of Use</title>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
line-height: 1.7;
color: #333;
padding: 10px;
}
h1, h2, h3 {
color: #2c3e50;
}
h1 {
font-size: 1.8em;
border-bottom: 2px solid #3498db;
padding-bottom: 10px;
}
h2 {
font-size: 1.5em;
margin-top: 30px;
color: #2980b9;
}
h3 {
font-size: 1.2em;
margin-top: 20px;
color: #16a085;
}
strong {
color: #2c3e50;
}
ul {
padding-left: 20px;
list-style-position: outside;
}
.highlight {
background-color: #f8f9fa;
padding: 15px;
border-left: 4px solid #3498db;
margin: 20px 0;
border-radius: 4px;
}
a {
color: #3498db;
text-decoration: none;
}
</style>
</head>
<body>
<h1>Privacy Policy & Terms of Use</h1>
<div class="highlight">
<p><strong>Effective Date:</strong> August 9, 2025</p>
<p><strong>Last Updated:</strong> August 9, 2025</p>
</div>
<h2>1. Introduction and Acceptance</h2>
<p>By downloading, registering, or using the Intaleq 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.</p>
<h2>2. Definitions</h2>
<ul>
<li><strong>"Intaleq", "we", "us":</strong> Refers to the Intaleq for Ride Hailing company, Damascus Syria (Owner & operator), which provides the technology platform.</li>
<li><strong>"Driver":</strong> An independent service provider who uses the App to offer transportation services.</li>
<li><strong>"Passenger", "you":</strong> An individual who uses the App to request transportation services.</li>
<li><strong>"Services":</strong> The connection between Passengers and Drivers facilitated by our App.</li>
</ul>
<h2>3. Privacy Policy</h2>
<h3>3.1 Information We Collect</h3>
<p>We collect information necessary to provide and improve our Services.</p>
<h4>A. Information You Provide:</h4>
<ul>
<li><strong>For Drivers:</strong> 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).</li>
<li><strong>For Passengers:</strong> We only require a phone number for registration and communication. We are not authorized to request or view official identity documents for passengers.</li>
</ul>
<h4>B. Information Collected Automatically:</h4>
<ul>
<li><strong>Location Data:</strong> We collect precise location data when the App is in use to facilitate ride matching, navigation, and for safety purposes.</li>
<li><strong>Device Data:</strong> We collect information about your device, such as model, operating system, and unique identifiers, to ensure App functionality and for security verification.</li>
<li><strong>Usage Data:</strong> We log how you interact with our App, including trip history and features used, to improve our services.</li>
</ul>
<h3>3.2 Payment Information</h3>
<p><strong>We do not collect, process, or store any sensitive payment information like credit/debit card numbers.</strong> We facilitate payments by connecting you to licensed, local third-party providers:</p>
<ul>
<li><strong>Mobile Carrier Billing:</strong> 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.</li>
<li><strong>Bank Card Payments:</strong> 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.</li>
</ul>
<h3>3.3 How We Use Your Information</h3>
<ul>
<li>To operate and maintain the Services (e.g., connect Drivers and Passengers).</li>
<li>To verify Driver identity and eligibility.</li>
<li>To improve App security and prevent fraud.</li>
<li>To provide customer support.</li>
<li>To comply with legal obligations.</li>
</ul>
<h3>3.4 Data Sharing</h3>
<p>We do not sell your personal data. We only share it in the following limited circumstances:</p>
<ul>
<li><strong>Between Passenger and Driver:</strong> To facilitate a ride, we share necessary information like name, photo, and real-time location.</li>
<li><strong>With Service Providers:</strong> For services like payment processing and mapping. These providers are contractually obligated to protect your data.</li>
<li><strong>For Legal Reasons:</strong> If required by law or a valid legal order.</li>
</ul>
<h3>3.5 Policy for Minors</h3>
<p>Our services are intended for individuals over the age of 18.
<strong>For Drivers:</strong> We strictly verify the identity and age of all drivers to ensure no minors are operating on our platform.
<strong>For Passengers:</strong> 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.</p>
<h2>4. User Obligations & Conduct</h2>
<ul>
<li>You must provide accurate and current information during registration.</li>
<li>You are responsible for maintaining the security of your account.</li>
<li>You agree not to use the App for any illegal activities, to harass others, or to cause damage to a Driver's vehicle.</li>
</ul>
<h2>5. Disclaimer of Liability</h2>
<p>The App is provided "as is". Intaleq 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.</p>
<h2>6. Policy Updates</h2>
<p>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.</p>
<h2>7. Account Deletion & Contact</h2>
<p>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.</p>
<p><strong>Email:</strong> <a href="mailto:support@intaleqapp.com">support@intaleqapp.com</a></p>
</body>
</html>
''';
static const String privacyPolicyArabic = '''
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>انطلق - سياسة الخصوصية وشروط الاستخدام</title>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
line-height: 1.7;
color: #333;
padding: 10px;
text-align: right;
}
h1, h2, h3 {
color: #2c3e50;
}
h1 {
font-size: 1.8em;
border-bottom: 2px solid #3498db;
padding-bottom: 10px;
}
h2 {
font-size: 1.5em;
margin-top: 30px;
color: #2980b9;
}
h3 {
font-size: 1.2em;
margin-top: 20px;
color: #16a085;
}
strong {
color: #2c3e50;
}
ul {
padding-right: 20px;
list-style-position: outside;
}
.highlight {
background-color: #f8f9fa;
padding: 15px;
border-right: 4px solid #3498db;
margin: 20px 0;
border-radius: 4px;
}
a {
color: #3498db;
text-decoration: none;
}
</style>
</head>
<body>
<h1>سياسة الخصوصية وشروط الاستخدام</h1>
<div class="highlight">
<p><strong>تاريخ النفاذ:</strong> 9 أغسطس 2025</p>
<p><strong>آخر تحديث:</strong> 9 أغسطس 2025</p>
</div>
<h2>1. المقدمة والقبول</h2>
<p>عبر تحميل أو تسجيل أو استخدام تطبيق "انطلق" ("التطبيق")، فإنك توافق على الالتزام بسياسة الخصوصية وشروط الاستخدام هذه. إذا كنت لا توافق، يجب عليك التوقف فورًا عن استخدام التطبيق. استمرارك في الاستخدام يُعد قبولاً لهذه الشروط وأي تحديثات مستقبلية لها.</p>
<h2>2. التعريفات</h2>
<ul>
<li><strong>"انطلق"، "نحن":</strong> تشير إلى شركة انطلق لنقل الركاب، دمشق سوريا (مالك ومشغل التطبيق)، التي توفر المنصة التقنية.</li>
<li><strong>"السائق":</strong> مقدم خدمة مستقل يستخدم التطبيق لتقديم خدمات النقل.</li>
<li><strong>"الراكب"، "أنت":</strong> الفرد الذي يستخدم التطبيق لطلب خدمات النقل.</li>
<li><strong>"الخدمات":</strong> عملية الربط بين الركاب والسائقين التي يسهلها تطبيقنا.</li>
</ul>
<h2>3. سياسة الخصوصية</h2>
<h3>3.1 المعلومات التي نجمعها</h3>
<p>نحن نجمع المعلومات الضرورية لتقديم خدماتنا وتحسينها.</p>
<h4>أ. المعلومات التي تقدمها بنفسك:</h4>
<ul>
<li><strong>بالنسبة للسائقين:</strong> لضمان السلامة والامتثال للقوانين، نجمع بيانات الهوية الشخصية، بما في ذلك الاسم الكامل، رقم الهاتف، صورة شخصية، والوثائق الرسمية (مثل رخصة القيادة وتسجيل المركبة).</li>
<li><strong>بالنسبة للركاب:</strong> نطلب فقط رقم هاتف للتسجيل والتواصل. نحن غير مخولين بطلب أو الاطلاع على وثائق الهوية الرسمية للركاب.</li>
</ul>
<h4>ب. المعلومات التي تُجمع تلقائيًا:</h4>
<ul>
<li><strong>بيانات الموقع:</strong> نجمع بيانات الموقع الجغرافي الدقيقة عند استخدام التطبيق لتسهيل تحديد أماكن الانطلاق والوصول، الملاحة، ولأغراض السلامة.</li>
<li><strong>بيانات الجهاز:</strong> نجمع معلومات عن جهازك (طراز، نظام تشغيل، معرفات فريدة) لضمان عمل التطبيق وللتحقق الأمني.</li>
<li><strong>بيانات الاستخدام:</strong> نسجل كيفية تفاعلك مع التطبيق، بما في ذلك سجل الرحلات والميزات المستخدمة، بهدف تحسين خدماتنا.</li>
</ul>
<h3>3.2 معلومات الدفع</h3>
<p><strong>نحن لا نجمع أو نعالج أو نخزن أي معلومات دفع حساسة</strong> مثل أرقام بطاقات الائتمان/الخصم. نحن نسهل عمليات الدفع عبر ربطك بمزودي خدمات محليين مرخصين:</p>
<ul>
<li><strong>الدفع عبر رصيد الهاتف المحمول:</strong> تتم معالجة الدفعات عبر شركتي MTN و Syriatel مباشرة من خلالهما بناءً على رقم هاتفك المسجل لديهم. يتطلب تأكيد العملية إدخال رمز تحقق (OTP) يُرسل من قبل شركة الاتصالات.</li>
<li><strong>الدفع عبر البطاقات البنكية:</strong> نربطك بشركة "eCash" السورية لمعالجة الدفعات بالبطاقات. هي التي تتولى المعاملة، وسيقوم البنك الذي تتعامل معه بإرسال رمز تحقق (OTP) إلى هاتفك لتفويض العملية.</li>
</ul>
<h3>3.3 كيف نستخدم معلوماتك</h3>
<ul>
<li>لتشغيل وصيانة الخدمات (مثل الربط بين السائقين والركاب).</li>
<li>للتحقق من هوية السائقين وأهليتهم.</li>
<li>لتحسين أمان التطبيق ومنع الاحتيال.</li>
<li>لتقديم الدعم الفني للعملاء.</li>
<li>للامتثال للالتزامات القانونية.</li>
</ul>
<h3>3.4 مشاركة البيانات</h3>
<p>نحن لا نبيع بياناتك الشخصية. نشاركها فقط في الحالات المحدودة التالية:</p>
<ul>
<li><strong>بين الراكب والسائق:</strong> لتسهيل الرحلة، نشارك المعلومات الضرورية مثل الاسم، الصورة، والموقع المباشر.</li>
<li><strong>مع مزودي الخدمات:</strong> مثل معالجي الدفع وخدمات الخرائط. هؤلاء المزودون ملزمون تعاقديًا بحماية بياناتك.</li>
<li><strong>لأسباب قانونية:</strong> إذا طُلب ذلك بموجب القانون أو أمر قضائي ساري المفعول.</li>
</ul>
<h3>3.5 سياسة القاصرين</h3>
<p>خدماتنا موجهة للأفراد الذين تزيد أعمارهم عن 18 عامًا.
<strong>بالنسبة للسائقين:</strong> نحن نتحقق بدقة من هوية وعمر جميع السائقين لضمان عدم وجود قاصرين يعملون على منصتنا.
<strong>بالنسبة للركاب:</strong> على الرغم من أننا لا نتحقق من هوية الركاب، فإن الخدمة غير موجهة للأطفال دون سن 18. إذا علم ولي الأمر أن طفله قد زودنا بمعلومات دون موافقته، فيجب عليه الاتصال بنا على الفور.</p>
<h2>4. التزامات المستخدم وسلوكه</h2>
<ul>
<li>يجب عليك تقديم معلومات دقيقة وحديثة عند التسجيل.</li>
<li>أنت مسؤول عن الحفاظ على أمان حسابك.</li>
<li>أنت توافق على عدم استخدام التطبيق لأي أنشطة غير قانونية، أو لمضايقة الآخرين، أو التسبب في ضرر لمركبة السائق.</li>
</ul>
<h2>5. إخلاء المسؤولية</h2>
<p>يتم تقديم التطبيق "كما هو". "انطلق" هي منصة وسيطة وليست مسؤولة عن تصرفات السائقين أو الركاب، أو الحوادث، أو التأخير، أو أي نزاعات بين المستخدمين. مسؤوليتنا محدودة إلى أقصى حد يسمح به القانون.</p>
<h2>6. تحديثات السياسة</h2>
<p>قد نقوم بتحديث هذه الشروط. في حال إجراء تغييرات جوهرية، سنقوم بإعلامك داخل التطبيق. سيُطلب منك مراجعة الشروط الجديدة وقبولها لمواصلة استخدام الخدمات، لضمان أن موافقتك فعالة ومبنية على معرفة.</p>
<h2>7. حذف الحساب والتواصل</h2>
<p>لديك الحق في طلب حذف حسابك وبياناتك الشخصية. للقيام بذلك، أو لأي استفسارات أخرى، يرجى التواصل معنا. سنرد على طلبات الحذف في غضون 30 يومًا.</p>
<p><strong>البريد الإلكتروني:</strong> <a href="mailto:support@intaleqapp.com">support@intaleqapp.com</a></p>
</body>
</html>
''';
}

View File

@@ -0,0 +1,372 @@
import 'package:siro_rider/constant/box_name.dart';
import 'package:siro_rider/main.dart';
class AppLink {
///https://walletintaleq.intaleq.xyz/v1/main
static String paymentServer = 'https://walletintaleq.intaleq.xyz/v2/main';
///https://api.intaleq.xyz/intaleq/ride/location
static String location = 'https://api.intaleq.xyz/intaleq_v3/ride/location';
/// هذا الرابط خاص برحلات الركاب، ويستخدمه السيرفر الجانبي للرحلات (Ride Server Side) للتعامل مع عمليات إلغاء الرحلات وتحديث حالة الرحلات وغيرها من العمليات المتعلقة بالرحلات.
/// https://routesy.intaleq.xyz for syria
/// for jordan https://routesjo.intaleq.xyz
static String routesOsm = 'https://routesy.intaleq.xyz';
static String mapSaasRoute = 'https://map-saas.intaleqapp.com/api/maps/route';
static String reverseGeocoding =
'https://map-saas.intaleqapp.com/api/geocoding/reverse';
static String searchGeocoding =
'https://map-saas.intaleqapp.com/api/geocoding/search';
static String mapSaasPlaces =
'https://map-saas.intaleqapp.com/api/geocoding/places';
///https://location.intaleq.xyz/intaleq/ride/location
///locationServerSide هو السيرفر الجانبي الخاص بموقع السائقين، حيث يتم إرسال تحديثات الموقع من التطبيق إلى هذا السيرفر، ومن ثم يقوم هذا السيرفر بتوزيع هذه التحديثات إلى الركاب المتصلين الذين يتابعون السائق في الوقت الحقيقي.
static String locationServerSide =
'https://location.intaleq.xyz/intaleq/ride/location';
///https://api.intaleq.xyz/intaleq
static final String endPoint = 'https://api.intaleq.xyz/intaleq_v3';
/// هذا الرابط خاص برحلات الركاب، ويستخدمه السيرفر الجانبي للرحلات (Ride Server Side) للتعامل مع عمليات إلغاء الرحلات وتحديث حالة الرحلات وغيرها من العمليات المتعلقة بالرحلات.
/// https://rides.intaleq.xyz/intaleq
static final String rideServerSide = 'https://rides.intaleq.xyz/intaleq';
///https://api.intaleq.xyz/intaleq
/// main api link for all api calls except rides and location
static final String server = 'https://api.intaleq.xyz/intaleq_v3';
///https://rides.intaleq.xyz
/// هذا الرابط خاص برحلات الركاب، ويستخدمه السيرفر الجانبي للرحلات (Ride Server Side) للتعامل مع عمليات إلغاء الرحلات وتحديث حالة الرحلات وغيرها من العمليات المتعلقة بالرحلات.
static final String serverSocket = 'https://rides.intaleq.xyz';
///
static String googleMapsLink = 'https://maps.googleapis.com/maps/api/';
/// here map link for searching for places
static String searcMaps =
'https://autosuggest.search.hereapi.com/v1/autosuggest';
static String test = "$server/test.php";
//===============firebase==========================
static String getTokens = "$server/ride/firebase/getTokensPassenger.php";
static String getTokenParent = "$server/ride/firebase/getTokenParent.php";
static String addTokens = "$server/ride/firebase/add.php";
static String addFingerPrint = "$paymentServer/ride/firebase/add.php";
static String addTokensDriver = "$server/ride/firebase/addDriver.php";
static String packageInfo = "$server/auth/packageInfo.php";
//=======================Wallet===================
static String wallet = '$paymentServer/ride/passengerWallet';
static String walletDriver = '$paymentServer/ride/driverWallet';
static String getAllPassengerTransaction =
"$wallet/getAllPassengerTransaction.php";
static String getWalletByPassenger = "$wallet/getWalletByPassenger.php";
static String getPassengersWallet = "$wallet/get.php";
static String payWithPayMobWalletPasenger =
'$paymentServer/ride/payMob/wallet/payWithPayMob.php';
static String payWithPayMobCardPassenger =
'$paymentServer/ride/payMob/payWithPayMob.php';
static String payWithEcash = "$paymentServer/ecash/payWithEcash.php";
static String paymetVerifyPassenger =
"$paymentServer/ride/payMob/paymet_verfy.php";
static String getPassengerWalletArchive =
"$wallet/getPassengerWalletArchive.php";
static String addDrivePayment = "$paymentServer/ride/payment/add.php";
static String addSeferWallet = "$paymentServer/ride/seferWallet/add.php";
static String addPassengersWallet = "$wallet/add.php";
static String deletePassengersWallet = "$wallet/delete.php";
static String updatePassengersWallet = "$wallet/update.php";
static String getWalletByDriver = "$walletDriver/getWalletByDriver.php";
static String getDriversWallet = "$walletDriver/get.php";
static String addDriversWalletPoints = "$walletDriver/add.php";
static String deleteDriversWallet = "$walletDriver/delete.php";
static String updateDriversWallet = "$walletDriver/update.php";
//=======================promo===================ride.mobile-app.store/ride/promo/get.php
static String promo = '$server/ride/promo';
static String getPassengersPromo = "$promo/get.php";
static String getPromoFirst = "$promo/getPromoFirst.php";
static String getPromoBytody = "$promo/getPromoBytody.php";
static String addPassengersPromo = "$promo/add.php";
static String deletePassengersPromo = "$promo/delete.php";
static String updatePassengersPromo = "$promo/update.php";
//===============contact==========================
static String savePhones = "$server/ride/egyptPhones/add.php";
static String getPhones = "$server/ride/egyptPhones/get.php";
////=======================cancelRide===================
// static String ride = '$server/ride';
static String addCancelRideFromPassenger =
"$rideServerSide/cancelRide/add.php";
static String cancelRide = "$rideServerSide/cancelRide/get.php";
//-----------------ridessss------------------
static String addRides = "$rideServerSide/ride/rides/add.php";
static String getRides = "$rideServerSide/ride/rides/get.php";
static String getRideOrderID =
"$rideServerSide/ride/rides/getRideOrderID.php";
static String getRideStatus = "$rideServerSide/ride/rides/getRideStatus.php";
static String getRideStatusBegin =
"$rideServerSide/ride/rides/getRideStatusBegin.php";
static String getRideStatusFromStartApp =
"$server/ride/rides/getRideStatusFromStartApp.php";
static String updateRides = "$rideServerSide/ride/rides/update.php";
static String updateStausFromSpeed =
"$rideServerSide/ride/rides/updateStausFromSpeed.php";
static String deleteRides = "$rideServerSide/ride/rides/delete.php";
//-----------------DriverPayment------------------
static String adddriverScam = "$server/driver_scam/add.php";
static String getdriverScam = "$server/ride/driver_scam/get.php";
/////////---getKazanPercent===////////////
static String getKazanPercent = "$server/ride/kazan/get.php";
static String addKazanPercent = "$server/ride/kazan/add.php";
////-----------------DriverPayment------------------
static String addDriverpayment = "$paymentServer/ride/payment/add.php";
static String addDriverPaymentPoints =
"$paymentServer/ride/driverPayment/add.php";
static String addPaymentTokenPassenger =
"$paymentServer/ride/passengerWallet/addPaymentTokenPassenger.php";
static String addPaymentTokenDriver =
"$paymentServer/ride/driverWallet/addPaymentToken.php";
static String getDriverPaymentPoints =
"$paymentServer/ride/driverWallet/get.php";
static String payWithEcashPassenger =
"$paymentServer/ride/ecash/passenger/payWithEcash.php";
static String payWithMTNConfirm =
"$paymentServer/ride/mtn/passenger/mtn_confirm.php";
static String payWithMTNStart =
"$paymentServer/ride/mtn/passenger/mtn_start.php";
static String payWithSyriatelConfirm =
"$paymentServer/ride/syriatel/passenger/confirm_payment.php";
static String payWithSyriatelStart =
"$paymentServer/ride/syriatel/passenger/start_payment.php";
static String getDriverpaymentToday = "$paymentServer/ride/payment/get.php";
static String getCountRide = "$paymentServer/ride/payment/getCountRide.php";
static String getAllPaymentFromRide =
"$paymentServer/ride/payment/getAllPayment.php";
static String getAllPaymentVisa =
"$paymentServer/ride/payment/getAllPaymentVisa.php";
//-----------------Passenger NotificationCaptain------------------
static String addNotificationPassenger =
"$server/ride/notificationPassenger/add.php";
static String getNotificationPassenger =
"$server/ride/notificationPassenger/get.php";
static String updateNotificationPassenger =
"$server/ride/notificationPassenger/update.php";
//-----------------Driver NotificationCaptain------------------
static String addNotificationCaptain =
"$server/ride/notificationCaptain/add.php";
static String addWaitingRide =
"$server/ride/notificationCaptain/addWaitingRide.php";
static String updateWaitingTrip =
"$server/ride/notificationCaptain/updateWaitingTrip.php";
static String getRideWaiting =
"$endPoint/ride/notificationCaptain/getRideWaiting.php";
static String getNotificationCaptain =
"$server/ride/notificationCaptain/get.php";
static String updateNotificationCaptain =
"$server/ride/notificationCaptain/update.php";
static String deleteNotificationCaptain =
"$server/ride/notificationCaptain/delete.php";
//-----------------invitor------------------
static String addInviteDriver = "$server/ride/invitor/add.php";
static String addInvitationPassenger =
"$server/ride/invitor/addInvitationPassenger.php";
static String getInviteDriver = "$server/ride/invitor/get.php";
static String getDriverInvitationToPassengers =
"$server/ride/invitor/getDriverInvitationToPassengers.php";
static String updateInviteDriver = "$server/ride/invitor/update.php";
static String updatePassengerGift =
"$server/ride/invitor/updatePassengerGift.php";
//-----------------Api Key------------------
static String addApiKey = "$server/ride/apiKey/add.php";
static String getApiKey = "$server/ride/apiKey/get.php";
static String getCnMap = "$server/auth/cnMap.php";
static String updateApiKey = "$server/ride/apiKey/update.php";
static String deleteApiKey = "$server/ride/apiKey/delete.php";
static String getPlacesSyria = "$server/ride/places_syria/get.php";
//-----------------Feed Back------------------
static String addFeedBack = "$server/ride/feedBack/add.php";
static String add_solve_all = "$server/ride/feedBack/add_solve_all.php";
static String uploadAudio = "$server/ride/feedBack/upload_audio.php";
static String getFeedBack = "$server/ride/feedBack/get.php";
static String updateFeedBack = "$server/ride/feedBack/updateFeedBack.php";
//-----------------Tips------------------
static String addTips = "$server/ride/tips/add.php";
static String getTips = "$server/ride/tips/get.php";
static String updateTips = "$server/ride/tips/update.php";
//-----------------Help Center------------------
static String addhelpCenter = "$server/ride/helpCenter/add.php";
static String gethelpCenter = "$server/ride/helpCenter/get.php";
static String getByIdhelpCenter = "$server/ride/helpCenter/getById.php";
static String updatehelpCenter = "$server/ride/helpCenter/update.php";
static String deletehelpCenter = "$server/ride/helpCenter/delete.php";
//-----------------license------------------
static String addLicense = "$server/ride/license/add.php";
static String getLicense = "$server/ride/license/get.php";
static String updateLicense = "$server/ride/license/updateFeedBack.php";
//-----------------RegisrationCar------------------
static String addRegisrationCar = "$server/ride/RegisrationCar/add.php";
static String getRegisrationCar =
"${box.read(BoxName.serverChosen)}/server/ride/RegisrationCar/get.php";
static String selectDriverAndCarForMishwariTrip =
"$server/ride/RegisrationCar/selectDriverAndCarForMishwariTrip.php";
static String updateRegisrationCar = "$server/ride/RegisrationCar/update.php";
//-----------------mishwari------------------
static String addMishwari = "$server/ride/mishwari/add.php";
static String cancelMishwari = "$server/ride/mishwari/cancel.php";
static String getMishwari = "$server/ride/mishwari/get.php";
static String sendChatMessage = "$server/ride/chat/send_message.php";
//-----------------DriverOrder------------------
static String addDriverOrder = "$server/ride/driver_order/add.php";
static String getDriverOrder = "$server/ride/driver_order/get.php";
static String getOrderCancelStatus =
"$server/ride/driver_order/getOrderCancelStatus.php";
static String updateDriverOrder = "$server/ride/driver_order/update.php";
static String deleteDriverOrder = "$server/ride/driver_order/delete.php";
// =====================================
static String addRateToPassenger = "$server/ride/rate/add.php";
static String savePlacesServer = "$server/ride/places/add.php";
static String getapiKey = "$server/ride/apiKey/get.php";
static String addRateToDriver = "$server/ride/rate/addRateToDriver.php";
static String getDriverRate = "$server/ride/rate/getDriverRate.php";
static String getPassengerRate = "$server/ride/rate/getPassengerRate.php";
////////////////emails ============//
static String sendEmailToPassengerForTripDetails =
"$server/ride/rides/emailToPassengerTripDetail.php";
// ===========================================
static String pathImage = "$server/upload/types/";
static String uploadImage = "$server/uploadImage.php";
static String uploadImage1 = "$server/uploadImage1.php";
static String uploadImagePortrate = "$server/uploadImagePortrate.php";
static String uploadImageType = "$server/uploadImageType.php";
//=============egypt documents ==============
static String uploadEgyptidFront =
"$server/EgyptDocuments/uploadEgyptidFront.php";
static String uploadEgypt = "$server/uploadEgypt.php";
//==================certifcate==========
// static String location = '${box.read(BoxName.serverChosen)}/ride/location';
static String getCarsLocationByPassenger = "$location/get.php";
static String getLocationAreaLinks =
'$server/ride/location/get_location_area_links.php';
static String addpassengerLocation =
"$locationServerSide/addpassengerLocation.php";
static String getCarsLocationByPassengerSpeed = "$location/getSpeed.php";
static String getCarsLocationByPassengerComfort = "$location/getComfort.php";
static String getCarsLocationByPassengerBalash = "$location/getBalash.php";
static String getCarsLocationByPassengerElectric =
"$location/getElectric.php";
static String getCarsLocationByPassengerPinkBike =
"$location/getPinkBike.php";
static String getCarsLocationByPassengerVan =
"$location/getCarsLocationByPassengerVan.php";
static String getCarsLocationByPassengerDelivery =
"$location/getDelivery.php";
static String getLocationParents = "$location/getLocationParents.php";
static String getFemalDriverLocationByPassenger =
"$location/getFemalDriver.php";
static String getDriverCarsLocationToPassengerAfterApplied =
"$location/getDriverCarsLocationToPassengerAfterApplied.php";
// static String addCarsLocationByPassenger = "$location/add.php";
// static String deleteCarsLocationByPassenger = "$location/delete.php";
// static String updateCarsLocationByPassenger = "$location/update.php";
// static String getTotalDriverDuration = "$location/getTotalDriverDuration.php";
// static String getTotalDriverDurationToday =
// "$location/getTotalDriverDurationToday.php";
//==================Blog=============
static String profile = '$server/ride/profile';
static String getprofile = "$profile/get.php";
static String getCaptainProfile = "$profile/getCaptainProfile.php";
static String addprofile = "$profile/add.php";
static String deleteprofile = "$profile/delete.php";
static String updateprofile = "$profile/update.php";
//===================Auth============
static String auth = '$server/auth';
static String login = "$auth/login.php";
static String loginJwtRider = "$server/login.php";
static String loginJwtWalletRider = "$server/loginWallet.php";
static String loginFirstTime = "$server/loginFirstTime.php";
static String getTesterApp = "$auth/Tester/getTesterApp.php";
static String updateTesterApp = "$auth/Tester/updateTesterApp.php";
static String signUp = "$auth/signup.php";
static String sendVerifyEmail = "$auth/sendVerifyEmail.php";
static String loginFromGooglePassenger = "$auth/loginFromGooglePassenger.php";
static String checkPhoneNumberISVerfiedPassenger =
"$auth/checkPhoneNumberISVerfiedPassenger.php";
static String passengerRemovedAccountEmail =
"$auth/passengerRemovedAccountEmail.php";
static String verifyEmail = "$auth/verifyEmail.php";
//===================Auth Captin============
static String authCaptin = '$server/auth/captin';
static String loginCaptin = "$authCaptin/login.php";
static String loginFromGoogleCaptin = "$authCaptin/loginFromGoogle.php";
static String signUpCaptin = "$authCaptin/register.php";
static String sendVerifyEmailCaptin = "$authCaptin/sendVerifyEmail.php";
static String sendVerifyOtpMessage = "$server/auth/otpmessage.php";
static String verifyOtpMessage = "$server/auth/verifyOtpMessage.php";
static String verifyEmailCaptin = "$authCaptin/verifyEmail.php";
static String removeUser = "$authCaptin/removeAccount.php";
static String deletecaptainAccounr = "$authCaptin/deletecaptainAccounr.php";
static String updateAccountBank = "$authCaptin/updateAccountBank.php";
static String getAccount = "$authCaptin/getAccount.php";
static String updatePassengersInvitation =
"$server/ride/invitor/updatePassengersInvitation.php";
static String updateDriverInvitationDirectly =
"$server/ride/invitor/updateDriverInvitationDirectly.php";
//===================Admin Captin============
static String getPassengerDetailsByPassengerID =
"$server/Admin/getPassengerDetailsByPassengerID.php";
static String getPassengerDetails = "$server/Admin/getPassengerDetails.php";
static String getPassengerbyEmail = "$server/Admin/getPassengerbyEmail.php";
static String addAdminUser = "$server/Admin/adminUser/add.php";
static String getAdminUser = "$server/Admin/adminUser/get.php";
static String addError = "$server/Admin/errorApp.php";
static String getCaptainDetailsByEmailOrIDOrPhone =
"$server/Admin/AdminCaptain/getCaptainDetailsByEmailOrIDOrPhone.php";
static String getCaptainDetails = "$server/Admin/AdminCaptain/get.php";
static String getRidesPerMonth =
"$server/Admin/AdminRide/getRidesPerMonth.php";
static String getRidesDetails = "$server/Admin/AdminRide/get.php";
//////////Sms egypt///////////
static String sendSms = "https://sms.kazumi.me/api/sms/send-sms";
static String sendSmsFromPHP =
'$server/auth/sms_new_backend/sendOtpPassenger.php';
static String verifyOtpPassenger =
'$server/auth/passengerOTP/verifyOtpPassenger.php';
static String senddlr = "https://sms.kazumi.me/api/sms/send-dlr";
static String sendvalidity = "https://sms.kazumi.me/api/sms/send-validity";
static String sendmany = "https://sms.kazumi.me/api/sms/send-many";
static String checkCredit = "https://sms.kazumi.me/api/sms/check-credit";
static String getSender = "$server/auth/sms/getSender.php";
static String checkStatus = "https://sms.kazumi.me/api/sms/check-status";
static String updatePhoneInvalidSMSPassenger =
"$server/auth/sms/updatePhoneInvalidSMSPassenger.php";
}

View File

@@ -0,0 +1,31 @@
List<String> passengerMessages = [
// --- رسائل العروض والتوفير ---
"وفر على حالك: 🚗 أسعار انطلق نازلة كتير! شوف العروض الجديدة وفوت هلأ قبل ما تخلص. 🌟",
"خصم اليوم: 🤔 لا تفوّت الفرصة! افتح تطبيق انطلق وشوف الأسعار يلي ما بتنعاد.",
"عروض نارية: 🎁 اليوم خصم خاص إلك، احجز مشوارك الجاي بسعر ولا أروع!",
"مشاوير اقتصادية: 💸 مع انطلق بتتحرك براحتك وبتدفع أقل، جرب وشوف الفرق!",
// --- رسائل السهولة والراحة ---
"مشوار بكبسة زر: 📲 افتح تطبيق انطلق، وخلِّي السيارة توصلك لعندك بثواني.",
"ارتاح من المواصلات: 🤔 خلّي انطلق يريحك من الانتظار والزحمة، وانطلق وين ما بدك.",
"سيارتك جاهزة: 🚕 الكابتن ناطر طلبك، حدد وجهتك وخلّي الطريق علينا.",
"رحلة مريحة: 🛣️ ارتاح بالكرسي، نحنا منهتم بكل التفاصيل من الباب للباب.",
// --- رسائل الأمان والثقة ---
"رحلتك بأمان: 🙏 كل كباتنّا مدرّبين وملتزمين، وسلامتك أولويتنا.",
"سافر وانت مطمّن: 🔒 مع انطلق كل شي موثوق ومسجّل لتكون مرتاح البال.",
"شارك رحلتك: ❤️ فيك تبعت تفاصيل المشوار لأهلك أو رفقاتك بخطوة وحدة.",
"انطلق بثقة: ✅ كل الرحلات مراقبة لتضمن تجربة آمنة ومريحة 100%.",
// --- رسائل تفاعلية ومناسبات ---
"الويكند بلّش: 🥳 خلي مشاويرك مع الأصحاب علينا، وفر وقتك وفلوسك مع انطلق.",
"رايح عالشغل: 💼 لا تتأخر، افتح التطبيق وخلي الكابتن يوصلك بلا تعب.",
"الشمس مولّعة: ☀️ لا تمشي تحت الحر، خلي السيارة تجي لعندك.",
"مستعجل: 🏃‍♂️ لا تقلق، انطلق أسرع طريق لتوصل عموعدك.",
// --- رسائل تشجيعية عامة ---
"وين رايح اليوم؟ 🗺️ وين ما كانت وجهتك، انطلق بيخدمك بكل مكان وبأي وقت.",
"جرب شي جديد: 🚘 شوف فئات السيارات الجديدة وخلي رحلتك أريح وأجمل.",
"شكراً لاختيارك: ⭐ وجودك معنا بيفرحنا، ونتمنى دايماً تكون رحلتك مريحة وسعيدة.",
"كل يوم جديد: ✨ فوت عالتطبيق وتابع آخر التحديثات والعروض يلي نازلة خصيصاً إلك."
];

View File

@@ -0,0 +1,198 @@
sefer cairo server
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
{{ssl_certificate_key}}
{{ssl_certificate}}
server_name www.sefer.click;
return 301 https://sefer.click$request_uri;
}
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
{{ssl_certificate_key}}
{{ssl_certificate}}
server_name sefer.click www1.sefer.click;
{{root}}
{{nginx_access_log}}
{{nginx_error_log}}
# Set the maximum request body size
client_max_body_size 10m;
if ($scheme != "https") {
rewrite ^ https://$host$uri permanent;
}
location ~ /.well-known {
auth_basic off;
allow all;
}
# Security headers
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline';" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Permissions-Policy "geolocation=(), microphone=()" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
{{settings}}
location / {
{{varnish_proxy_pass}}
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_hide_header X-Varnish;
proxy_redirect off;
proxy_max_temp_file_size 0;
proxy_connect_timeout 720;
proxy_send_timeout 720;
proxy_read_timeout 720;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
}
location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map|mjs)$ {
add_header Access-Control-Allow-Origin "*";
expires max;
access_log off;
}
location ~ /\.(ht|svn|git) {
deny all;
}
if (-f $request_filename) {
break;
}
}
server {
listen 8080;
listen [::]:8080;
server_name sefer.click www1.sefer.click;
{{root}}
try_files $uri $uri/ /index.php?$args;
index index.php index.html;
location ~ \.php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
try_files $uri =404;
fastcgi_read_timeout 3600;
fastcgi_send_timeout 3600;
proxy_read_timeout 3600;
proxy_send_timeout 3600;
fastcgi_param HTTPS "on";
fastcgi_param SERVER_PORT 443;
fastcgi_pass 127.0.0.1:{{php_fpm_port}};
fastcgi_param PHP_VALUE "{{php_settings}}";
}
if (-f $request_filename) {
break;
}
}
wallet server
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
{{ssl_certificate_key}}
{{ssl_certificate}}
server_name www.seferpw.shop;
return 301 https://seferpw.shop$request_uri;
}
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
{{ssl_certificate_key}}
{{ssl_certificate}}
server_name seferpw.shop www1.seferpw.shop 156.67.82.188;
{{root}}
{{nginx_access_log}}
{{nginx_error_log}}
# Set the maximum request body size
client_max_body_size 10m;
if ($scheme != "https") {
rewrite ^ https://$host$uri permanent;
}
location ~ /.well-known {
auth_basic off;
allow all;
}
# Security headers
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline';" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Permissions-Policy "geolocation=(), microphone=()" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
{{settings}}
location / {
{{varnish_proxy_pass}}
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_hide_header X-Varnish;
proxy_redirect off;
proxy_max_temp_file_size 0;
proxy_connect_timeout 720;
proxy_send_timeout 720;
proxy_read_timeout 720;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
}
location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map|mjs)$ {
add_header Access-Control-Allow-Origin "*";
expires max;
access_log off;
}
location ~ /\.(ht|svn|git) {
deny all;
}
if (-f $request_filename) {
break;
}
}
server {
listen 8080;
listen [::]:8080;
server_name seferpw.shop www1.seferpw.shop 156.67.82.188;
{{root}}
try_files $uri $uri/ /index.php?$args;
index index.php index.html;
location ~ \.php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
try_files $uri =404;
fastcgi_read_timeout 3600;
fastcgi_send_timeout 3600;
proxy_read_timeout 3600;
proxy_send_timeout 3600;
fastcgi_param HTTPS "on";
fastcgi_param SERVER_PORT 443;
fastcgi_pass 127.0.0.1:{{php_fpm_port}};
fastcgi_param PHP_VALUE "{{php_settings}}";
}
if (-f $request_filename) {
break;
}
}

View File

@@ -0,0 +1,74 @@
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import '../main.dart';
import 'box_name.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.withOpacity(0.3),
blurRadius: 5,
offset: const Offset(2, 4)),
BoxShadow(
color: AppColor.accentColor.withOpacity(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.withOpacity(0.05),
blurRadius: 10,
offset: const Offset(0, 4)),
BoxShadow(
color: AppColor.primaryColor.withOpacity(0.02),
blurRadius: 5,
offset: const Offset(-2, -2))
],
color: AppColor.secondaryColor,
borderRadius: const BorderRadius.all(
Radius.elliptical(15, 30),
),
);
}

View File

@@ -0,0 +1,19 @@
// import 'package:siro_rider/env/env.dart';
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 captainNotification = "captainNotification";
}
class Pasenger {
static const String pasengerpas = 'MG6DEJZSczBT6Rx0jOlehQ==';
static const String payMobApikey = 'payMobApikey';
static const String initializationVector = 'initializationVector';
static const String keyOfApp = 'keyOfApp';
static const String FCM_PRIVATE_KEY_INTALEQ = 'FCM_PRIVATE_KEY_INTALEQ';
}

View File

@@ -0,0 +1,83 @@
import 'package:intaleq_maps/intaleq_maps.dart';
class UniversitiesPolygons {
// AUC polygon points
static const List<List<LatLng>> universityPolygons = [
// AUC Polygon
[
LatLng(30.013431, 31.502572),
LatLng(30.018469, 31.497478),
LatLng(30.023158, 31.495870),
LatLng(30.025084, 31.496781),
LatLng(30.018701, 31.511393),
LatLng(30.015312, 31.508310),
],
// Example polygon for University 'German University in Cairo (GUC)'
[
LatLng(29.984554, 31.437829),
LatLng(29.990363, 31.438390),
LatLng(29.990560, 31.445643),
LatLng(29.984436, 31.445825),
],
//Future University in Egypt (FUE)
[
LatLng(30.025794, 31.490946),
LatLng(30.028341, 31.491014),
LatLng(30.028341, 31.492586),
LatLng(30.025844, 31.492491),
],
//'British University in Egypt (BUE)'
[
LatLng(30.117423, 31.605834),
LatLng(30.118224, 31.605543),
LatLng(30.118649, 31.607361),
LatLng(30.118932, 31.608033),
LatLng(30.119592, 31.612159),
LatLng(30.119372, 31.612958),
LatLng(30.120017, 31.617102),
LatLng(30.119435, 31.617193),
],
//Misr International University (MIU)
[
LatLng(30.166498, 31.491663),
LatLng(30.171956, 31.491060),
LatLng(30.172212, 31.495754),
LatLng(30.167112, 31.496108),
],
// Canadian International College (CIC)
[
LatLng(30.034312, 31.428963),
LatLng(30.035661, 31.429037),
LatLng(30.036074, 31.430522),
LatLng(30.036017, 31.431146),
LatLng(30.034580, 31.431117),
],
// October 6 University (O6U)
[
LatLng(29.974102, 30.946934),
LatLng(29.976620, 30.944925),
LatLng(29.979848, 30.949832),
LatLng(29.977372, 30.951950),
],
[
LatLng(30.029312, 31.210046),
LatLng(30.027124, 31.201393),
LatLng(30.014523, 31.205087),
LatLng(30.015416, 31.212218),
LatLng(30.027325, 31.210661),
],
// Add polygons for 8 more universities...
];
static const List<String> universityNames = [
"American University in Cairo (AUC)",
'German University in Cairo (GUC)',
'Future University in Egypt (FUE)',
'British University in Egypt (BUE)',
'Misr International University (MIU)',
'Canadian International College (CIC)',
'October 6 University (O6U)',
"Cairo University",
// Add names for 8 more universities...
];
}