# app/bot/user_state_manager.py from app.bot.constants import UserStates from telebot import logger class UserStateManager: def __init__(self): self.user_states = {} def set_state(self, chat_id: int, state: UserStates): """Устанавливает состояние для пользователя.""" if not isinstance(state, UserStates): raise ValueError("state должен быть экземпляром UserStates Enum") self.user_states[chat_id] = state logger.debug(f"[StateManager] ✅ Установлено состояние для {chat_id}: {state.name}") def get_state(self, chat_id: int) -> UserStates: """Получает текущее состояние пользователя. По умолчанию - MAIN_MENU.""" state = self.user_states.get(chat_id, UserStates.MAIN_MENU) logger.debug(f"[StateManager] 📌 Текущее состояние для {chat_id}: {state.name}") return state def reset_state(self, chat_id: int): """Сбрасывает состояние пользователя в главное меню.""" self.user_states[chat_id] = UserStates.MAIN_MENU logger.debug(f"[StateManager] 🔄 Сброс состояния для {chat_id}. Назначено: MAIN_MENU")