#!/usr/bin/env bash
set -euo pipefail

# 用法：
#   sudo bash scripts/fix-export-runtime.sh /opt/davos/达沃斯会议心理测评系统
# 说明：
#   1) 修复当前用户 Docker 权限（加入 docker 组）
#   2) 强制重建 backend 镜像（确保 fonts-noto-cjk 安装）
#   3) 重启 backend 并校验字体文件与健康检查

PROJECT_DIR="${1:-$(pwd)}"

echo "[1/5] 切换目录: ${PROJECT_DIR}"
cd "${PROJECT_DIR}"

if [[ ! -f "docker-compose.yml" ]]; then
  echo "未找到 docker-compose.yml，请传入正确项目目录"
  exit 1
fi

echo "[2/5] 处理 Docker 权限"
if ! getent group docker >/dev/null 2>&1; then
  groupadd docker
fi
if ! id -nG "${SUDO_USER:-$USER}" | tr ' ' '\n' | grep -qx docker; then
  usermod -aG docker "${SUDO_USER:-$USER}" || true
fi

echo "[3/5] 强制重建 backend（含中文字体依赖）"
docker compose build --no-cache backend

echo "[4/5] 重启 backend"
docker compose up -d backend

echo "[5/5] 校验服务与字体"
docker compose ps
docker compose exec backend sh -lc 'ls -l /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc'
curl -fsS http://127.0.0.1:8080/api/health

echo
echo "修复完成。"
echo "注意：如果你之前浏览器已登录，请退出后重新登录一次，避免旧 token 导致 403。"
echo "若想当前 shell 立即使用 docker 无 sudo，请重新登录 SSH 或执行: newgrp docker"
