beginTransaction(); try { // --- 1. معالجة وتشفير البيانات --- $nameArabic = $firstName . ' ' . $lastName; $address = $site; // تشفير الحقول الحساسة $encryptedFirstName = $encryptionHelper->encryptData($firstName); $encryptedLastName = $encryptionHelper->encryptData($lastName); $encryptedSite = $encryptionHelper->encryptData($site); $encryptedAddress = $encryptionHelper->encryptData($address); $encryptedNameArabic = $encryptionHelper->encryptData($nameArabic); $encryptedNationalNumber = $encryptionHelper->encryptData($nationalNumber); $encryptedOwner = $encryptionHelper->encryptData($owner); $encryptedCarPlate = $encryptionHelper->encryptData($carPlate); $encryptedBirthdate = $encryptionHelper->encryptData($birthdate); $encryptedGender = $encryptionHelper->encryptData($gender); // --- 2. تحديث جدول السائق --- $sqlDriver = "UPDATE `driver` SET `first_name` = :first_name, `last_name` = :last_name, `site` = :site, `address` = :address, `national_number` = :national_number, `license_categories` = :license_categories, `expiry_date` = :expiry_date, `issue_date` = :issue_date, `gender` = :gender, `birthdate` = :birthdate, `name_arabic` = :name_arabic, `maritalStatus` = :maritalStatus, `status` = 'actives' WHERE `id` = :driverId"; $stmtDriver = $con->prepare($sqlDriver); $stmtDriver->execute([ ':first_name' => $encryptedFirstName, ':last_name' => $encryptedLastName, ':site' => $encryptedSite, ':address' => $encryptedAddress, ':national_number' => $encryptedNationalNumber, ':license_categories' => $licenseCategories, ':expiry_date' => $expiryDate, ':issue_date' => $licenseIssueDate, ':gender' => $encryptedGender, ':birthdate' => $encryptedBirthdate, ':name_arabic' => $encryptedNameArabic, ':driverId' => $driverId, ':maritalStatus' =>$maritalStatus ]); // --- 3. تحديث جدول السيارة --- $sqlCar = "UPDATE `CarRegistration` SET `owner` = :owner, `color` = :color, `color_hex` = :color_hex, `model` = :model, `car_plate` = :car_plate, `make` = :make, `fuel` = :fuel, `year` = :year, `expiration_date` = :expiration_date WHERE `driverID` = :driverId"; $stmtCar = $con->prepare($sqlCar); $stmtCar->execute([ ':owner' => $encryptedOwner, ':color' => $color, ':color_hex' => $colorHex, ':model' => $model, ':car_plate' => $encryptedCarPlate, ':make' => $make, ':fuel' => $fuel, ':year' => $year, ':expiration_date' => $carExpirationDate, ':driverId' => $driverId ]); // --- 4. تأكيد المعاملة --- $con->commit(); jsonSuccess(["message" => "Driver and car data updated successfully."]); // --- 5. إرسال رسالة واتساب مبسطة وآمنة (باختيار رقم عشوائي) --- // 5.1. تعريف الأرقام $supportPhones = ['0952475740', '0952475742']; // يمكنك إضافة المزيد من الأرقام هنا // 5.2. اختيار رقم عشوائي من القائمة $randomIndex = array_rand($supportPhones); // يختار "مفتاح" عشوائي (index) $phoneToUse = $supportPhones[$randomIndex]; // يحصل على الرقم من المفتاح // --- !!! التعديل: إضافة رقم عشوائي --- // هذا يضيف رقم عشوائي (4-6 خانات) لجعل الرسالة فريدة $randomNumber = rand(1000, 999999); // 5.5. إعداد نص الرسالة بالرقم المتغير $messageBody = "أهلاً وسهلاً كابتن $firstName 👋\n" . "تم تفعيل حسابك على تطبيق *سيرو*.\n" . "يمكنك الآن تسجيل الدخول والبدء بالعمل مباشرة.\n" . "للمساعدة تواصل معنا على الرقم: $phoneToUse\n" // <-- تم استخدام المتغير العشوائي هنا . "نتمنى لك عمل موفق 🚖\n\n" . "معرف الرسالة: $randomNumber"; // <-- إضافة الرقم العشوائي // 5.6. إرسال الرسالة sendWhatsAppFromServer($phone, $messageBody); } catch (Exception $e) { // --- 6. التراجع في حال الخطأ --- $con->rollBack(); jsonError("An internal error occurred. Please try again later."); } ?>