diff --git a/handlers/users.py b/handlers/users.py
index 39e6014..4e9e4d3 100644
--- a/handlers/users.py
+++ b/handlers/users.py
@@ -116,6 +116,47 @@ async def cb_phones(event):
kb = get_phones_menu()
await safe_edit_or_reply(event, text, reply_markup=kb, parse_mode='HTML')
+@router.message(Command('masters'))
+@router.message(F.text.lower() == 'мастера')
+async def cmd_masters(message: Message):
+ """Выдача списка мастеров по команде /masters или тексту 'мастера'"""
+ from database.models import Service
+ from keyboards.inline import get_main_menu
+ from aiogram.types import FSInputFile
+ import os
+
+ user_id = message.from_user.id
+ async with AsyncSessionLocal() as session:
+ stmt = select(Service).where(Service.category == 'masters').order_by(Service.name)
+ services = list((await session.execute(stmt)).scalars().all())
+
+ user_stmt = select(User).where(User.user_id == user_id)
+ user = (await session.execute(user_stmt)).scalar_one_or_none()
+ ig_stmt = select(InitiativeGroup).where(InitiativeGroup.user_id == user_id, InitiativeGroup.is_active == True)
+ is_ig = (await session.execute(ig_stmt)).scalar_one_or_none() is not None
+
+ is_admin = user.is_admin or user_id == config.ADMIN_USER_ID if user else False
+ is_superadmin = user_id == config.ADMIN_USER_ID
+ verified = user.verified if user else False
+ menu_kb = get_main_menu(verified=verified, is_ig=is_ig, is_admin=is_admin, is_superadmin=is_superadmin)
+
+ if not services:
+ await message.answer("👷 Данные для этой категории еще не заполнены.", reply_markup=menu_kb, parse_mode='HTML')
+ return
+
+ text = "📞 СПИСОК ТЕЛЕФОНОВ: МАСТЕРА\n\n"
+ for s in services:
+ text += f"🔹 {s.name}\n └ 📱 {s.phone}\n"
+ if s.description:
+ text += f" └ 📝 {s.description}\n"
+ text += "\n"
+
+ photo_path = services[0].image_path if services[0].image_path else None
+ if photo_path and os.path.exists(photo_path):
+ await message.answer_photo(FSInputFile(photo_path), caption=text, reply_markup=menu_kb, parse_mode='HTML')
+ else:
+ await message.answer(text, reply_markup=menu_kb, parse_mode='HTML')
+
@router.message(F.text & ~F.text.startswith('/'))
async def chat_with_ai(message: Message):
"""Обработка свободного общения с ИИ (только для верифицированных)"""