# go-zero 生成風格
GO_ZERO_STYLE=go_zero
GO ?= go
GOFMT ?= gofmt "-s"
GOFILES := $(shell find . -name "*.go")
LDFLAGS := -s -w
VERSION="v0.0.1"
DOCKER_REP="reg.wang/app-cloudep-member-service"
GIT_COMMIT ?= $(shell git rev-parse --short HEAD)


GO_DOC_DIR  := generate/doc-generate
GO_DOC_BIN  := $(GO_DOC_DIR)/bin/go-doc
API_ENTRY   := ./generate/api/gateway.api
DOC_OUT     := ./docs/openapi

.PHONY: gen-api build-go-doc gen-doc
gen-api: # 使用專案 handler 模板（response.Write）
	goctl api go -api $(API_ENTRY) -dir . -style go_zero -home generate/goctl

build-go-doc: ## 編譯 go-doc（OpenAPI 文件生成器）
	cd $(GO_DOC_DIR) && GOTOOLCHAIN=go1.26.1 go build -o bin/go-doc ./cmd/go-doc

gen-doc: build-go-doc ## 從 .api 生成 OpenAPI 3.0 YAML
	@mkdir -p $(DOC_OUT)
	$(GO_DOC_BIN) -a $(API_ENTRY) -d $(DOC_OUT) -f gateway -s openapi3.0 -y
	@echo "Generated: $(DOC_OUT)/gateway.yaml"