.PHONY: build run test clean deps migrate

# 构建
build:
	go build -o bin/proxyrotator ./cmd/server

# 运行
run:
	go run ./cmd/server

# 测试
test:
	go test -v ./...

# 清理
clean:
	rm -rf bin/

# 安装依赖
deps:
	go mod tidy
	go mod download

# 数据库迁移（需要 psql）
migrate:
	@echo "Running database migration..."
	@if [ -z "$(DATABASE_URL)" ]; then \
		echo "DATABASE_URL is not set"; \
		exit 1; \
	fi
	psql "$(DATABASE_URL)" -f migrations/001_init.sql

# 开发模式（自动重载）
dev:
	@which air > /dev/null || go install github.com/cosmtrek/air@latest
	air

# 格式化代码
fmt:
	go fmt ./...

# 静态检查
lint:
	@which golangci-lint > /dev/null || go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
	golangci-lint run

# 帮助
help:
	@echo "Available targets:"
	@echo "  build   - Build the binary"
	@echo "  run     - Run the server"
	@echo "  test    - Run tests"
	@echo "  clean   - Remove build artifacts"
	@echo "  deps    - Install dependencies"
	@echo "  migrate - Run database migrations"
	@echo "  dev     - Run with hot reload (requires air)"
	@echo "  fmt     - Format code"
	@echo "  lint    - Run linter"
