<?php

// Bot initialization
require 'vendor/autoload.php';

use Telegram\Bot\Api;

$API_KEY = '701785874:AAF6CIjqh4cOasMrNLRb8Ib_kPVEs0mqZQY';
$telegram = new Api($API_KEY);
$updates = $telegram->getWebhookUpdates();
$chat_id = $updates->getMessage()->getChat()->getId();
$text = $updates->getMessage()->getText();
$first_name = $updates->getMessage()->getChat()->getFirstName();
$last_name = $updates->getMessage()->getChat()->getLastName();
$username = $updates->getMessage()->getChat()->getUsername();
$nabChannel = '@sedaynab';
$keyboard = json_encode([
    'resize_keyboard' => true,
    'keyboard' => [
        [['text' => "دریافت کارت شارژ رایگان 🆓"]],
        [['text' => "روش استفاده از ربات 💰"]],
        [['text' => "لینک برای دعوت دوستان 🔗"], ['text' => "اطلاعات حساب شما 📊️"]],
        [['text' => "پشتیبانی 👤"]],
    ]
]);




// Database Connection

$servernameDB = "localhost";
$usernameDB = "biaradi1_slara";
$passwordDB = "SametPishr0";
$dbnameDB = "biaradi1_slara";
$connection = new mysqli($servernameDB, $usernameDB, $passwordDB, $dbnameDB);





function isJoined($chat_id)
{
    global $API_KEY;
    $sponsored_channel = json_decode(file_get_contents("https://api.telegram.org/bot$API_KEY/getChatMember?chat_id=@sedaynab&user_id=".$chat_id));
    $status = $sponsored_channel->result->status;
    return $status == 'member' ||
        $status == 'creator' ||
        $status == 'administrator';
}

function isStart($text){
    if (substr($text, 0, 6) == "/start") return true;
    else return false;
}

if (isStart($text)) {
            $telegram->sendChatAction([
                'chat_id' => $chat_id,
                'action' => 'typing'
            ]);

            if (strlen($text) > 6 && substr($text, 7) != $chat_id) {
                    $refrence_chat_id = substr($text, 7);
                    
                    $newUser = "SELECT * FROM users WHERE chat_id = '$chat_id' LIMIT 1";
                    $newUser_query = $connection->query($newUser);

                if ($newUser_query->num_rows == 0) {

        
                    $add_new_user = "INSERT INTO users (first_name,last_name,username,chat_id,reference) VALUES ('$first_name' , '$last_name' , '$username' , '$chat_id' , '$refrence_chat_id')";
                    $connection->query($add_new_user);

                    $updateRefrence = "SELECT * FROM users WHERE chat_id = '$refrence_chat_id' LIMIT 1";
                    $updateRefrence_query = $connection->query($updateRefrence);
                    if($updateRefrence_query->num_rows != 0){
                        $update_user = "UPDATE users SET invited_count=invited_count+1 WHERE chat_id='$refrence_chat_id'";
                        $connection->query($update_user);
                    }


                    $telegram->sendMessage([
                        'chat_id' => $chat_id,
                        'text' => "با موفقیت وارد شدید!",
                        'reply_markup' => $keyboard

                    ]);
                    
                    $telegram->sendMessage([
                        'chat_id' => $refrence_chat_id,
                        'text' => "کاربر $first_name با لینک شما ثبت نام کرد!",
                        'reply_markup' => $keyboard

                    ]);
                } else {


                    $telegram->sendMessage([
                        'chat_id' => $chat_id,
                        'text' => "شما قبلا در سیستم ثبت نام شده اید!\nبا استفاده از کیبورد زیر گزینه مورد نظر را انتخاب کنید.",
                        'reply_markup' => $keyboard

                    ]);
                }

            } else { // simple start


                $newUser = "SELECT * FROM users WHERE chat_id = '$chat_id' LIMIT 1";
                $newUser_query = $connection->query($newUser);

                if ($newUser_query->num_rows == 0) {

                

                    $add_new_user = "INSERT INTO users (first_name,last_name,username,chat_id,reference) VALUES ('$first_name' , '$last_name' , '$username' , '$chat_id' , 'nobody')";
                    $connection->query($add_new_user);
                    $telegram->sendMessage([
                        'chat_id' => $chat_id,
                        'text' => "با موفقیت وارد شدید!",
                        'reply_markup' => $keyboard

                    ]);
                } else {


                    $telegram->sendMessage([
                        'chat_id' => $chat_id,
                        'text' => "شما قبلا در سیستم ثبت نام شده اید!\nبا استفاده از کیبورد زیر گزینه مورد نظر را انتخاب کنید.",
                        'reply_markup' => $keyboard

                    ]);
                }


            }

        }


