#!/bin/bash

echo "🔍 检查 Filament Admin 配置..."
echo ""

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

# 检查 .env 文件
echo -e "${BLUE}📋 检查 .env 文件：${NC}"
if [ -f ".env" ]; then
    echo -e "${GREEN}✅ .env 文件存在${NC}"

    # 读取关键配置
    APP_NAME=$(grep "^APP_NAME=" .env | cut -d '=' -f2 | tr -d '"')
    APP_ENV=$(grep "^APP_ENV=" .env | cut -d '=' -f2)
    APP_DEBUG=$(grep "^APP_DEBUG=" .env | cut -d '=' -f2)
    APP_URL=$(grep "^APP_URL=" .env | cut -d '=' -f2)
    DB_CONNECTION=$(grep "^DB_CONNECTION=" .env | cut -d '=' -f2)

    echo "   应用名称：${APP_NAME}"
    echo "   环境：${APP_ENV}"
    echo "   调试模式：${APP_DEBUG}"
    echo "   访问地址：${APP_URL}"
    echo "   数据库：${DB_CONNECTION}"
    echo ""

    # 验证生产环境配置
    if [ "$APP_ENV" = "production" ]; then
        echo -e "${GREEN}✅ 生产环境配置正确${NC}"
    else
        echo -e "${YELLOW}⚠️  建议设置 APP_ENV=production${NC}"
    fi

    if [ "$APP_DEBUG" = "false" ]; then
        echo -e "${GREEN}✅ 调试模式已关闭${NC}"
    else
        echo -e "${YELLOW}⚠️  建议设置 APP_DEBUG=false${NC}"
    fi
else
    echo -e "${RED}❌ .env 文件不存在${NC}"
    echo -e "${YELLOW}💡 请复制 .env.example 或 .env.production 为 .env${NC}"
    exit 1
fi

echo ""

# 检查数据库文件
echo -e "${BLUE}🗄️  检查数据库：${NC}"
if [ "$DB_CONNECTION" = "sqlite" ]; then
    if [ -f "database/database.sqlite" ]; then
        echo -e "${GREEN}✅ SQLite 数据库文件存在${NC}"
        DB_SIZE=$(du -h database/database.sqlite | cut -f1)
        echo "   文件大小：${DB_SIZE}"
    else
        echo -e "${YELLOW}⚠️  SQLite 数据库文件不存在，将自动创建${NC}"
    fi
else
    echo -e "${BLUE}ℹ️  使用 ${DB_CONNECTION} 数据库${NC}"
fi

echo ""

# 检查端口
echo -e "${BLUE}🔌 检查端口 5019：${NC}"
if lsof -i :5019 &> /dev/null; then
    echo -e "${YELLOW}⚠️  端口 5019 已被占用${NC}"
    lsof -i :5019
else
    echo -e "${GREEN}✅ 端口 5019 可用${NC}"
fi

echo ""

# 检查 Docker
echo -e "${BLUE}🐳 检查 Docker：${NC}"
if command -v docker &> /dev/null; then
    DOCKER_VERSION=$(docker --version)
    echo -e "${GREEN}✅ Docker 已安装：${DOCKER_VERSION}${NC}"
else
    echo -e "${RED}❌ Docker 未安装${NC}"
    exit 1
fi

echo ""

# 检查 Docker Compose
echo -e "${BLUE}📦 检查 Docker Compose：${NC}"
if command -v docker-compose &> /dev/null; then
    COMPOSE_VERSION=$(docker-compose --version)
    echo -e "${GREEN}✅ Docker Compose 已安装：${COMPOSE_VERSION}${NC}"
elif docker compose version &> /dev/null; then
    COMPOSE_VERSION=$(docker compose version)
    echo -e "${GREEN}✅ Docker Compose (v2) 已安装：${COMPOSE_VERSION}${NC}"
else
    echo -e "${RED}❌ Docker Compose 未安装${NC}"
    exit 1
fi

echo ""

# 磁盘空间检查
echo -e "${BLUE}💾 检查磁盘空间：${NC}"
DISK_SPACE=$(df -h . | awk 'NR==2 {print $4}')
echo -e "${GREEN}✅ 可用空间：${DISK_SPACE}${NC}"

echo ""
echo -e "${GREEN}🎉 配置检查完成！${NC}"
echo ""
echo -e "${BLUE}📋 快速操作：${NC}"
echo "   构建：${GREEN}make build${NC} 或 ${GREEN}./build.sh${NC}"
echo "   部署：${GREEN}make deploy${NC} 或 ${GREEN}./deploy.sh${NC}"
echo "   验证：${GREEN}make verify${NC} 或 ${GREEN}./verify.sh${NC}"
