<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type');

require_once __DIR__ . '/../../database.php';

try {
    $database = new Database();
    $db = $database->getConnection();
    
    if (!$db) {
        throw new Exception("فشل الاتصال بقاعدة البيانات");
    }
    
    $input = json_decode(file_get_contents('php://input'), true);
    $user_id = $input['user_id'] ?? 1; // من الجلسة في النظام الفعلي
    
    $first_name = $input['first_name'] ?? '';
    $last_name = $input['last_name'] ?? '';
    $email = $input['email'] ?? '';
    $phone = $input['phone'] ?? '';
    $city = $input['city'] ?? '';
    
    if (!$first_name || !$last_name || !$email) {
        throw new Exception("البيانات الأساسية مطلوبة");
    }
    
    $db->beginTransaction();
    
    // تحديث بيانات المستخدم
    $userQuery = "UPDATE users 
                  SET first_name = :first_name,
                      last_name = :last_name,
                      email = :email,
                      phone = :phone
                  WHERE id = :user_id";
    $userStmt = $db->prepare($userQuery);
    $userStmt->execute([
        'user_id' => $user_id,
        'first_name' => $first_name,
        'last_name' => $last_name,
        'email' => $email,
        'phone' => $phone
    ]);
    
    // تحديث أو إضافة بيانات المشرف
    $supervisorQuery = "INSERT INTO supervisors (user_id, city) 
                        VALUES (:user_id, :city)
                        ON DUPLICATE KEY UPDATE city = :city";
    $supervisorStmt = $db->prepare($supervisorQuery);
    $supervisorStmt->execute([
        'user_id' => $user_id,
        'city' => $city
    ]);
    
    // تسجيل النشاط
    $logQuery = "INSERT INTO activity_logs (user_id, action, details, created_at) 
                 VALUES (:user_id, 'update_profile', 'تم تحديث الملف الشخصي', NOW())";
    $logStmt = $db->prepare($logQuery);
    $logStmt->execute(['user_id' => $user_id]);
    
    $db->commit();
    
    echo json_encode([
        'success' => true,
        'message' => 'تم تحديث الملف الشخصي بنجاح'
    ]);
    
} catch (Exception $e) {
    if ($db->inTransaction()) {
        $db->rollBack();
    }
    
    echo json_encode([
        'success' => false,
        'message' => $e->getMessage()
    ]);
}
?>