#!/bin/bash
# ╔══════════════════════════════════════════════════════════╗
# ║   JurisDelfus Agente Local — Instalador macOS          ║
# ║   Duplo clique para instalar                           ║
# ╚══════════════════════════════════════════════════════════╝
set -e
clear

VERDE='\033[0;32m'; AZUL='\033[0;34m'; AMARELO='\033[1;33m'
VERMELHO='\033[0;31m'; NC='\033[0m'; NEGRITO='\033[1m'

echo -e "${AZUL}${NEGRITO}"
echo "  ╔══════════════════════════════════════════════╗"
echo "  ║   JurisDelfus — Agente Local v1.0           ║"
echo "  ║   Instalador macOS                          ║"
echo "  ╚══════════════════════════════════════════════╝"
echo -e "${NC}"

DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$DIR"

# ── 1. Python ──
echo -e "${AZUL}[1/5]${NC} Verificando Python 3..."
if ! command -v python3 &>/dev/null; then
    echo -e "${VERMELHO}❌ Python 3 nao encontrado.${NC}"
    echo "Instale: brew install python3"
    echo "Ou baixe: https://www.python.org/downloads/"
    exit 1
fi
echo -e "      $(python3 --version)  ${VERDE}✅${NC}"

# ── 2. tkinter ──
echo -e "${AZUL}[2/5]${NC} Verificando tkinter..."
python3 -c "import tkinter" 2>/dev/null || {
    echo -e "${AMARELO}⚠ tkinter ausente.${NC}"
    if command -v brew &>/dev/null; then
        brew install python-tk 2>/dev/null
    fi
}
echo -e "      ${VERDE}✅${NC}"

# ── 3. Ambiente virtual ──
echo -e "${AZUL}[3/5]${NC} Criando ambiente Python..."
python3 -m venv venv
source venv/bin/activate
echo -e "      ${VERDE}✅${NC}"

# ── 4. Dependências ──
echo -e "${AZUL}[4/5]${NC} Instalando bibliotecas..."
pip install --upgrade pip --quiet 2>/dev/null
pip install playwright PyKCS11 pyotp cryptography pystray pillow --quiet 2>/dev/null
echo -e "      ${VERDE}✅${NC}"

# ── 5. Chromium ──
echo -e "${AZUL}[5/5]${NC} Instalando Chromium..."
python -m playwright install chromium 2>/dev/null || echo "      Chromium ja instalado"
echo -e "      ${VERDE}✅${NC}"

# ── Criar diretórios ──
mkdir -p ~/.jurisdelfus/agente/browser_profiles
mkdir -p ~/Downloads/JurisDelfus

# ── Atalho na Área de Trabalho ──
if [ -d "$HOME/Desktop" ]; then
    cat > "$HOME/Desktop/JurisDelfus Agente.command" << 'LAUNCHER'
#!/bin/bash
DIR="$(cd "$(dirname "$0")" && pwd)"
# Redireciona para o instalador real
REAL_DIR="AGENTE_DIR_PLACEHOLDER"
cd "$REAL_DIR"
source venv/bin/activate
python3 agente_local.py
LAUNCHER
    sed -i "" "s|AGENTE_DIR_PLACEHOLDER|$DIR|" "$HOME/Desktop/JurisDelfus Agente.command"
    chmod +x "$HOME/Desktop/JurisDelfus Agente.command"
fi

# ── Concluído ──
echo ""
echo -e "${VERDE}${NEGRITO}  ✅ Instalacao concluida com sucesso!${NC}"
echo ""
echo -e "  ${NEGRITO}Para iniciar:${NC}"
echo -e "    • Duplo clique em ${AZUL}JurisDelfus Agente.command${NC} na Area de Trabalho"
echo -e "    • Ou terminal: ${AZUL}./iniciar.sh${NC}"
echo ""
echo -e "  ${NEGRITO}Antes de usar:${NC}"
echo -e "    1. Conecte o token ICP-Brasil no computador"
echo -e "    2. Tenha o celular com Google Authenticator"
echo ""
# Início automático e silencioso com o macOS.
PLIST="$HOME/Library/LaunchAgents/com.jurisdelfus.agente.plist"
mkdir -p "$HOME/Library/LaunchAgents"
cat > "$PLIST" << PLISTEOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
<key>Label</key><string>com.jurisdelfus.agente</string>
<key>ProgramArguments</key><array><string>$DIR/venv/bin/python3</string><string>$DIR/agente_local.py</string></array>
<key>RunAtLoad</key><true/><key>KeepAlive</key><true/>
</dict></plist>
PLISTEOF
launchctl unload "$PLIST" 2>/dev/null || true
launchctl load "$PLIST"
echo -e "  ${VERDE}O agente foi iniciado em segundo plano e ficará ativo com o macOS.${NC}"
