<?php

require 'config.php';
require 'functions.php';

require 'controllers/HomeController.php';
require 'controllers/CardsController.php';
require 'controllers/BalanceController.php';
require 'controllers/ReferralController.php';
require 'controllers/SettingsController.php';
require 'controllers/SupportController.php';

$update = json_decode(
    file_get_contents("php://input"),
    true
);

if(isset($update['message']))
{
    $message = $update['message'];

    $chatId = $message['chat']['id'];
    $text = $message['text'] ?? '';

    if($text === '/start')
    {
        $stmt = $pdo->prepare(
            "INSERT IGNORE INTO users
            (telegram_id,username,first_name)
            VALUES(?,?,?)"
        );

        $stmt->execute([
            $message['from']['id'],
            $message['from']['username'] ?? '',
            $message['from']['first_name'] ?? ''
        ]);

        dashboard($chatId);
    }
}

if(isset($update['callback_query']))
{
    $cb = $update['callback_query'];

    $chatId = $cb['message']['chat']['id'];
    $messageId = $cb['message']['message_id'];
    $data = $cb['data'];

    api('answerCallbackQuery', [
        'callback_query_id'=>$cb['id']
    ]);

    switch($data)
    {
        case 'home':
            editMessage(
                $chatId,
                $messageId,
                "🏠 Dashboard",
                homeMenu()
            );
            break;

        case 'cards':
            editMessage(
                $chatId,
                $messageId,
                cardsText(),
                cardsMenu()
            );
            break;

        case 'deposit':
            editMessage(
                $chatId,
                $messageId,
                depositText(),
                depositMenu()
            );
            break;

        case 'referrals':
            editMessage(
                $chatId,
                $messageId,
                referralsText($chatId),
                referralsMenu()
            );
            break;

        case 'settings':
            editMessage(
                $chatId,
                $messageId,
                settingsText(),
                settingsMenu()
            );
            break;

        case 'support':
            editMessage(
                $chatId,
                $messageId,
                supportText(),
                supportMenu()
            );
            break;

        default:

            editMessage(
                $chatId,
                $messageId,
                "🚧 Section under development",
                keyboard([
                    [
                        ['text'=>'⬅ Back','callback_data'=>'home']
                    ]
                ])
            );
    }
}