<?php
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
include_once 'db_connect.php';

// وظيفة لتصغير حجم الصورة إلى أقل من 200 كيلوبايت
function compressImage($source, $destination, $quality) {
    $info = getimagesize($source);
    if ($info['mime'] == 'image/jpeg') $image = imagecreatefromjpeg($source);
    elseif ($info['mime'] == 'image/gif') $image = imagecreatefromgif($source);
    elseif ($info['mime'] == 'image/png') $image = imagecreatefrompng($source);
    else return false;
    
    imagejpeg($image, $destination, $quality);
    
    while(filesize($destination) > 200 * 1024 && $quality > 10) {
        $quality -= 5;
        imagejpeg($image, $destination, $quality);
    }
    return true;
}

$user_id = isset($_POST['user_id']) ? $_POST['user_id'] : null;
$patient_id = isset($_POST['patient_id']) ? $_POST['patient_id'] : null;
$report_title = isset($_POST['report_title']) ? $_POST['report_title'] : 'تقرير طبي جديد';

if ($user_id && $patient_id && isset($_FILES['report_file'])) {
    try {
        $target_dir = "uploads/reports/";
        if (!file_exists($target_dir)) mkdir($target_dir, 0777, true);
        
        $file_ext = pathinfo($_FILES["report_file"]["name"], PATHINFO_EXTENSION);
        $file_name = "report_" . $patient_id . "_" . time() . "." . $file_ext;
        $target_file = $target_dir . $file_name;
        
        $upload_success = false;
        if (in_array(strtolower($file_ext), ['jpg', 'jpeg', 'png', 'gif'])) {
            $upload_success = compressImage($_FILES["report_file"]["tmp_name"], $target_file, 80);
        } else {
            // للملفات غير الصور (مثل PDF) يتم الرفع مباشرة
            $upload_success = move_uploaded_file($_FILES["report_file"]["tmp_name"], $target_file);
        }

        if ($upload_success) {
            // حفظ الرابط في جدول الروابط (medical_reports_links)
            $sql = "INSERT INTO medical_reports_links (patient_id, user_id, report_title, report_path, created_at) 
                    VALUES (?, ?, ?, ?, NOW())";
            $stmt = $conn->prepare($sql);
            $stmt->execute([$patient_id, $user_id, $report_title, $target_file]);
            
            echo json_encode(["status" => "success", "message" => "تم رفع التقرير بنجاح", "path" => $target_file]);
        } else {
            echo json_encode(["status" => "error", "message" => "فشل في معالجة الملف"]);
        }

    } catch (PDOException $e) {
        echo json_encode(["status" => "error", "message" => "خطأ في قاعدة البيانات: " . $e->getMessage()]);
    }
} else {
    echo json_encode(["status" => "error", "message" => "بيانات ناقصة أو لم يتم اختيار ملف"]);
}
?>