<?php
if($text == '📢 ارسال همگانی' && ($user->is_owner || $user->is_admin)) {
    setStep($chat_id, 'admin:send_all_input');
    sendMessage($chat_id, 'لطفا پیامی که می‌خواهید ارسال همگانی کنید را ارسال کنید:', $admin_back_keyboard);
    die;
}


if($user->step == 'admin:send_all_input' && ($user->is_owner || $user->is_admin)) {
    $payload = $text ?? $message->caption ?? '';

if($payload === '') {
        sendMessage($chat_id, '⚠️ لطفاً متن پیام را ارسال کنید یا برای لغو به مدیریت برگردید.', $admin_back_keyboard);
        die;
}

    $stmtUsers = $pdo->prepare("SELECT DISTINCT `user_id` FROM `users` WHERE `is_blocked`=0 AND `user_id` > 0");
    $stmtUsers->execute();
    $users = $stmtUsers->fetchAll(PDO::FETCH_COLUMN);
    $count        = count($users);
    $totalMinutes = ceil($count / 100);

if($totalMinutes >= 60) {
        $hours   = floor($totalMinutes / 60);
        $mins    = $totalMinutes % 60;
        $timeStr = "{$hours} ساعت و {$mins} دقیقه";
} else {
        $timeStr = "{$totalMinutes} دقیقه";
}

    $finishTimestamp = time() + ($totalMinutes * 60);
    $finishTime      = jdate('H:i', $finishTimestamp);
    sendMessage($chat_id, "✅ پیام شما برای ارسال همگانی ثبت شد.\n📊 تعداد کاربران: $count نفر\n⏳ زمان تقریبی ارسال: $timeStr\n🏁 زمان پایان تقریبی: ساعت $finishTime", $admin_keyboard);
    setStep($chat_id, 'admin:home');
    $stmtIns = $pdo->prepare("INSERT INTO `send_all` (`user_id`,`text`) VALUES (?, ?)");

foreach($users as $uid) {
        $stmtIns->execute([$uid, $payload]);
}

    die;
}


if($text == '🔄 فروارد همگانی' && ($user->is_owner || $user->is_admin)) {
    setStep($chat_id, 'admin:forward_all_input');
    sendMessage($chat_id, 'لطفاً پیامی که می‌خواهید فروارد همگانی کنید را فوروارد نمایید:', $admin_back_keyboard);
    die;
}


if($user->step == 'admin:forward_all_input' && ($user->is_owner || $user->is_admin)) {

if(empty($message_id)) {
        sendMessage($chat_id, '⚠️ لطفاً یک پیام را به ربات فوروارد کنید.', $admin_back_keyboard);
        die;
}

    $stmtUsers = $pdo->prepare("SELECT DISTINCT `user_id` FROM `users` WHERE `is_blocked`=0 AND `user_id` > 0");
    $stmtUsers->execute();
    $users = $stmtUsers->fetchAll(PDO::FETCH_COLUMN);
    $count        = count($users);
    $totalMinutes = ceil($count / 100);

if($totalMinutes >= 60) {
        $hours   = floor($totalMinutes / 60);
        $mins    = $totalMinutes % 60;
        $timeStr = "{$hours} ساعت و {$mins} دقیقه";
} else {
        $timeStr = "{$totalMinutes} دقیقه";
}

    $finishTimestamp = time() + ($totalMinutes * 60);
    $finishTime      = jdate('H:i', $finishTimestamp);
    sendMessage($chat_id, "✅ پیام فروارد همگانی شما ثبت شد.\n📊 تعداد کاربران: $count نفر\n⏳ زمان تقریبی ارسال: $timeStr\n🏁 زمان پایان تقریبی: ساعت $finishTime", $admin_keyboard);
    setStep($chat_id, 'admin:home');
    $stmtIns = $pdo->prepare("INSERT INTO `forward_all` (`user_id`,`from_id`,`message_id`) VALUES (?,?,?)");

foreach($users as $uid) {
        $stmtIns->execute([$uid, $from_id, $message_id]);
}

    die;
}


if($text == '💰 سکه همگانی' && ($user->is_owner || $user->is_admin)) {
    setStep($from_id, 'admin:send_coin_amount');
    sendMessage($from_id, '🔢 لطفا تعداد سکه‌ای که می‌خواهید به تمام کاربران اهدا کنید را وارد کنید:', $admin_back_keyboard);
    die;
}


