?  PNG ?%k25u25%fgd5n!?  PNG ?%k25u25%fgd5n!<?php
require_once 'config.php';

// الحصول على رسائل الغرفة
function getMessages($room, $lastId = 0) {
    $db = getDB();
    $stmt = $db->prepare("
        SELECT m.*, u.username, u.fullname 
        FROM messages m 
        JOIN users u ON m.user_id = u.id 
        WHERE m.room = ? AND m.id > ? 
        ORDER BY m.created_at ASC 
        LIMIT 50
    ");
    $stmt->execute([$room, $lastId]);
    return $stmt->fetchAll();
}

// إرسال رسالة
function sendMessage($userId, $room, $message) {
    $db = getDB();
    $message = sanitize($message);

    if (empty($message)) {
        return false;
    }

    $stmt = $db->prepare("
        INSERT INTO messages (user_id, room, message, created_at) 
        VALUES (?, ?, ?, NOW())
    ");
    $stmt->execute([$userId, $room, $message]);

    $messageId = $db->lastInsertId();

    // تحديث وقت آخر نشاط
    $db->prepare("UPDATE users SET last_activity = NOW() WHERE id = ?")
       ->execute([$userId]);

    return $messageId;
}

// الحصول على المستخدمين المتصلين
function getOnlineUsers() {
    $db = getDB();
    $stmt = $db->prepare("
        SELECT id, username, fullname 
        FROM users 
        WHERE last_activity > DATE_SUB(NOW(), INTERVAL 5 MINUTE)
        ORDER BY username ASC
    ");
    $stmt->execute();
    return $stmt->fetchAll();
}

// تسجيل مستخدم جديد
function registerUser($fullname, $username, $email, $password) {
    $db = getDB();

    // التحقق من عدم وجود المستخدم
    $stmt = $db->prepare("SELECT id FROM users WHERE username = ? OR email = ?");
    $stmt->execute([$username, $email]);
    if ($stmt->fetch()) {
        return ['success' => false, 'error' => 'اسم المستخدم أو البريد مستخدم بالفعل'];
    }

    $hash = password_hash($password, PASSWORD_BCRYPT);

    $stmt = $db->prepare("
        INSERT INTO users (fullname, username, email, password, created_at, last_activity) 
        VALUES (?, ?, ?, ?, NOW(), NOW())
    ");
    $stmt->execute([$fullname, $username, $email, $hash]);

    return ['success' => true, 'user_id' => $db->lastInsertId()];
}

// تسجيل الدخول
function loginUser($username, $password) {
    $db = getDB();

    $stmt = $db->prepare("SELECT * FROM users WHERE username = ?");
    $stmt->execute([$username]);
    $user = $stmt->fetch();

    if ($user && password_verify($password, $user['password'])) {
        // تحديث وقت النشاط
        $db->prepare("UPDATE users SET last_activity = NOW() WHERE id = ?")
           ->execute([$user['id']]);

        return ['success' => true, 'user' => $user];
    }

    return ['success' => false, 'error' => 'اسم المستخدم أو كلمة المرور غير صحيحة'];
}

// الحصول على معلومات المستخدم
function getUserById($id) {
    $db = getDB();
    $stmt = $db->prepare("SELECT id, username, fullname, email, created_at FROM users WHERE id = ?");
    $stmt->execute([$id]);
    return $stmt->fetch();
}
