#!/usr/bin/env bash
# {{项目名称}} — 标准启动脚本
# 用法: ./init.sh

set -euo pipefail

ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$ROOT_DIR"

echo "==> 工作目录: $PWD"

# ── 依赖安装 ──────────────────────────────────────────────
echo "==> 同步依赖"
if [ -f "requirements.txt" ]; then
  pip install -r requirements.txt -q
elif [ -f "pyproject.toml" ]; then
  pip install -e ".[dev]" -q
else
  echo "    [跳过] 未找到 requirements.txt 或 pyproject.toml"
fi

# ── 基线验证 ──────────────────────────────────────────────
echo "==> 运行基线测试"
python -m pytest --tb=short -q

# ── 类型检查 ──────────────────────────────────────────────
if command -v mypy &> /dev/null; then
  echo "==> 运行类型检查"
  python -m mypy src/ --ignore-missing-imports || echo "    [警告] mypy 发现类型错误"
fi

# ── lint 检查 ─────────────────────────────────────────────
if command -v ruff &> /dev/null; then
  echo "==> 运行 lint 检查"
  ruff check src/ || echo "    [警告] ruff 发现 lint 问题"
fi

# ── 架构约束检查 ──────────────────────────────────────────
if [ -f "scripts/check-architecture.sh" ]; then
  echo "==> 运行架构约束检查"
  bash scripts/check-architecture.sh || echo "    [警告] 发现架构违规"
fi

echo "==> 启动完成。基线状态已验证。"
