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

// --- استقبال المتغيرات ---
$passenger_id = filterRequest("passenger_id");
$driver_id    = filterRequest("driver_id");
$ride_id      = filterRequest("ride_id");
$rating       = filterRequest("rating");
$comment      = filterRequest("comment");

try {
    // التحقق من صحة البيانات الأساسية قبل البدء
    if (empty($passenger_id) || empty($driver_id) || empty($ride_id)) {
        throw new Exception("Required fields are missing");
    }

    $sql = "INSERT INTO `ratingDriver`(
        `passenger_id`, `driver_id`, `ride_id`, `rating`, `comment`
    ) VALUES (
        :passenger_id, :driver_id, :ride_id, :rating, :comment
    )";

    $stmt = $con->prepare($sql);
    $stmt->bindParam(':passenger_id', $passenger_id);
    $stmt->bindParam(':driver_id', $driver_id);
    $stmt->bindParam(':ride_id', $ride_id);
    $stmt->bindParam(':rating', $rating);
    $stmt->bindParam(':comment', $comment);

    $stmt->execute();

    if ($stmt->rowCount() > 0) {
        jsonSuccess(null, "Rate inserted successfully");
    } else {
        // في حال لم يتم الإدخال ولكن لم يحدث خطأ فني (نادرة الحدوث في Insert)
        jsonError("Failed to save rating information");
    }

} catch (PDOException $e) {
    // --- هذا القسم خاص بأخطاء قاعدة البيانات ---
    
    // 1. تسجيل الخطأ في ملف نصي على السيرفر (للمطور فقط)
    // سيتم إنشاء ملف اسمه errors.log في نفس المجلد إذا لم يكن موجوداً
    $errorMsg = "[" . date("Y-m-d H:i:s") . "] DB Error: " . $e->getMessage() . " | RideID: $ride_id \n";
    file_put_contents("errors.log", $errorMsg, FILE_APPEND);

    // 2. إرجاع رسالة خطأ عامة للتطبيق
    jsonError("Database Error: Could not save rating");

} catch (Exception $e) {
    // --- هذا القسم خاص بالأخطاء العامة الأخرى ---
    
    $errorMsg = "[" . date("Y-m-d H:i:s") . "] General Error: " . $e->getMessage() . "\n";
    file_put_contents("errors.log", $errorMsg, FILE_APPEND);
    
    jsonError("Error: " . $e->getMessage());
}
?>