from telebot import types
from app.bot.keyboards.main_menu import get_main_menu
from app.bot.utils.zabbix import get_region_groups, get_all_groups_for_region, fetch_filtered_triggers
from app.bot.utils.tg_formatter import format_trigger_message  # ⬅️ добавлено

def process_region_selection(bot,chat_id, region_id):
    try:
        groups = get_region_groups(region_id)
        if not groups:
            return bot.send_message(chat_id, "Нет групп хостов для этого региона.")

        markup = types.InlineKeyboardMarkup()
        for group in groups:
            markup.add(types.InlineKeyboardButton(text=group['name'], callback_data=f"group_{group['groupid']}"))
        markup.add(types.InlineKeyboardButton(text="Все группы региона\n(Долгое выполнение)", callback_data=f"all_groups_{region_id}"))

        bot.send_message(chat_id, "Выберите группу хостов:", reply_markup=markup)
    except Exception as e:
        bot.send_message(chat_id, f"Ошибка при получении групп: {str(e)}", reply_markup=get_main_menu())


def process_group_selection(bot, chat_id, group_id):
    try:
        triggers = fetch_filtered_triggers(group_id)
        if not triggers:
            bot.send_message(chat_id, "Нет активных событий.")
        else:
            send_trigger_messages(chat_id, triggers)
    except Exception as e:
        bot.send_message(chat_id, f"Ошибка при получении событий: {str(e)}")


def process_all_groups_request(bot, chat_id, region_id):
    try:
        all_triggers = []
        groups = get_all_groups_for_region(region_id)
        for group in groups:
            try:
                triggers = fetch_filtered_triggers(group['groupid'])
                if triggers:
                    all_triggers.extend(triggers)
            except Exception:
                continue

        if all_triggers:
            send_trigger_messages(chat_id, all_triggers)
        else:
            bot.send_message(chat_id, "Нет активных событий.")
    except Exception as e:
        bot.send_message(chat_id, f"Ошибка при получении данных: {str(e)}")


def send_trigger_messages(chat_id, triggers):
    for trigger in triggers:
        text = format_trigger_message(trigger)
        bot.send_message(chat_id, text, parse_mode="MarkdownV2")
