diff --git a/handlers/admin/users/users_keys.py b/handlers/admin/users/users_keys.py index da28223a..040f59a2 100644 --- a/handlers/admin/users/users_keys.py +++ b/handlers/admin/users/users_keys.py @@ -100,12 +100,36 @@ async def handle_key_edit( tariff_name = "—" subgroup_title = "—" + base_devices = None + base_traffic = None + is_configurable = False if key_obj.tariff_id: - result = await session.execute(select(Tariff.name, Tariff.subgroup_title).where(Tariff.id == key_obj.tariff_id)) + result = await session.execute( + select(Tariff.name, Tariff.subgroup_title, Tariff.device_limit, Tariff.traffic_limit, Tariff.configurable) + .where(Tariff.id == key_obj.tariff_id) + ) row = result.first() if row: tariff_name = row[0] subgroup_title = row[1] or "—" + base_devices = row[2] + base_traffic = row[3] + is_configurable = bool(row[4]) + + devices_line = "" + traffic_line = "" + if is_configurable: + sel_dev, cur_dev = key_obj.selected_device_limit, key_obj.current_device_limit + if sel_dev is not None or cur_dev is not None: + base_dev = sel_dev if sel_dev is not None else (base_devices if base_devices is not None else cur_dev) + extra = f" + {cur_dev - base_dev} (докуплено)" if (base_dev is not None and cur_dev is not None and cur_dev > base_dev) else "" + devices_line = f"📱 Устройства: {base_dev}{extra}\n" + + sel_traf, cur_traf = key_obj.selected_traffic_limit, key_obj.current_traffic_limit + if sel_traf is not None or cur_traf is not None: + base_traf = sel_traf if sel_traf is not None else (base_traffic if base_traffic is not None else cur_traf) + extra = f" + {cur_traf - base_traf} ГБ (докуплено)" if (base_traf is not None and cur_traf is not None and cur_traf > base_traf) else "" + traffic_line = f"📊 Трафик: {base_traf} ГБ{extra}\n" text = ( "🔑 Информация о подписке\n\n" @@ -117,6 +141,8 @@ async def handle_key_edit( f"🆔 ID клиента: {key_obj.tg_id or '—'}\n" f"📁 Группа: {subgroup_title}\n" f"📦 Тариф: {tariff_name}\n" + f"{devices_line}" + f"{traffic_line}" "" )