<?php
// فایل مجزای سیستم CRM برای مدیریت هشدارهای اتمام سرویس و عملیات تمدید/حذف کاربران
// طراحی شده برای استانداردهای Bot API 10.1+

/**
 * بررسی و ارسال هشدارهای تمدید به کاربر بر اساس زمان و حجم باقی‌مانده
 */
function checkAndSendCrmWarning($order, $expiryTime, $total, $totalLeft)
{
    global $connection, $buttonValues;

    $from_id = $order['userid'];
    $remark = $order['remark'];
    $uuid = $order['uuid'] ?? "0";
    $order_id = $order['id'];
    $notif = $order['notif'];

    // محاسبه زمان باقی‌مانده به روز
    $daysRemaining = round(($expiryTime - time()) / 86400);
    $leftgb = round(($totalLeft) / 1073741824, 2);
    $totalGbText = round(($total) / 1073741824, 2);

    $shouldWarn = false;
    $warnStage = 0;
    $msg = "";

    // بررسی انقضای زمانی (۵ روز، ۳ روز و ۱ روز)
    if ($expiryTime > time()) {
        if ($daysRemaining <= 5 && $daysRemaining > 3 && $notif != 5 && $notif != 3 && $notif != 1) {
            $shouldWarn = true;
            $warnStage = 5;
            $msg = "⚠️ کاربر عزیز؛\nاز اشتراک <b>{$remark}</b> شما <b>۵ روز</b> باقی مانده است.\nلطفاً برای تمدید از دکمه زیر اقدام نمایید. 🔌";
        } elseif ($daysRemaining <= 3 && $daysRemaining > 1 && $notif != 3 && $notif != 1) {
            $shouldWarn = true;
            $warnStage = 3;
            $msg = "⚠️ کاربر عزیز؛\nاز اشتراک <b>{$remark}</b> شما <b>۳ روز</b> باقی مانده است.\nلطفاً برای تمدید از دکمه زیر اقدام نمایید. 🔌";
        } elseif ($daysRemaining <= 1 && $daysRemaining > 0 && $notif != 1) {
            $shouldWarn = true;
            $warnStage = 1;
            $msg = "⚠️ کاربر عزیز؛\nاز اشتراک <b>{$remark}</b> شما تنها <b>۱ روز</b> باقی مانده است!\nلطفاً برای تمدید سریع‌تر از دکمه زیر اقدام نمایید. 🔌";
        }
    } else {
        // بررسی انقضای زمانی (گذشته از تاریخ انقضا و هنوز پیام داده نشده)
        if ($expiryTime > 0 && $notif != -10) {
            $shouldWarn = true;
            $warnStage = -10;
            $msg = "❌ <b>اشتراک شما منقضی شده است!</b>\n\n👤 کاربر گرامی؛ اشتراک <b>{$remark}</b> شما به پایان رسیده است.\nجهت جلوگیری از حذف قطعی کانفیگ، لطفاً هر چه سریع‌تر نسبت به تمدید آن از طریق دکمه زیر اقدام نمایید. 🔌";
        }
    }

    // بررسی هشدار حجم باقی‌مانده (مصرف ۸۵٪ از حجم کل یعنی باقی‌مانده کمتر یا برابر ۱۵٪)
    if (!$shouldWarn && $total > 0 && ($totalLeft / $total) <= 0.15 && $notif == 0) {
        $shouldWarn = true;
        $warnStage = -2; // کد شناسایی هشدار حجمی
        $percentUsed = round((($total - $totalLeft) / $total) * 100);
        $msg = "⚠️ <b>هشدار مصرف ترافیک سرویس</b> ⚠️\n\n" .
               "👤 کاربر گرامی؛ <b>{$percentUsed}٪ از حجم سرویس شما به اتمام رسیده است.</b>\n" .
               "📊 حجم باقی‌مانده: <b>{$leftgb} گیگابایت</b> از <b>{$totalGbText} گیگابایت</b>\n" .
               "🏷 نام سرویس: <code>{$remark}</code>\n\n" .
               "لطفاً جهت بررسی وضعیت یا تمدید سرویس روی دکمه زیر کلیک نمایید.";
    }

    if ($shouldWarn) {
        // تشخیص گیفت بر اساس نام یا ریمارک کانفیگ
        $isGift = (stripos((string)$remark, 'gift') !== false || stripos((string)($order['protocol'] ?? ''), 'gift') !== false);
        
        $buttons = [];
        if ($warnStage == -2) {
            // هشدار حجمی: دکمه دیدن کانفیگ‌ها و دکمه تمدید/خرید
            $buttons[] = [
                'text' => "📋 دیدن کانفیگ‌ها",
                'callback_data' => "mySubscriptions",
                'style' => 'primary'
            ];
            if ($isGift) {
                $buttons[] = [
                    'text' => "🛒 خرید سرویس جدید",
                    'callback_data' => "buySubscription",
                    'style' => 'success'
                ];
            } else {
                $buttons[] = [
                    'text' => "🟢 تمدید سریع",
                    'callback_data' => "renewAccount" . $order_id,
                    'style' => 'success'
                ];
            }
        } else {
            if ($isGift) {
                // برای گیفت‌ها دکمه خرید اشتراک جدید قرار داده می‌شود
                $buttons[] = [
                    'text' => "🛒 خرید اشتراک جدید", 
                    'callback_data' => "buySubscription", 
                    'style' => 'success', 
                    'icon_custom_emoji_id' => '5208880351690112495'
                ];
            } else {
                // برای پکیج‌های معمولی دکمه تمدید اشتراک قرار داده می‌شود
                $buttons[] = [
                    'text' => "🟢 تمدید اشتراک", 
                    'callback_data' => "renewAccount" . $order_id, 
                    'style' => 'success', 
                    'icon_custom_emoji_id' => '5208880351690112495'
                ];
            }
            
            $buttons[] = [
                'text' => "🗑 حذف کانفیگ", 
                'callback_data' => "deleteMyConfig" . $order_id, 
                'style' => 'danger', 
                'icon_custom_emoji_id' => '5215680783863261658'
            ];
        }

        // ایجاد دکمه‌های شیشه‌ای
        $keyboard = json_encode([
            'inline_keyboard' => [
                $buttons,
                [
                    [
                        'text' => "🏠 منوی اصلی", 
                        'callback_data' => "mainMenu"
                    ]
                ]
            ]
        ]);

        // ارسال پیام هشدار با فرمت HTML
        sendMessage($msg, $keyboard, "HTML", $from_id);

        // بروزرسانی وضعیت نوتیفیکیشن در دیتابیس
        $stmt = $connection->prepare("UPDATE `orders_list` SET `notif` = ? WHERE `id` = ?");
        $stmt->bind_param("ii", $warnStage, $order_id);
        $stmt->execute();
        $stmt->close();
    }
}
