#!/bin/bash
# 对子 AI 一键卸载脚本
# 自动删除所有版本的对子 AI 应用

set -e

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'

APP_NAME="对子 AI"
APP_BUNDLE="对子 AI.app"

echo -e "${BLUE}"
echo "╔════════════════════════════════════════════════════════════╗"
echo "║           对子 AI (Binson AI) 一键卸载脚本                 ║"
echo "╚════════════════════════════════════════════════════════════╝"
echo -e "${NC}"
echo ""

# 查找所有对子 AI 应用
echo -e "${BLUE}🔍 正在查找所有对子 AI 应用...${NC}"
echo ""

APPS_FOUND=()

# 检查 /Applications
if [ -d "/Applications/$APP_BUNDLE" ]; then
    APPS_FOUND+=("/Applications/$APP_BUNDLE")
    echo -e "${GREEN}✓ 找到: /Applications/$APP_BUNDLE${NC}"
fi

# 检查 ~/Applications
if [ -d "$HOME/Applications/$APP_BUNDLE" ]; then
    APPS_FOUND+=("$HOME/Applications/$APP_BUNDLE")
    echo -e "${GREEN}✓ 找到: $HOME/Applications/$APP_BUNDLE${NC}"
fi

# 检查 dist 目录
DIST_DIR="/Users/cs-cl/Projects/binson-agent-desktop/dist"
if [ -d "$DIST_DIR" ]; then
    for dir in "$DIST_DIR"/mac*; do
        if [ -d "$dir/$APP_BUNDLE" ]; then
            APPS_FOUND+=("$dir/$APP_BUNDLE")
            echo -e "${GREEN}✓ 找到: $dir/$APP_BUNDLE${NC}"
        fi
    done
fi

# 搜索整个用户目录（排除系统目录）
echo -e "${YELLOW}正在搜索其他位置...${NC}"
while IFS= read -r -d '' app; do
    # 避免重复
    if [[ ! " ${APPS_FOUND[@]} " =~ " ${app} " ]]; then
        APPS_FOUND+=("$app")
        echo -e "${GREEN}✓ 找到: $app${NC}"
    fi
done < <(find "$HOME" -name "$APP_BUNDLE" -type d -not -path "*/node_modules/*" -not -path "*/.Trash/*" -print0 2>/dev/null)

echo ""

if [ ${#APPS_FOUND[@]} -eq 0 ]; then
    echo -e "${YELLOW}未找到任何对子 AI 应用${NC}"
    echo ""
    echo -e "${BLUE}检查应用支持文件...${NC}"
else
    echo -e "${YELLOW}共找到 ${#APPS_FOUND[@]} 个对子 AI 应用${NC}"
    echo ""
    
    # 确认卸载
    read -p "是否删除所有找到的应用？(y/N): " -n 1 -r
    echo
    if [[ ! $REPLY =~ ^[Yy]$ ]]; then
        echo -e "${YELLOW}卸载已取消${NC}"
        exit 0
    fi
    
    # 删除应用
    echo ""
    echo -e "${BLUE}🗑️  正在删除应用...${NC}"
    for app in "${APPS_FOUND[@]}"; do
        echo -e "  删除: $app"
        rm -rf "$app" 2>/dev/null || echo -e "  ${RED}✗ 删除失败: $app${NC}"
    done
    echo -e "${GREEN}✓ 所有应用已删除${NC}"
fi

# 删除应用支持文件
echo ""
echo -e "${BLUE}📁 检查应用支持文件...${NC}"

SUPPORT_DIRS=(
    "$HOME/Library/Application Support/binson-agent-desktop"
    "$HOME/Library/Application Support/对子 AI"
    "$HOME/Library/Caches/binson-agent-desktop"
    "$HOME/Library/Caches/对子 AI"
    "$HOME/Library/Preferences/com.binson.agent.plist"
    "$HOME/Library/Preferences/com.electron.对子-ai.plist"
    "$HOME/Library/Saved Application State/com.binson.agent.savedState"
    "$HOME/Library/Logs/binson-agent-desktop"
)

SUPPORT_FOUND=()
for dir in "${SUPPORT_DIRS[@]}"; do
    if [ -e "$dir" ]; then
        SUPPORT_FOUND+=("$dir")
        echo -e "${GREEN}✓ 找到: $dir${NC}"
    fi
done

if [ ${#SUPPORT_FOUND[@]} -gt 0 ]; then
    echo ""
    read -p "是否删除这些支持文件（包含配置、缓存、日志）？(y/N): " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        echo ""
        echo -e "${BLUE}🗑️  正在删除支持文件...${NC}"
        for dir in "${SUPPORT_FOUND[@]}"; do
            echo -e "  删除: $dir"
            rm -rf "$dir" 2>/dev/null || echo -e "  ${RED}✗ 删除失败${NC}"
        done
        echo -e "${GREEN}✓ 支持文件已删除${NC}"
    else
        echo -e "${YELLOW}保留支持文件${NC}"
    fi
else
    echo -e "${YELLOW}未找到支持文件${NC}"
fi

# 清理 Dock
echo ""
echo -e "${BLUE}🔄 清理 Dock 图标...${NC}"
killall Dock 2>/dev/null || true
echo -e "${GREEN}✓ Dock 已刷新${NC}"

# 完成
echo ""
echo -e "${GREEN}"
echo "╔════════════════════════════════════════════════════════════╗"
echo "║                    ✅ 卸载完成！                           ║"
echo "╚════════════════════════════════════════════════════════════╝"
echo -e "${NC}"
echo ""
echo -e "${BLUE}已删除:${NC}"
echo "  应用数量: ${#APPS_FOUND[@]}"
echo "  支持文件: ${#SUPPORT_FOUND[@]}"
echo ""
echo -e "${YELLOW}如需重新安装，请访问: https://wanxun.site/download/${NC}"
echo ""

exit 0
