<?php

// --- تضمين الملفات الأساسية ---
require_once __DIR__ . '/../connect.php'; // يفترض أن يحتوي على الاتصال ومساعد التشفير

// --- استقبال البيانات من التطبيق ---
$driverId = filterRequest("driverId");
$phone = filterRequest("phone"); // استقبال رقم الهاتف مباشرة

// --- بيانات جدول السائق (driver) ---
$firstName = filterRequest("first_name");
$lastName = filterRequest("last_name");
$site = filterRequest("site"); // مكان القيد/الولادة
$nationalNumber = filterRequest("national_number");
$licenseCategories = filterRequest("license_categories"); // فئة الرخصة
$expiryDate = filterRequest("expiry_date"); // تاريخ انتهاء رخصة السائق
$licenseIssueDate = filterRequest("license_issue_date");
$gender = filterRequest("gender"); // الحقل الجديد
$birthdate = filterRequest("birthdate"); // الحقل الجديد
$maritalStatus=filterRequest("maritalStatus");

// --- بيانات جدول السيارة (CarRegistration) ---
$owner = filterRequest("owner");
$color = filterRequest("color");
$colorHex = filterRequest("color_hex");
$model = filterRequest("model"); // الموديل
$carPlate = filterRequest("car_plate");
$make = filterRequest("make"); // الصانع
$fuel = filterRequest("fuel");
$year = filterRequest("year");
$carExpirationDate = filterRequest("expiration_date"); // تاريخ انتهاء رخصة السيارة

// --- بدء المعاملة لضمان سلامة البيانات ---
$con->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 error occurred: " . $e->getMessage());
}

?>

