<?php
// require classes
require_once '../config.php';
require_once '../class/Base.php';
//===================== V A R I A B L E =============\\
$MahdyarEn = new Base($token);
$updateType = $MahdyarEn->getUpdateType();



// database Variable
$send = $db->query("SELECT * FROM `sendall` LIMIT 1")->fetch_assoc();
$alluser = $db->query("SELECT id from user")->num_rows;
//====================== S E N D ======================= \\
if ($send['step'] == 'send') {
    $users = mysqli_query($db, "SELECT id FROM user LIMIT 100 OFFSET {$send['user']}");
    while ($row = $users->fetch_assoc()) {
        if ($row['id'] != null) {
            $status = $MahdyarEn->copyMessage(['chat_id' => $row['id'], 'from_chat_id' => $send['chat'], 'message_id' =>  $send['text']])['ok'];   
            if (!$status) {
                $db->query("UPDATE sendall SET `block` = `block`+1");
            }
        }
    }
    $db->query("UPDATE sendall SET user = user+100");
    $_  = $alluser - $send['user'];
    $timedone = $_ < 100 ? 'یک دقیقه' : $MahdyarEn->getTime(round(($_ / 100)) * 60);
    $percentage = round(($send['user'] * 100) / $alluser);

    $MahdyarEn->EditMessagetext(['chat_id' => $send['ChatID'], 'message_id' => $send['MsgId'], 'text' => "〽️ پیام شما درحال ارسال به $alluser نفر می باشد.\n\n📊 وضعیت ارسال :\n👈 پیام شما تاکنون به {$send['user']} کاربر از $alluser کاربر ارسال شده است ($percentage درصد پیام شما را دریافت کرده اند)\n👈 درحال ارسال به $_ کاربر باقی مانده...\n⏳ زمان تقریبی پایان عملیات: $timedone\n\n⏱ این پیام هر یک دقیقه آپدیت میشود.‌", 'parse_mode' => "MarkDown", 'reply_markup' => json_encode(['inline_keyboard' => [[['text' => "❌ لغو ارسال", 'callback_data' => "cancelSending"]],]])]);

    if ($send['user'] + 100 >= $alluser) {
        $_  = $alluser - $send['user'];
        $sendcount = $alluser - $send['block'];
        $MahdyarEn->EditMessagetext(['chat_id' => $send['ChatID'], 'message_id' => $send['MsgId'], 'text' => "\n✅ پیام شما به تمام کابران ارسال شد، جزئیات بیشتر در پیام بعدی قابل دسترس می باشد.", 'parse_mode' => "MarkDown", 'reply_markup' => json_encode(['inline_keyboard' => [[['text' => "✅ ارسال همگانی به پایان رسید", 'callback_data' => "n"]],]])]);
        $MahdyarEn->Sendmessage(['chat_id' => $send['ChatID'], 'text' => "📍 پیام برای همه کابران فعال ارسال شد\n\n\n❕پیام شما به $sendcount کاربر با موفقیت ارسال شد!\n\n❗️ به {$send['block']} کاربر به علت مسدود کردن ربات شما، ارسال نشد،\n‌", 'reply_to_message_id' => $send['MsgId']]);
        $db->query("UPDATE sendall SET step = '' , `text` = '' , user = '0', `block` = '0' , chat = '', `type` = '', MsgId = '' , ChatID = ''");
    }
}
//====================== F O R W A R D  ======================= \\
if ($send['step'] == 'forward') {
    $users = mysqli_query($db, "SELECT id FROM user LIMIT 100 OFFSET {$send['user']}");
    while ($row = $users->fetch_assoc()) {
        if ($row['id'] != null) {
            $status = $MahdyarEn->forwardMessage(['chat_id' => $row['id'], 'from_chat_id' => $send['chat'], 'message_id' => $send['text']])['ok'];
            if (!$status) {
                $db->query("UPDATE sendall SET `block` = `block`+1");
            }
        }
    }
    $_  = $alluser - $send['user'];

    $timedone = $_ < 100 ? 'یک دقیقه' : $MahdyarEn->getTime(round(($_ / 100)) * 60);
    $percentage = round(($send['user'] * 100) / $alluser);

    $MahdyarEn->EditMessagetext(['chat_id' => $send['ChatID'], 'message_id' => $send['MsgId'], 'text' => "〽️ پیام شما درحال ارسال به $alluser نفر می باشد.\n\n📊 وضعیت ارسال :\n👈 پیام شما تاکنون به {$send['user']} کاربر از $alluser کاربر ارسال شده است ($percentage درصد پیام شما را دریافت کرده اند)\n👈 درحال ارسال به $_ کاربر باقی مانده...\n⏳ زمان تقریبی پایان عملیات: $timedone\n\n⏱ این پیام هر یک دقیقه آپدیت میشود.‌", 'parse_mode' => "MarkDown", 'reply_markup' => json_encode(['inline_keyboard' => [[['text' => "❌ لغو ارسال", 'callback_data' => "cancelSending"]],]])]);

    $db->query("UPDATE sendall SET user = user+100");
    if ($send['user'] + 100 >= $alluser) {
        $_  = $alluser - $send['user'];
        $sendcount = $alluser - $send['block'];
        $MahdyarEn->EditMessagetext(['chat_id' => $send['ChatID'], 'message_id' => $send['MsgId'], 'text' => "\n✅ پیام شما به تمام کابران فوروارد شد، جزئیات بیشتر در پیام بعدی قابل دسترس می باشد.", 'parse_mode' => "MarkDown", 'reply_markup' => json_encode(['inline_keyboard' => [[['text' => "✅ ارسال همگانی به پایان رسید", 'callback_data' => "n"]],]])]);
        $MahdyarEn->Sendmessage(['chat_id' => $send['ChatID'], 'text' => "📍 پیام برای همه کابران فعال فوروارد شد\n\n\n❕پیام شما به $sendcount کاربر با موفقیت ارسال شد!\n\n❗️ به {$send['block']} کاربر به علت مسدود کردن ربات شما، ارسال نشد،\n‌", 'reply_to_message_id' => $send['MsgId']]);
        $db->query("UPDATE sendall SET step = '' , `text` = '' , user = '0' , `block` = '0' , chat = '', `type` = '', MsgId = '' , ChatID = ''");
    }
}
