<?php
$isAdmin = isset($user) && ($user->is_owner || $user->is_admin);

if($isAdmin && ($text === '/reports' || $text === '🗣️ گزارشات کاربران' || $data === 'admin_reports')) {
    $report = $pdo->query("SELECT * FROM reports ORDER BY created_at ASC LIMIT 1")->fetch();

if(!$report) {
        isset($data)
            ? answerCallbackQuery($query_id, '✅ گزارشی برای بررسی وجود ندارد.', true)
            : sendMessage($chat_id, '✅ گزارشی برای بررسی وجود ندارد.');
        return;
}

    $stmt = $pdo->prepare("SELECT * FROM orders WHERE order_id = ? LIMIT 1");
    $stmt->execute([$report->order_id]);
    $order = $stmt->fetch();
    $inviteLink = $order->invite_link ?? '';

if($inviteLink && !str_starts_with($inviteLink, 'http')) {
         $inviteLink = "https://$inviteLink";
}

    $channelInfo = $order
        ? "{$order->channel_name}\n$inviteLink"
        : 'نامشخص';
    $msg =
        "🚨 *گزارش تخلف جدید*\n\n" .
        "🆔 *شناسه:* {$report->id}\n" .
        "👤 *گزارش‌دهنده:* [{$report->user_id}](https://ble.ir/{$report->user_id})\n" .
        "📦 *سفارش:* {$report->order_id}\n" .
        "📢 *کانال:*\n{$channelInfo}\n\n" .
        "📝 *دلیل گزارش:*\n{$report->report_reason}\n\n" .
        "🕒 *تاریخ:* " . jdate('H:i Y/m/d', strtotime($report->created_at));
    $keyboard = json_encode([
        'inline_keyboard' => [
            [
                ['text' => '✅ تایید گزارش', 'callback_data' => "confirm_report:{$report->id}"],
                ['text' => '❌ رد گزارش', 'callback_data' => "reject_report:{$report->id}"]
            ],
            [
                ['text' => '🔄 بعدی', 'callback_data' => 'admin_reports']
            ]
        ]
    ]);
    isset($data)
        ? editMessage($chat_id, $message_id, $msg, $keyboard)
        : sendMessage($chat_id, $msg, $keyboard);
    die;
}


if($isAdmin && str_starts_with($data, 'confirm_report:')) {
    $reportId = (int) explode(':', $data)[1];
    $stmt = $pdo->prepare("SELECT * FROM reports WHERE id = ? LIMIT 1");
    $stmt->execute([$reportId]);
    $report = $stmt->fetch();

if(!$report) {
        answerCallbackQuery($query_id, '❌ گزارش یافت نشد.', true);
        die;
}

    $stmt = $pdo->prepare("SELECT * FROM orders WHERE order_id = ? LIMIT 1");
    $stmt->execute([$report->order_id]);
    $order = $stmt->fetch();

if(!$order) {
        answerCallbackQuery($query_id, '❌ سفارش یافت نشد.', true);
        die;
}

    $stmt = $pdo->prepare("SELECT * FROM channels WHERE channel_name = ? OR invite_link = ? LIMIT 1");
    $stmt->execute([$order->channel_name, $order->invite_link]);
    $channel = $stmt->fetch();

if(!$channel) {
        answerCallbackQuery($query_id, '❌ کانال یافت نشد.', true);
        die;
}

    $pdo->prepare("UPDATE channels SET warnings_count = warnings_count + 1 WHERE id = ?")
        ->execute([$channel->id]);
    $pdo->prepare("UPDATE users SET coins = coins + 5 WHERE user_id = ?")
        ->execute([$report->user_id]);
    sendMessage(
        $report->user_id,
        "✅ *گزارش شما تایید شد*\n\n🎁 به حساب شما *۵ سکه* اضافه شد.\n🙏 با تشکر از همکاری شما"
    );
    sendMessage(
        $order->user_id,
        "⚠️ *اخطار ثبت شد*\n\n" .
        "📦 *سفارش:* {$order->order_id}\n" .
        "📝 *دلیل گزارش:*\n{$report->report_reason}\n\n" .
        "در صورت تکرار، محدودیت برای حساب شما اعمال خواهد شد."
    );
    $pdo->prepare("DELETE FROM reports WHERE id = ?")
        ->execute([$reportId]);
    answerCallbackQuery($query_id, '✅ گزارش تایید و پردازش شد.', true);
    editMessage(
        $chat_id,
        $message_id,
        "✅ *گزارش #{$reportId} تایید شد.*",
        json_encode([
            'inline_keyboard' => [
                [['text' => '🔄 گزارش بعدی', 'callback_data' => 'admin_reports']]
            ]
        ])
    );
    die;
}


if($isAdmin && str_starts_with($data, 'reject_report:')) {
    $reportId = (int) explode(':', $data)[1];
    $stmt = $pdo->prepare("SELECT * FROM reports WHERE id = ? LIMIT 1");
    $stmt->execute([$reportId]);
    $report = $stmt->fetch();

if($report) {
        sendMessage(
            $report->user_id,
            "❌ *گزارش شما تایید نشد*\n\n" .
            "📦 *سفارش:* {$report->order_id}\n" .
            "📝 *متن گزارش شما:*\n{$report->report_reason}\n\n" .
            "پس از بررسی، این گزارش معتبر تشخیص داده نشد."
        );
}

    $pdo->prepare("DELETE FROM reports WHERE id = ?")
        ->execute([$reportId]);
    answerCallbackQuery($query_id, '🗑 گزارش رد شد.', true);
    editMessage(
        $chat_id,
        $message_id,
        "🗑 *گزارش #{$reportId} رد شد.*",
        json_encode([
            'inline_keyboard' => [
                [['text' => '🔄 گزارش بعدی', 'callback_data' => 'admin_reports']]
            ]
        ])
    );
    die;
}

