<?php
require_once '../includes/config.php';
require_once '../includes/db.php';
require_once '../includes/functions.php';

header('Content-Type: application/json');

// Check if user is logged in
if (!isLoggedIn()) {
    echo json_encode(['success' => false, 'message' => 'يجب تسجيل الدخول لتحديث التعليق.']);
    exit;
}

// Check if request method is POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['success' => false, 'message' => 'طلب غير صالح.']);
    exit;
}

// Get POST data
$comment_id = isset($_POST['comment_id']) ? intval($_POST['comment_id']) : 0;
$comment = isset($_POST['comment']) ? trim($_POST['comment']) : '';

// Validate input
if ($comment_id <= 0) {
    echo json_encode(['success' => false, 'message' => 'معرف التعليق غير صالح.']);
    exit;
}

if (empty($comment)) {
    echo json_encode(['success' => false, 'message' => 'التعليق لا يمكن أن يكون فارغاً.']);
    exit;
}

// Use mb_strlen for proper UTF-8 character counting
if (mb_strlen($comment, 'UTF-8') > 500) {
    echo json_encode(['success' => false, 'message' => 'التعليق طويل جداً. الحد الأقصى هو 500 حرف.']);
    exit;
}

// Get the comment to verify ownership
$existing_comment = getCommentById($pdo, $comment_id);

if (!$existing_comment) {
    echo json_encode(['success' => false, 'message' => 'التعليق غير موجود.']);
    exit;
}

// Check if the comment belongs to the current user
if ($existing_comment['user_id'] != $_SESSION['user_id']) {
    echo json_encode(['success' => false, 'message' => 'ليس لديك صلاحية لتحديث هذا التعليق.']);
    exit;
}

// Update comment in database
if (updateProductComment($pdo, $comment_id, $_SESSION['user_id'], $comment)) {
    // Get the updated comment with user info
    $stmt = $pdo->prepare("
        SELECT pc.*, u.username 
        FROM product_comments pc 
        JOIN users u ON pc.user_id = u.id 
        WHERE pc.id = ?
    ");
    $stmt->execute([$comment_id]);
    $updated_comment = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($updated_comment) {
        $updated_comment['formatted_time'] = formatTimeAgo($updated_comment['updated_at']);
        echo json_encode([
            'success' => true, 
            'message' => 'تم تحديث التعليق بنجاح.',
            'comment' => $updated_comment
        ]);
    } else {
        echo json_encode(['success' => true, 'message' => 'تم تحديث التعليق بنجاح.']);
    }
} else {
    echo json_encode(['success' => false, 'message' => 'فشل في تحديث التعليق. يرجى المحاولة مرة أخرى.']);
}
?>