# api/Makefile — the Rust + axum backend API.
#
# Driven directly with `make -C api <target>` (or via the root Makefile's
# `api-*` convenience targets).

CARGO ?= cargo

.PHONY: help run build test check fmt clean

help: ## List available targets
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
		awk 'BEGIN {FS = ":.*?## "}; {printf "  \033[36m%-18s\033[0m %s\n", $$1, $$2}'

run: ## Run the API server (dev)
	$(CARGO) run

build: ## Release build -> target/release/
	$(CARGO) build --release

test: ## Run unit/integration tests
	$(CARGO) test

check: ## Format-check + lint (clippy -D warnings)
	$(CARGO) fmt --all --check && $(CARGO) clippy --all-targets -- -D warnings

fmt: ## Format Rust sources with rustfmt
	$(CARGO) fmt

clean: ## Remove Cargo build artifacts
	$(CARGO) clean
