# Makefile for pig-farm-controller

# 默认目标
.PHONY: help
help:
	@echo "Usage: make [target]"
	@echo
	@echo "Targets:"
	@echo "  run          Run the application"
	@echo "  build        Build the application"
	@echo "  clean        Clean generated files"
	@echo "  test         Run all tests"
	@echo "	 swag         Generate swagger docs"
	@echo "  help         Show this help message"
	@echo "  proto        Generate protobuf files"
	@echo "	 lint         Lint the code"

# 运行应用
.PHONY: run
run:
	go run main.go

# 构建应用
.PHONY: build
build:
	go build -o bin/pig-farm-controller .

# 清理生成文件
.PHONY: clean
clean:
	rm -f bin/pig-farm-controller

# 运行所有测试
.PHONY: test
test:
	go test --count=1 ./...

# 生成swagger文档
.PHONY: swag
swag:
	if exist docs rmdir /s /q docs
	swag init -g internal/app/api/api.go --parseInternal --parseDependency


# 生成protobuf文件
.PHONY: proto
proto:
	protoc --go_out=internal/infra/transport/proto --go_opt=paths=source_relative --go-grpc_out=internal/infra/transport/proto --go-grpc_opt=paths=source_relative -Iinternal/infra/transport/proto internal/infra/transport/proto/device.proto

# 运行代码检查
.PHONY: lint
lint:
	golangci-lint run ./...

# 测试模式(改动文件自动重编译重启)
.PHONY: dev
dev:
	air

# 启用谷歌浏览器MCP服务器
.PHONY: mcp-chrome
mcp-chrome:
	node "C:\nvm4w\nodejs\node_modules\chrome-devtools-mcp\build\src\index.js"
