diff --git a/handlers/admin/clusters/clusters_handler.py b/handlers/admin/clusters/clusters_handler.py
index 85dab862..77bdfd5b 100644
--- a/handlers/admin/clusters/clusters_handler.py
+++ b/handlers/admin/clusters/clusters_handler.py
@@ -304,10 +304,18 @@ async def handle_clusters_manage(
)
user_count = result.scalar() or 0
+ result = await session.execute(
+ select(func.count()).where(
+ (Key.server_id == cluster_name) | (Key.server_id.in_(server_names))
+ )
+ )
+ subscription_count = result.scalar() or 0
+
text = (
f"🔧 Управление кластером {cluster_name}\n\n"
f"📁 Тарифная группа: {tariff_group}\n"
- f"👥 Пользователей на кластере: {user_count}"
+ f"👥 Пользователей на кластере: {user_count}\n"
+ f"🔑 Всего подписок: {subscription_count}"
)
await callback_query.message.edit_text(
diff --git a/handlers/admin/servers/servers_handler.py b/handlers/admin/servers/servers_handler.py
index 69e34ba4..47b1cb7c 100644
--- a/handlers/admin/servers/servers_handler.py
+++ b/handlers/admin/servers/servers_handler.py
@@ -69,6 +69,11 @@ async def handle_server_manage(
max_keys = server.get("max_keys")
limit_display = f"{max_keys}" if max_keys else "не задан"
+ result = await session.execute(
+ select(func.count()).where(Key.server_id == server_name)
+ )
+ subscription_count = result.scalar() or 0
+
text = (
f"🔧 Информация о сервере {server_name}:\n\n"
f"🗂 Кластер: {cluster_name}\n"
@@ -84,6 +89,9 @@ async def handle_server_manage(
f"📈 Лимит ключей: {limit_display}"
)
+ if subscription_count > 0:
+ text += f"\n🔑 Подписок на сервере: {subscription_count}"
+
await callback_query.message.edit_text(
text=text,
reply_markup=build_manage_server_kb(