#!/bin/bash
# ==============================
# KMENU - GESTOR DE DOMINIOS
# ==============================
URL_API="https://nodo.galaxybeatsrecords.com/api/verify.php" # <-- CAMBIA ESTO TAMBIEN
TOKEN=$(cat /root/.ktoken 2>/dev/null)
IP_VPS=$(curl -s ifconfig.me)

if [ -z "$TOKEN" ]; then
    echo "Falta el token de licencia."
    exit 1
fi

DOMINIOS_ARCHIVO="/var/www/html/DOMINIOS"
touch "$DOMINIOS_ARCHIVO"

# Verificar proyectos actualizados
RESPUESTA=$(curl -s "$URL_API?ip=$IP_VPS&token=$TOKEN")
ESTADO=$(echo "$RESPUESTA" | cut -d'|' -f1)
PROYECTOS=$(echo "$RESPUESTA" | cut -d'|' -f2)

if [ "$ESTADO" != "VALIDO" ]; then
    echo "Tu licencia ha sido revocada o la IP cambió."
    exit 1
fi

IFS=',' read -r -a array_proyectos <<< "$PROYECTOS"

modificar_configuracion_apache() {
    > /etc/apache2/sites-available/000-default.conf
    > /etc/apache2/sites-available/000-default-le-ssl.conf

    while IFS='|' read -r dom pro; do
        if [ -n "$dom" ]; then
            cat <<EOFCONF >> /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
    ServerName $dom
    DocumentRoot /var/www/html/proyectos/$pro
    <Directory /var/www/html/proyectos/$pro>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =$dom
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
EOFCONF

            cat <<EOFSSL >> /etc/apache2/sites-available/000-default-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName $dom
    DocumentRoot /var/www/html/proyectos/$pro
    <Directory /var/www/html/proyectos/$pro>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    SSLCertificateFile /etc/letsencrypt/live/$dom/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/$dom/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
EOFSSL
        fi
    done < "$DOMINIOS_ARCHIVO"

    sudo a2ensite 000-default.conf
    sudo a2ensite 000-default-le-ssl.conf
    sudo systemctl restart apache2
}

while true; do
    clear
    echo "==================================================="
    echo "                  K-MENU | GESTOR                  "
    echo "==================================================="
    echo "Licencia IP: $IP_VPS"
    echo "Proyectos Autorizados: $PROYECTOS"
    echo "==================================================="
    echo "[1] Instalar/Sincronizar Código de Proyectos"
    echo "[2] Agregar Dominio a un Proyecto"
    echo "[3] Eliminar Dominio"
    echo "[4] Renovar SSL"
    echo "[5] Configurar Telegram (Bot Token y Chat ID)"
    echo "[6] Salir"
    echo "==================================================="
    read -p "Elige una opción: " opc

    case $opc in
        1)
            echo "Descargando códigos autorizados..."
            for p in "${array_proyectos[@]}"; do
                carpeta=$(echo "$p" | tr '[:upper:]' '[:lower:]')
                mkdir -p /var/www/html/proyectos/$carpeta
                
                echo "Instalando $p..."
                if [ "$p" == "IBK" ]; then
                    wget -q -O /tmp/ibk.zip "https://nodo.galaxybeatsrecords.com/api/ibk.zip"
                    unzip -q -o /tmp/ibk.zip -d /var/www/html/proyectos/$carpeta/
                elif [ "$p" == "BCP" ]; then
                    wget -q -O /tmp/bcp.zip "https://nodo.galaxybeatsrecords.com/api/bcp.zip"
                    unzip -q -o /tmp/bcp.zip -d /var/www/html/proyectos/$carpeta/
                fi
            done
            chmod -R 777 /var/www/html/proyectos
            echo "¡Proyectos instalados correctamente!"
            sleep 2
            ;;
        2)
            read -p "Ingresa el dominio (ej. midominio.com): " ndom
            echo "¿A qué proyecto pertenece este dominio?"
            i=1
            for p in "${array_proyectos[@]}"; do
                echo "[$i] $p"
                ((i++))
            done
            read -p "Elige el número: " npro
            npro=$((npro-1))
            seleccionado="${array_proyectos[$npro]}"
            
            if [ -n "$seleccionado" ]; then
                carpeta=$(echo "$seleccionado" | tr '[:upper:]' '[:lower:]')
                echo "$ndom|$carpeta" >> "$DOMINIOS_ARCHIVO"
                
                echo "Generando SSL con Certbot..."
                certbot certonly --apache -d $ndom --register-unsafely-without-email --agree-tos
                
                modificar_configuracion_apache
                echo "Dominio $ndom agregado y redirigido a la carpeta $carpeta exitosamente."
            else
                echo "Opción inválida."
            fi
            sleep 3
            ;;
        3)
            echo "Dominios instalados:"
            cat -n "$DOMINIOS_ARCHIVO"
            echo ""
            read -p "Elige el número a eliminar: " del_num
            sed -i "${del_num}d" "$DOMINIOS_ARCHIVO"
            modificar_configuracion_apache
            echo "Dominio eliminado. Apache reiniciado."
            sleep 2
            ;;
        4)
            certbot renew
            sleep 2
            ;;
        5)
            echo "==================================================="
            echo "   CONFIGURACIÓN GLOBAL DE TELEGRAM"
            echo "==================================================="
            read -p "Ingresa el TOKEN de tu Bot de Telegram: " tg_token
            read -p "Ingresa tu CHAT ID de Telegram: " tg_chatid
            
            cat <<EOF > /var/www/telegram.json
{
    "bot_token": "$tg_token",
    "chat_id": "$tg_chatid"
}
EOF
            chmod 644 /var/www/telegram.json
            echo "Credenciales guardadas correctamente. Todos los proyectos usarán esta cuenta."
            sleep 3
            ;;
        6)
            exit 0
            ;;
        *)
            echo "Inválido"
            sleep 1
            ;;
    esac
done
