Announce UserContext struct

This commit is contained in:
Kirill 2025-11-27 17:33:04 +03:00
parent 3d8abc3f0c
commit 167e2323be

View file

@ -2,6 +2,7 @@
#include <tgbot/tgbot.h> #include <tgbot/tgbot.h>
#include <string> #include <string>
#include <structs.hpp> #include <structs.hpp>
#include <unordered_map>
/// @brief Структура возвращаемого значения класса BotHandlers для изменения текущего сообщения /// @brief Структура возвращаемого значения класса BotHandlers для изменения текущего сообщения
struct HandlerResult { struct HandlerResult {
@ -9,6 +10,22 @@ struct HandlerResult {
TgBot::InlineKeyboardMarkup::Ptr keyboard; TgBot::InlineKeyboardMarkup::Ptr keyboard;
}; };
enum class UserState {
MAIN_MENU, // Главное меню
VIEWING_MY_TITLES, // Список моих тайтлов
AWAITING_TITLE_NAME, // Жду название тайтла для поиска
VIEWING_TITLE_PAGE, // Смотрю страничку тайтла
AWAITING_REVIEW, // Жду ревью на тайтл
VIEWING_REVIEW_LIST, // Смотрю список ревью на тайтл
VIEWING_REVIEW, // Смотрю (конкретное) ревью на тайтл
VIEWING_DESCRIPTION, // Смотрю описание тайтла
};
struct UserContext {
UserState state;
// Информация о тайтле
};
class BotHandlers { class BotHandlers {
public: public:
BotHandlers(TgBot::Api api) : botApi(api) {;} BotHandlers(TgBot::Api api) : botApi(api) {;}
@ -28,6 +45,7 @@ public:
private: private:
TgBot::Api botApi; TgBot::Api botApi;
std::unordered_map<int64_t, UserContext> userContexts;
void handleNavigation(TgBot::CallbackQuery::Ptr query); void handleNavigation(TgBot::CallbackQuery::Ptr query);