from telebot.types import ( InlineKeyboardButton as button, InlineKeyboardMarkup as keyboard, ) from db.models import Queue def menu() -> keyboard: return keyboard( keyboard=[ [button(text="➕ Новая очередь", callback_data="new_queue")], [button(text="📋 Мои очереди", callback_data="my_queues")], [button(text="🔧 Настройки", callback_data="settings")], [button(text="ℹ️ О боте", callback_data="about")], ] ) def my_queues(queues: list[Queue]) -> keyboard: kb = [[button(text=q.name, callback_data=f"q:{q.id}")] for q in queues] kb.append([button(text="⬅️ В меню", callback_data="to_menu")]) return keyboard(kb) def queue_menu() -> keyboard: return keyboard( keyboard=[ [button(text="🔗 Ссылка для вступления", callback_data="get_queue_link")], [button(text="✏️ Изменить название", callback_data="edit_queue_name")], [button(text="🫂 Список участников", callback_data="get_queue_users")], [button(text="❌ Удалить очередь", callback_data="delete_queue")], [button(text="⬅️ В меню", callback_data="to_menu")], ] ) def settings() -> keyboard: return keyboard( keyboard=[ [button(text="✏️ Поменять свое имя", callback_data="edit_name")], [button(text="⬅️ В меню", callback_data="to_menu")], ] ) def edit_name() -> keyboard: return keyboard( keyboard=[ [button(text="❌ Отмена", callback_data="cancel")], ] ) def queue_users(queue_id: str) -> keyboard: return keyboard( keyboard=[ [button(text="🔃 Поменять позиции", callback_data="change_positions")], [button(text="⬅️ Назад", callback_data=f"q:{queue_id}")], ] )