<?php
ob_start();

header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Allow-Headers: Content-Type");

include_once 'db_connect.php'; 

$data = json_decode(file_get_contents("php://input"), true);

if (isset($data['doctor_id']) && isset($data['patient_id'])) {
    
    // هذه البيانات قادمة من تطبيق Flutter (المريض)
    $doctor_id    = $data['doctor_id']; // الـ id الفريد للطبيب في جدول doctors
    $patient_id   = $data['patient_id'];
    $doctor_name  = $data['doctor_name'];
    $patient_name = $data['patient_name'];
    $date         = $data['appointment_date'];
    $notes        = $data['notes'];
    $status       = "pending";

    try {
        $conn->exec("set names utf8mb4");

        // 1. حفظ البيانات في جدول المواعيد (video_bookings)
        $sql_insert = "INSERT INTO video_bookings (
                            patient_id, patient_name, doctor_id, doctor_name, 
                            appointment_date, notes, status
                        ) VALUES (
                            :p_id, :p_name, :d_id, :d_name, :app_date, :notes, :status
                        )";
        
        $stmt_insert = $conn->prepare($sql_insert);
        $success = $stmt_insert->execute([
            ':p_id'      => $patient_id,
            ':p_name'    => $patient_name,
            ':d_id'      => $doctor_id,
            ':d_name'    => $doctor_name,
            ':app_date'  => $date,
            ':notes'     => $notes,
            ':status'    => $status
        ]);

        if ($success) {
            // 2. جلب الـ onesignal_id الخاص بالطبيب من جدول الأطباء (doctors)
            // نستخدم الـ id الفريد للطبيب (العمود رقم 1 في هيكلية جدولك)
            $stmt_doc = $conn->prepare("SELECT onesignal_id FROM doctors WHERE id = ?");
            $stmt_doc->execute([$doctor_id]);
            $doctor_row = $stmt_doc->fetch(PDO::FETCH_ASSOC);

            // 3. إذا وجدنا معرف الجهاز (onesignal_id)، نرسل الإشعار فوراً
            if ($doctor_row && !empty($doctor_row['onesignal_id'])) {
                sendPush(
                    $doctor_row['onesignal_id'], 
                    "لديك طلب استشارة فيديو جديد من المريض: $patient_name"
                );
            }

            ob_clean(); 
            echo json_encode(["status" => "success", "message" => "تم الحجز وإشعار الطبيب بنجاح"]);
        } else {
            ob_clean();
            echo json_encode(["status" => "error", "message" => "فشل تنفيذ عملية الحفظ"]);
        }

    } catch (PDOException $e) {
        ob_clean();
        echo json_encode(["status" => "error", "message" => "PDO Error: " . $e->getMessage()]);
    }

} else {
    ob_clean();
    echo json_encode(["status" => "error", "message" => "بيانات ناقصة"]);
}

// --- دالة إرسال الإشعار لـ OneSignal ---
function sendPush($player_id, $msg) {
    $fields = array(
        'app_id' => "cc869bd2-34c2-4fce-8fec-f97cf39d0666", 
        'include_player_ids' => array($player_id),
        'data' => array("type" => "video_booking"),
        'contents' => array("ar" => $msg, "en" => $msg),
        'headings' => array("ar" => "حجز فيديو جديد", "en" => "New Video Booking")
    );

    $fields = json_encode($fields);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/json; charset=utf-8',
        'Authorization: Basic os_v2_app_zsdjxuruyjh45d7m7f6phhigm2pizwechlqusme5qilj37hbnlngj7t5ygbygwo6bhiqmywxgc7jrpm4uwpcdkhc6hplgmmvkjiaauq'
    ));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}
?>