#ifndef COURT_MONITOR_BOT_SESSION_H #define COURT_MONITOR_BOT_SESSION_H #include #include #include #include class Dialog; class BotSession final { public: BotSession(banana::agent::beast_callback& agent, banana::integer_t userId); ~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_); } void processStartCommand(const banana::api::message_t& message); void processStopCommand(const banana::api::message_t& message); banana::agent::beast_callback& agent_; banana::integer_t userId_; std::unique_ptr activeDialog_; }; #endif // COURT_MONITOR_BOT_SESSION_H