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

require 'db_connect.php';

// ✅ تأكد من أن الاتصال بقاعدة البيانات يستخدم UTF-8
$conn->set_charset("utf8mb4");

// استقبال البيانات من الطلب
$data = json_decode(file_get_contents("php://input"), true);

if (!$data) {
    error_log("لم يتم استلام أي بيانات");
    echo json_encode(["status" => "error", "message" => "❌ لم يتم استلام أي بيانات"]);
    $conn->close(); // إغلاق الاتصال
    exit;
}

error_log("بيانات المستقبلة: " . print_r($data, true)); // طباعة البيانات في سجلات الخادم

// التحقق من وجود الحقول المطلوبة
$required_fields = ["device_id", "device_name", "latitude", "longitude", "status"];
foreach ($required_fields as $field) {
    if (!isset($data[$field])) {
        error_log("بيانات ناقصة: الحقل المطلوب '$field' غير موجود");
        echo json_encode(["status" => "error", "message" => "❌ بيانات ناقصة: الحقل المطلوب '$field' غير موجود"]);
        $conn->close(); // إغلاق الاتصال
        exit;
    }
}

// ✅ تأكد من تحويل البيانات إلى UTF-8 قبل الإدخال
$device_id = $conn->real_escape_string($data["device_id"]);
$device_name = $conn->real_escape_string($data["device_name"]);
$latitude = $conn->real_escape_string($data["latitude"]);
$longitude = $conn->real_escape_string($data["longitude"]);
$status = $conn->real_escape_string($data["status"]); // حالة المستخدم (وقوف أو حركة)

// 🕒 توليد التوقيت بالتنسيق العراقي (12 ساعة مع AM/PM)
date_default_timezone_set("Asia/Baghdad");
$timestamp = date("Y-m-d h:i:s A");

// تحويل الجدول لضمان دعم التنسيق الجديد
$sql = "ALTER TABLE locations MODIFY timestamp VARCHAR(25)"; // زيادة طول الحقل لاستيعاب AM/PM
if (!$conn->query($sql)) {
    error_log("خطأ في تعديل الجدول: " . $conn->error);
    echo json_encode(["status" => "error", "message" => "⚠️ خطأ في تعديل الجدول: " . $conn->error]);
    $conn->close(); // إغلاق الاتصال
    exit;
}

// إدخال البيانات في قاعدة البيانات
$sql = "INSERT INTO locations (device_id, device_name, latitude, longitude, timestamp, status) 
        VALUES ('$device_id', '$device_name', '$latitude', '$longitude', '$timestamp', '$status')";

if ($conn->query($sql) === TRUE) {
    echo json_encode(["status" => "success", "message" => "✅ تم حفظ الموقع بنجاح"]);
} else {
    error_log("خطأ في قاعدة البيانات: " . $conn->error);
    echo json_encode(["status" => "error", "message" => "⚠️ خطأ في قاعدة البيانات: " . $conn->error]);
}

$conn->close(); // إغلاق الاتصال
?>