# 项目变量
BINARY_NAME=chainsql
DOCKER_IMAGE=chainsql-service
VERSION=0.1.0

# 默认目标
all: build

# 编译 Go 二进制文件
build:
	@echo "Building binary..."
	@go build -o bin/$(BINARY_NAME) ./cmd/main.go

# 运行服务 (本地开发)
run: build
	@echo "Running service..."
	@./bin/$(BINARY_NAME)

# 整理依赖
tidy:
	@go mod tidy

# 清理构建产物
clean:
	@echo "Cleaning..."
	@rm -rf bin/

# Docker 构建
docker-build:
	@echo "Building Docker image..."
	@docker build -t $(DOCKER_IMAGE):$(VERSION) .
	@docker tag $(DOCKER_IMAGE):$(VERSION) $(DOCKER_IMAGE):latest

# Docker Compose 启动 (需先安装 docker-compose)
docker-up:
	@echo "Starting services with Docker Compose..."
	@docker-compose up -d

docker-down:
	@echo "Stopping services..."
	@docker-compose down

# 帮助信息
help:
	@echo "Available commands:"
	@echo "  make build         - Build the binary"
	@echo "  make run           - Build and run locally"
	@echo "  make tidy          - Run go mod tidy"
	@echo "  make clean         - Remove binary"
	@echo "  make docker-build  - Build Docker image"
	@echo "  make docker-up     - Start services (DB + App)"
	@echo "  make docker-down   - Stop services"