# Makefile: 適用於使用 uv 管理的 Python 專案

PY := uv venv exec -- python
PIP := uv pip
VENV := .venv

.PHONY: help init install lint format test run clean

help:
	@echo "📘 可用指令："
	@echo "  make init     - 建立虛擬環境 (.venv)"
	@echo "  make install  - 安裝 requirements.txt 中的套件"
	@echo "  make lint     - 使用 ruff 進行靜態檢查"
	@echo "  make format   - 使用 ruff 自動格式化程式碼"
	@echo "  make test     - 使用 pytest 執行測試"
	@echo "  make run      - 執行主程式 src/main.py"
	@echo "  make clean    - 移除快取與虛擬環境"

init:
	@echo "🐍 建立 uv 虛擬環境..."
	uv venv
	@echo "✅ 虛擬環境已建立於 $(VENV)"

install:
	@echo "📦 安裝套件..."
	$(PIP) install -r requirements.txt
	@echo "✅ 套件安裝完成"

lint:
	@echo "🔍 程式碼檢查 (ruff)..."
	uv venv exec -- ruff check src tests

format:
	@echo "🧼 自動格式化 (ruff)..."
	uv venv exec -- ruff format src tests

test:
	@echo "🧪 執行測試 (pytest)..."
	uv venv exec -- pytest

run:
	@echo "🚀 執行主程式..."
	$(PY) src/main.py

clean:
	@echo "🧹 清理專案..."
	rm -rf .venv __pycache__ */__pycache__ *.pyc .ruff_cache .pytest_cache .mypy_cache
	@echo "✅ 清理完成"
