#ifndef COURT_MONITOR_BOT_SESSION_H #define COURT_MONITOR_BOT_SESSION_H #include "Storage.h" #include #include #include #include class Dialog; class BotSession final { public: BotSession(banana::agent::beast_callback& agent, banana::integer_t userId, LocalStorage& storage); ~BotSession(); void processMessage(const banana::api::message_t& message); void processCallbackQuery(const banana::api::callback_query_t& query); private: template std::unique_ptr makeDialog() { return std::make_unique(agent_, userId_, storage_); } void processStartCommand(); void processStopCommand(); banana::agent::beast_callback& agent_; banana::integer_t userId_; LocalStorage& storage_; std::unique_ptr activeDialog_; }; #endif // COURT_MONITOR_BOT_SESSION_H