if($user->step == 'admin:send_coin_amount' && ($user->is_owner || $user->is_admin)) {
    $coinAmount = intval($text);

if($coinAmount <= 0) {
        sendMessage($from_id, '⚠️ تعداد سکه نامعتبر است. لطفاً عددی صحیح وارد کنید.', $backMain);
        die;
}

    $stmtUsers = $pdo->prepare("SELECT DISTINCT `user_id` FROM `users` WHERE `user_id` > 0");
    $stmtUsers->execute();
    $users = $stmtUsers->fetchAll(PDO::FETCH_COLUMN);
    $count = count($users);

if($count == 0) {
        sendMessage($from_id, '🚫 کاربری در سیستم یافت نشد.', $backMain);
        die;
}

    $pdo->beginTransaction();
    try {
        $stmtUpdate = $pdo->prepare("UPDATE `users` SET `coins` = `coins` + ? WHERE `user_id` > 0");
        $stmtUpdate->execute([$coinAmount]);
        $messageText = "🎁 *سکه همگانی عضوینگ*\nمدیریت تعداد *{$coinAmount}* سکه به تمام کاربران اهدا کرد.\n\n🌟 از این هدیه لذت ببرید!";
        $stmtIns     = $pdo->prepare("INSERT INTO `send_all` (`user_id`, `text`) VALUES (?, ?)");

foreach($users as $uid) {
            $stmtIns->execute([$uid, $messageText]);
}

        $pdo->commit();
        $totalMinutes = ceil($count / 100);

if($totalMinutes >= 60) {
            $hours   = floor($totalMinutes / 60);
            $mins    = $totalMinutes % 60;
            $timeStr = "{$hours} ساعت و {$mins} دقیقه";
} else {
            $timeStr = "{$totalMinutes} دقیقه";
}

        $finishTimestamp = time() + ($totalMinutes * 60);
        $finishTime      = jdate('H:i', $finishTimestamp);
        sendMessage($from_id, "✅ عملیات موفقیت‌آمیز بود.\n\n📊 تعداد کاربران: {$count} نفر\n🪙 تعداد سکه اهدا شده به هر نفر: {$coinAmount}\n⏳ زمان تقریبی ارسال اعلان: $timeStr\n🏁 زمان پایان تقریبی: ساعت $finishTime", $admin_back_keyboard);
        setStep($from_id, "main:Home");
} catch (Exception $e) {
        $pdo->rollBack();
        sendMessage($from_id, "❌ خطا در انجام عملیات. لطفاً مجددا تلاش کنید.", $admin_back_keyboard);
}

    die;
}


if($text == '💎 اشتراک همگانی' && ($user->is_owner || $user->is_admin)) {
    setStep($from_id, 'admin:send_sub_days');
    sendMessage($from_id, '🔢 لطفا تعداد روزهای اشتراک ویژه که می‌خواهید به تمام کاربران اهدا کنید را وارد کنید:', $admin_back_keyboard);
    die;
}


if($user->step == 'admin:send_sub_days' && ($user->is_owner || $user->is_admin)) {
    $days = intval($text);

if($days <= 0) {
        sendMessage($from_id, '⚠️ تعداد روز نامعتبر است. لطفاً عددی صحیح وارد کنید.', $admin_back_keyboard);
        die;
}

    $stmtUsers = $pdo->prepare("SELECT DISTINCT `user_id` FROM `users` WHERE `user_id` > 0");
    $stmtUsers->execute();
    $users = $stmtUsers->fetchAll(PDO::FETCH_COLUMN);
    $count = count($users);

if($count == 0) {
        sendMessage($from_id, '🚫 کاربری در سیستم یافت نشد.', $admin_back_keyboard);
        die;
}

    $pdo->beginTransaction();
    try {
        $stmtUpdate = $pdo->prepare("
            UPDATE `users` 
            SET `is_vip` = 1, 
                `vip_expire` = IF(`vip_expire` > NOW(), DATE_ADD(`vip_expire`, INTERVAL ? DAY), DATE_ADD(NOW(), INTERVAL ? DAY)) 
            WHERE `user_id` > 0
        ");
        $stmtUpdate->execute([$days, $days]);
        $messageText = "🎁 *اشتراک ویژه همگانی عضوینگ*\nمدیریت تعداد *{$days}* روز اشتراک ویژه به تمام کاربران اهدا کرد.\n\n🌟 از امکانات ویژه ربات لذت ببرید!";
        $stmtIns     = $pdo->prepare("INSERT INTO `send_all` (`user_id`, `text`) VALUES (?, ?)");

foreach($users as $uid) {
            $stmtIns->execute([$uid, $messageText]);
}

        $pdo->commit();
        $totalMinutes = ceil($count / 100);

if($totalMinutes >= 60) {
            $hours   = floor($totalMinutes / 60);
            $mins    = $totalMinutes % 60;
            $timeStr = "{$hours} ساعت و {$mins} دقیقه";
} else {
            $timeStr = "{$totalMinutes} دقیقه";
}

        $finishTimestamp = time() + ($totalMinutes * 60);
        $finishTime      = jdate('H:i', $finishTimestamp);
        sendMessage($from_id, "✅ عملیات موفقیت‌آمیز بود.\n\n📊 تعداد کاربران: {$count} نفر\n💎 اشتراک اهدا شده: {$days} روز\n⏳ زمان تقریبی ارسال اعلان: $timeStr\n🏁 زمان پایان تقریبی: ساعت $finishTime", $admin_back_keyboard);
        setStep($from_id, "admin:home");
} catch (Exception $e) {
        $pdo->rollBack();
        sendMessage($from_id, "❌ خطا در انجام عملیات: " . $e->getMessage(), $admin_back_keyboard);
}

    die;
}