<?php
// هذا الملف يجب أن يستخدم ملف الاتصال الذي يتحقق من الهوية
include "../../../jwtconnect.php";
// يجب استدعاء دالة التحقق هنا لضمان أن الطلب قادم من تطبيقك فقط


/*
|--------------------------------------------------------------------------
| ملف إتمام الدفع النهائي
|--------------------------------------------------------------------------
|
| هذا الملف مسؤول عن:
| 1. استقبال طلب من تطبيق فلاتر بعد عودة المستخدم.
| 2. التحقق من وجود دفعة ناجحة حديثة للمستخدم في قاعدة البيانات.
| 3. حساب المكافآت.
| 4. استدعاء واجهات API داخلية لإضافة الرصيد إلى المحافظ.
|
*/

// --- استقبال البيانات من تطبيق فلاتر ---
$userId = filterRequest("userId"); // أو driverId
$paymentMethod = filterRequest("paymentMethod") ?? 'ecash';

if (empty($userId)) {
    printFailure("معرّف المستخدم غير صالح.");
    exit;
}

try {
    // خطوة 1: البحث عن آخر دفعة ناجحة للمستخدم (تم تحديثها بواسطة الـ Webhook)
    $stmt = $con->prepare(
        "SELECT * FROM `paymentsLogSyria` 
         WHERE user_id = :user_id 
         AND status = 1 
         AND updated_at >= DATE_SUB(NOW(), INTERVAL 5 MINUTE)
         ORDER BY updated_at DESC 
         LIMIT 1"
    );
    $stmt->bindParam(':user_id', $userId, PDO::PARAM_STR);
    $stmt->execute();
    $payment = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$payment) {
        printFailure("لم يتم العثور على دفعة ناجحة حديثة.");
        exit;
    }

    // خطوة 2: الحصول على المبلغ (لا يحتاج للقسمة على 100)
    $amount = $payment['amount'];

    // خطوة 3: حساب المكافأة
    $finalAmount = calculateBonus($amount); // استخدم دالة حساب المكافآت الخاصة بك

    $passengerId = $userId; // نفترض أن معرّف المستخدم هو نفسه معرّف الراكب

    // --- هنا تضع نفس منطق إضافة الرصيد الذي كان في ملف payment_verify.php القديم ---
    // (مثال)
    // $token = generatePaymentToken($passengerId, $finalAmount);
    // addToPassengerWallet($passengerId, $finalAmount, $token);
    // ... إلخ

    // --- النجاح النهائي ---
    printSuccess("تمت معالجة الدفع وتحديث الرصيد بنجاح.");

} catch (PDOException $e) {
    error_log("Finalize Payment Error: " . $e->getMessage());
    printFailure("حدث خطأ في قاعدة البيانات أثناء إتمام العملية.");
}

// --- يمكنك وضع دوال المساعدة هنا (calculateBonus, etc.) ---
function calculateBonus($amount) {
    $result = $amount;  
    if ($amount == 200) $result = 215;
    else if ($amount == 400) $result = 450;
  	else if ($amount == 100) $result = 100.0;
    else if ($amount == 1000) $result = 1140;
    return $result;
}
?>
