<?php
require_once __DIR__ . '/../../connect.php';

$driver_id = filterRequest("id");
$phone     = filterRequest("phone");
$status    = filterRequest("status");

if (empty($driver_id)) {
    jsonError("Driver ID is required.");
}

$updateFields = [];
$params = [':id' => $driver_id];

if ($phone !== null && $phone !== '') {
    $encphone = $encryptionHelper->encryptData($phone);
    $updateFields[] = "`phone` = :phone";
    $params[':phone'] = $encphone;
}

if ($status !== null && $status !== '') {
    $updateFields[] = "`status` = :status";
    $params[':status'] = $status;
}

if (empty($updateFields)) {
    jsonError("No parameters provided for update.");
}

$sql = "UPDATE `driver` SET " . implode(", ", $updateFields) . " WHERE `id` = :id";
$stmt = $con->prepare($sql);

try {
    $stmt->execute($params);

    if ($stmt->rowCount() > 0) {
        logAudit($con, $user_id, "تعديل بيانات سائق من لوحة التحكم", "driver", $driver_id, [
            "phone" => $phone,
            "status" => $status
        ]);

        // إذا تم تفعيل السائق، نرسل له رسالة ترحيبية عبر الواتساب لتأكيد التفعيل
        if ($status === 'active' || $status === 'actives') {
            // جلب معلومات السائق لإرسال الرسالة
            $selectSql = "SELECT `phone`, `first_name` FROM `driver` WHERE `id` = :id";
            $selectStmt = $con->prepare($selectSql);
            $selectStmt->execute([':id' => $driver_id]);
            $driverData = $selectStmt->fetch(PDO::FETCH_ASSOC);

            if ($driverData) {
                $decryptedPhone = $encryptionHelper->decryptData($driverData['phone']);
                $firstName = $encryptionHelper->decryptData($driverData['first_name']);

                $supportPhones = ['0952475740', '0952475742'];
                $randomIndex = array_rand($supportPhones);
                $phoneToUse = $supportPhones[$randomIndex];
                $randomNumber = rand(1000, 999999);

                $messageBody = "أهلاً وسهلاً كابتن $firstName 👋\n"
                             . "تم تفعيل حسابك على تطبيق *سيرو*.\n"
                             . "يمكنك الآن تسجيل الدخول والبدء بالعمل مباشرة.\n"
                             . "للمساعدة تواصل معنا على الرقم: $phoneToUse\n"
                             . "نتمنى لك عمل موفق 🚖\n\n"
                             . "معرف الرسالة: $randomNumber";

                sendWhatsAppFromServer($decryptedPhone, $messageBody);
            }
        }

        jsonSuccess(null, "Driver updated successfully.");
    } else {
        jsonError("No records updated or driver not found.");
    }
} catch (PDOException $e) {
    error_log("[updateDriverFromAdmin.php] " . $e->getMessage());
    jsonError("An internal error occurred. Please try again later.");
}
?>