elseif(isJoined($chat_id)){
    
if ($text == "پشتیبانی 👤"){
    $telegram->sendChatAction([
        'chat_id' => $chat_id,
        'action' => 'typing'
    ]);
    $telegram->sendMessage([
        'chat_id' => $chat_id,
        'text' => "در صورت وجود هر گونه اشکال با آی دی پشتیبانی ارتباط برقرار کنید.\n @SedayNabAds".$status,
        'reply_markup' => $keyboard

    ]);
}
    
if($text == "لینک برای دعوت دوستان 🔗"){
            $telegram->sendChatAction([
                'chat_id' => $chat_id,
                'action' => 'typing'
            ]);

            $telegram->sendMessage([
                'chat_id' => $chat_id,
                'text' =>  "پیام زیر رو برای دوستات فروارد کن تا توی ربات عضو شن.",


            ]);
            
            $telegram->sendPhoto([
                'chat_id' => $chat_id,
                'photo' => 'sharj.png',
                'caption' => "💥مژده مژده💥

💰 فرصتی برای کسب درآمد با ربات صدای ناب 💰

😍ربات صدای ناب واستون کلی کارت شارژ رایگان داره!😍

فقط کافیه با لینک زیر در ربات صدای ناب عضو شی و ده نفر از دوستات رو هم به اون دعوت کنی‼️
به ازای دعوت هر ده نفر ، یک کارت شارژ بین هزار تومن تا بیست هزار تومن برنده میشی‼️

آخر هر هفته هم به ده نفری که بیشترین تعداد نفرات رو به ربات دعوت کنند بدون قرعه کشی صد هزارتومان تومان جایزه نقدی میده‼️😎

پس میتونی به راحتی با دعوت کردن دوستات کسب در آمد کنی 💰💰

کافیه روی لینک زیر کلیک کنی تا توی رباتش عضو بشی...
👇🏻👇🏻👇🏻".PHP_EOL."http://t.me/sharjenab_bot?start=".$chat_id,
                'reply_markup' => $keyboard,
            ]);

            


        }

if($text == "اطلاعات حساب شما 📊️"){
            $invited = "select COUNT(*) from users where reference='$chat_id'";
            $invited_query = $connection->query($invited);
            $invited_row = $invited_query->fetch_assoc();
            $invited = $invited_row["COUNT(*)"];
            
            $collected = "SELECT collected from users WHERE chat_id = '$chat_id'";
            $collected_query = $connection->query($collected);
            $collected_row = $collected_query->fetch_assoc();
            $collected = $collected_row["collected"];

            $telegram->sendMessage([
                'chat_id' => $chat_id,
                'text' => "شما تا کنون $invited نفر را به ربات دعوت کرده اید!".PHP_EOL."تعداد کارت شارژ های دریافت شده : $collected",
                'reply_markup' => $keyboard
            ]);
        }

if ($text == "روش استفاده از ربات 💰"){
            $telegram->sendChatAction([
                'chat_id' => $chat_id,
                'action' => 'typing'
            ]);

             $telegram->sendMessage([
                'chat_id' => $chat_id,
                'text' => "روش استفاده از ربات شارژ صدای ناب 💰

1️⃣ چگونه کارت شارژ رایگان دریافت کنم؟

برای دریافت کارت شارژ رایگان کافیست با استفاده از کیبورد زیر گزینه لینک برای دعوت دوستان 🔗 را انتخاب کنید و پیامی را که ربات برای شما میفرستد را به دوستان خود ارسال نمایید.

2️⃣ چند نفر را باید به ربات دعوت کنم؟

به ازای هر ده نفر که با لینک اختصاصی شما به ربات وارد شوند ، شما یک کارت شارژ رایگان بین هزار تومان تا بیست هزار تومان برنده خواهید شد!

3️⃣ چگونه کارت شارژ با مبالغ بالاتر دریافت کنم؟

اگر شما و دوستانی که دعوت میکنید مدت زمان بیشتری در کانال صدای ناب @SedayNab عضو باشید ، کارت شارژ با مبالغ بالاتر به شما هدیه داده میشود. 

به طور مثال : 

- اگر کسی 10 نفر از دوستان خود را دعوت کرده باشد و کمتر از یک هفته در کانال صدای ناب عضو باشد ، کارت شارژ هزار تومانی برنده خواهد شد.

- اگر کسی 10 نفر از دوستان خود را دعوت کرده باشد و بین یک تا دو هفته در کانال صدای ناب عضو باشد ، کارت دو هزار تومانی برنده خواهد شد.

- اگر کسی 10 نفر از دوستان خود را دعوت کرده باشد و بین دو تا سه هفته در کانال صدای ناب عضو باشد ، کارت شارژ ده هزار تومانی برنده خواهد شد.

- اگر کسی 10 نفر از دوستان خود را دعوت کرده باشد و یک ماه در کانال صدای ناب عضو باشد ، کارت شارژ بیست هزار تومانی برنده خواهد شد.


4️⃣ جایزه بزرگ صدای ناب چیست؟

 به 10 نفری که بیشترین فعالیت را در ربات داشته باشند و تعداد افراد دعوت شده بیشتری داشته باشند بدون قرعه کشی در انتهای هر هفته نفری صد هزار تومان جایزه نقدی هدیه داده میشود!

آدرس کانال صدای ناب @SedayNab",
                'reply_markup' => $keyboard

            ]);
        }



if ($text == "دریافت کارت شارژ رایگان 🆓"){
    // TODO : 1 . if invited count > 9 && (floor(invitedCount / 10) - collected) > 0 then
    // TODO : 2. send him a charge , collected++
    if(isJoined($chat_id)){
        $invited = "SELECT invited_count from users WHERE chat_id = '$chat_id'";
        $invited_query = $connection->query($invited);
        $invited_row = $invited_query->fetch_assoc();
        $invited = $invited_row["invited_count"];
        
        $collected = "SELECT collected from users WHERE chat_id = '$chat_id'";
        $collected_query = $connection->query($collected);
        $collected_row = $collected_query->fetch_assoc();
        $collected = $collected_row["collected"];
        
        if(floor($invited / 10) - $collected > 0){
            $charge = "SELECT * from charges WHERE used = '0' LIMIT 1";
            $charge_query = $connection->query($charge);
            $charge_row = $charge_query->fetch_assoc();
            $charge = $charge_row["code"];
            $charge_id = $charge_row["id"];
            $telegram->sendMessage([
                'chat_id' => $chat_id,
                'text' => "Code Sharj : ".$charge,
                'reply_markup' => $keyboard
            ]);
            $updateCharge = "UPDATE charges SET used='1' WHERE id='$charge_id'";
            $connection->query($updateCharge);
            
            $updateCollected = "UPDATE users SET collected=collected+1 WHERE chat_id='$chat_id'";
            $connection->query($updateCollected);
        }
        
        else{
            $invited = "SELECT invited_count from users WHERE chat_id = '$chat_id'";
            $invited_query = $connection->query($invited);
            $invited_row = $invited_query->fetch_assoc();
            $invited = $invited_row["invited_count"];
            $more = 10 - ( $invited % 10 );
            
            $collected = "SELECT collected from users WHERE chat_id = '$chat_id'";
            $collected_query = $connection->query($collected);
            $collected_row = $collected_query->fetch_assoc();
            $collected = $collected_row["collected"];
            $telegram->sendMessage([
                'chat_id' => $chat_id,
                'text' => "تعداد افراد دعوت شده توسط شما $invited نفر است و $collected عدد کارت شارژ دریافت نموده اید..\nشما باید $more نفر دیگر به ربات دعوت کنید تا شارژ بعدی را بگیرید.",
                'reply_markup' => $keyboard
            ]);
        }
    }
    else{
        $telegram->sendMessage([
            'chat_id' => $chat_id,
            'text' => "برای دریافت کارت شارژ ابتدا باید در کانال رسمی صدای ناب عضو شوید ، سپس دستور /start را وارد کنید.".PHP_EOL."آدرس کانال صدای ناب : \n@SedayNab\n@SedayNab\n@SedayNab\n@SedayNab",
            'reply_markup' => $keyboard
        ]);
    }
    

    
}
}

else{
    $telegram->sendMessage([
                        'chat_id' => $chat_id,
                        'text' => "برای استفاده از امکانات ربات باید ابتدا در کانال صدای ناب عضو شوید!\n@sedaynab\n@sedaynab\n@sedaynab"
                    ]);
}


$connection->close();