SHELL := /bin/bash

BACKEND_DIR := backend
WEB_DIR := backend/web

.DEFAULT_GOAL := help

.PHONY: help
help: ## 顯示可用指令
	@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
		| awk 'BEGIN {FS = ":.*?## "}; {printf "  \033[36m%-18s\033[0m %s\n", $$1, $$2}'

.PHONY: gen-api
gen-api: ## 重新產生後端 API handler / logic / types
	$(MAKE) -C $(BACKEND_DIR) gen-api

.PHONY: fmt
fmt: ## 格式化後端 Go 程式
	$(MAKE) -C $(BACKEND_DIR) fmt

.PHONY: test
test: ## 執行後端測試
	$(MAKE) -C $(BACKEND_DIR) test

.PHONY: run
run: ## 啟動後端 API
	$(MAKE) -C $(BACKEND_DIR) run

.PHONY: web-dev
web-dev: ## 啟動正式前端 dev server
	cd $(WEB_DIR) && npm install && npm run dev

.PHONY: web-build
web-build: ## 建置正式前端
	cd $(WEB_DIR) && npm install && npm run build

.PHONY: verify
verify: test web-build ## 後端測試與前端建置
