#!/bin/bash
# amnezia-himarc-client - AmneziaWG Client

# Подключаем библиотеку
LIB_DIR="/usr/share/amnezia-himarc/lib"
if [[ -f "$LIB_DIR/amnezia-functions.sh" ]]; then
    source "$LIB_DIR/amnezia-functions.sh"
else
    echo "❌ Библиотека не найдена: $LIB_DIR/amnezia-functions.sh"
    exit 1
fi

# === ОБРАБОТКА АРГУМЕНТОВ ===
case "$1" in
    --status)
        get_status_text
        exit 0
        ;;
    --disconnect)
        stop_vpn
        exit 0
        ;;
    --help|-h)
        show_help
        exit 0
        ;;
esac

# === ГЛАВНОЕ МЕНЮ ===
show_menu() {
    clear
    echo -e "${BLUE}╔═══════════════════════════════════════════════════╗${NC}"
    echo -e "${BLUE}║${NC}     ${PURPLE}🌐 Amnezia HiMarc Client${NC}                    ${BLUE}║${NC}"
    echo -e "${BLUE}╠═══════════════════════════════════════════════════╣${NC}"
    echo -e "${BLUE}║${NC}  Статус: $(show_status_short)${BLUE}           ║${NC}"
    echo -e "${BLUE}╠═══════════════════════════════════════════════════╣${NC}"
    echo -e "${BLUE}║${NC}  ${BOLD}1${NC}. 🚀 Запустить демо-ключ                     ${BLUE}║${NC}"
    echo -e "${BLUE}║${NC}  ${BOLD}2${NC}. 📁 Выбрать конфиг (.conf)                 ${BLUE}║${NC}"
    echo -e "${BLUE}║${NC}  ${BOLD}3${NC}. 🗂️  Запустить ключ из папки               ${BLUE}║${NC}"
    echo -e "${BLUE}║${NC}  ${BOLD}4${NC}. 🔑 Ввести ключ-фразу (лицензию)           ${BLUE}║${NC}"
    echo -e "${BLUE}║${NC}  ${BOLD}5${NC}. 🔄 Перезапустить                         ${BLUE}║${NC}"
    echo -e "${BLUE}║${NC}  ${BOLD}6${NC}. 🛑 Отключить                              ${BLUE}║${NC}"
    echo -e "${BLUE}║${NC}  ${BOLD}7${NC}. 📊 Показать статус                       ${BLUE}║${NC}"
    echo -e "${BLUE}║${NC}  ${BOLD}8${NC}. 🖥️  Открыть терминал                      ${BLUE}║${NC}"
    echo -e "${BLUE}║${NC}  ${BOLD}0${NC}. 🚪 Выход                                  ${BLUE}║${NC}"
    echo -e "${BLUE}╚═══════════════════════════════════════════════════╝${NC}"
    echo -n "Выберите действие: "
}

# === ОСНОВНОЙ ЦИКЛ ===
DEMO_CONFIG="/usr/share/amnezia-himarc/demo.conf"

while true; do
    show_menu
    read choice
    
    case "$choice" in
        1)
            if [[ -f "$DEMO_CONFIG" ]]; then
                start_vpn "$DEMO_CONFIG" "Demo Key"
            else
                echo -e "${RED}❌ Демо-конфиг не найден: $DEMO_CONFIG${NC}"
            fi
            pause
            ;;
        
        2)
            # Выбор конфига через ввод пути
            echo -e "${CYAN}📁 Введите путь к .conf файлу:${NC}"
            read -e CONFIG
            if [[ -n "$CONFIG" && -f "$CONFIG" ]]; then
                start_vpn "$CONFIG" "$(basename "$CONFIG")"
            else
                echo -e "${RED}❌ Файл не найден: $CONFIG${NC}"
            fi
            pause
            ;;
        
        3)
            CONFIG=$(show_config_list)
            if [[ -n "$CONFIG" && -f "$CONFIG" ]]; then
                start_vpn "$CONFIG" "$(basename "$CONFIG")"
            fi
            pause
            ;;
        
        4)
            echo -e "${CYAN}🔑 Введите ключ-фразу (KeyPasswordPhrase):${NC}"
            read -s key
            echo
            TEMP_CONFIG="$CONFIG_DIR/temp_$(date +%s).conf"
            if generate_config_from_key "$key" "$TEMP_CONFIG"; then
                start_vpn "$TEMP_CONFIG" "License Key: ${key:0:8}..."
            fi
            pause
            ;;
        
        5)
            restart_vpn
            pause
            ;;
        
        6)
            stop_vpn
            pause
            ;;
        
        7)
            echo -e "\n${BLUE}📊 СТАТУС ПОДКЛЮЧЕНИЯ${NC}"
            echo -e "${BLUE}═══════════════════════════${NC}"
            get_status_text
            pause
            ;;
        
        8)
            open_terminal "clear; echo '=== AmneziaWG Terminal ==='; echo; echo 'Команды:'; echo '  awg-quick up /usr/share/amnezia-himarc/demo.conf'; echo '  awg-quick down /usr/share/amnezia-himarc/demo.conf'; echo '  awg show'; echo; echo '=== Запуск демо ==='; sudo awg-quick up /usr/share/amnezia-himarc/demo.conf 2>&1; echo; read -p 'Нажмите Enter...'"
            pause
            ;;
        
        0)
            echo -e "${GREEN}👋 До свидания!${NC}"
            exit 0
            ;;
        
        *)
            echo -e "${RED}❌ Неверный выбор${NC}"
            sleep 1
            ;;
    esac
done