#!/bin/sh
# 来伊份团队 pre-commit 钩子
# 对应《来伊份工作流约束规范 §3.3》自动化执法工具
# 对应《来伊份自检清单》AI 执行规则
# 由 lyf-rules 自动生成，手动修改可能被覆盖

echo "🔍 [来伊份] 运行 pre-commit 检查..."

# 1. TypeScript 类型检查
if [ -f "tsconfig.json" ] && command -v npx >/dev/null 2>&1; then
  echo "   ├─ 类型检查 (tsc)..."
  npx tsc --noEmit 2>&1
  if [ $? -ne 0 ]; then
    echo "   └─ ❌ 类型检查失败，请修复后重新提交"
    exit 1
  fi
  echo "   ├─ ✅ 类型检查通过"
fi

# 2. 运行测试（不阻塞，仅提醒）
if [ -f "vitest.config.ts" ] || [ -f "jest.config.js" ] || [ -d "test" ] || [ -d "__tests__" ]; then
  echo "   ├─ 运行测试..."
  if command -v npx >/dev/null 2>&1; then
    npx vitest run --reporter=verbose 2>&1 || true
  fi
fi

# 3. 运行自检脚本
if [ -f "check-before-commit.sh" ]; then
  echo "   ├─ 运行自检脚本..."
  sh check-before-commit.sh
  if [ $? -ne 0 ]; then
    echo "   └─ ❌ 自检未通过，请修复后重新提交"
    exit 1
  fi
  echo "   ├─ ✅ 自检通过"
fi

echo "   └─ ✅ pre-commit 检查完成"