<?php

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

$id = filterRequest("id");
// يمكن استقبال سبب الحظر من التطبيق أو وضعه كقيمة افتراضية
$reason = "Driver requested deletion (deleteFromHimself)"; 

// تأكد أن المعرف رقم صحيح
if (!is_numeric($id)) {
    jsonError("Invalid ID");
    exit();
}

try {
    // 1. جلب رقم الهاتف الخاص بالسائق قبل التحديث
    // نحتاج الهاتف لإضافته في القائمة السوداء
    $stmtPhone = $con->prepare("SELECT phone FROM `driver` WHERE `id` = :id");
    $stmtPhone->bindParam(':id', $id, PDO::PARAM_INT);
    $stmtPhone->execute();
    $driverData = $stmtPhone->fetch(PDO::FETCH_ASSOC);

    // التحقق من وجود السائق
    if (!$driverData) {
        jsonError("Driver not found");
        exit();
    }

    $phone = $driverData['phone'];

    // 2. تحديث حالة السائق
    $sql = "UPDATE `driver` SET `status` = 'deleteFromHimself' WHERE `id` = :id";
    $stmt = $con->prepare($sql);
    $stmt->bindParam(':id', $id, PDO::PARAM_INT);
    $stmt->execute();

    if ($stmt->rowCount() > 0) {
        // 3. الإضافة إلى القائمة السوداء (blacklist_driver)
        // نستخدم NOW() لتسجيل الوقت الحالي تلقائياً
        // لا نمرر id العمود الأول لأنه غالباً Auto Increment في قاعدة البيانات
        $insertSql = "INSERT INTO `blacklist_driver` (`driver_id`, `phone`, `reason`, `created_at`) 
                      VALUES (:driver_id, :phone, :reason, NOW())";
        
        $insertStmt = $con->prepare($insertSql);
        $insertStmt->execute([
            ':driver_id' => $id,
            ':phone'     => $phone,
            ':reason'    => $reason
        ]);

        jsonSuccess(null, "Record marked as deleted and added to blacklist successfully");
    } else {
        jsonError("Failed to update record or no change made");
    }

} catch (PDOException $e) {
    // في حال حدوث خطأ في قاعدة البيانات (مثلاً تكرار الإضافة)
    jsonError("Database Error: " . $e->getMessage());
}
?>