#!/bin/bash

set -e

echo "🔍 验证 Filament Admin 部署状态"
echo ""

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

# 检查 Docker
if ! command -v docker &> /dev/null; then
    echo -e "${RED}❌ Docker 未安装${NC}"
    exit 1
fi
echo -e "${GREEN}✅ Docker 已安装${NC}"

# 检查 Docker Compose
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
    echo -e "${RED}❌ Docker Compose 未安装${NC}"
    exit 1
fi
echo -e "${GREEN}✅ Docker Compose 已安装${NC}"

# 检查容器状态
echo ""
echo -e "${BLUE}📊 容器状态：${NC}"
docker compose ps

# 检查健康状态
echo ""
echo -e "${BLUE}💚 健康检查：${NC}"
if docker ps | grep -q "filament_admin.*Up"; then
    echo -e "${GREEN}✅ 容器运行正常${NC}"
else
    echo -e "${RED}❌ 容器未运行${NC}"
    exit 1
fi

# 检查端口
echo ""
echo -e "${BLUE}🔌 端口检查：${NC}"
if curl -s -f http://localhost:5019/admin &> /dev/null; then
    echo -e "${GREEN}✅ 端口 5019 可访问${NC}"
else
    echo -e "${YELLOW}⚠️  端口 5019 暂不可访问（可能需要等待启动）${NC}"
fi

# 检查资源文件
echo ""
echo -e "${BLUE}📦 资源文件：${NC}"
if [ -f "public/build/manifest.json" ]; then
    echo -e "${GREEN}✅ 前端资源已构建${NC}"
    echo -e "   资源文件：$(du -h public/build/manifest.json | cut -f1)"
else
    echo -e "${RED}❌ 前端资源未找到${NC}"
fi

# 检查数据库连接
echo ""
echo -e "${BLUE}🗄️  数据库连接测试：${NC}"
if docker compose exec -T filament_admin php artisan migrate:status &> /dev/null; then
    echo -e "${GREEN}✅ 数据库连接正常${NC}"
else
    echo -e "${YELLOW}⚠️  数据库未配置或连接失败${NC}"
fi

# 检查日志
echo ""
echo -e "${BLUE}📜 最近 10 条日志：${NC}"
docker compose logs --tail=10

echo ""
echo -e "${GREEN}🎉 验证完成！${NC}"
echo ""
echo -e "${BLUE}📋 访问信息：${NC}"
echo -e "   管理后台：http://localhost:5019/admin"
echo -e "   日志查看：docker compose logs -f"
