# Developer shortcuts. `make verify` runs the same gate as CI.
MVNW := ./mvnw

.PHONY: help verify test it coverage pit format compose-up compose-down image

help:
	@echo "verify       - clean + static analysis + unit + integration + coverage gate"
	@echo "test         - unit tests only (Surefire)"
	@echo "it           - integration tests only (Failsafe, needs Docker)"
	@echo "coverage     - open the merged JaCoCo HTML report"
	@echo "pit          - mutation testing on the service layer"
	@echo "format       - apply Spotless (google-java-format AOSP)"
	@echo "compose-up   - start the dev stack (Postgres + app + MailHog)"
	@echo "compose-down - stop the dev stack and remove volumes"
	@echo "image        - build the Docker image locally"

verify:
	./scripts/verify.sh

test:
	$(MVNW) -B test

it:
	$(MVNW) -B verify -DskipUnitTests=true -Dcoverage.gate.skip=true

coverage:
	$(MVNW) -B verify -Dcoverage.gate.skip=true
	@echo "Report: target/site/jacoco/index.html"

pit:
	$(MVNW) -B -Dpitest.skip=false org.pitest:pitest-maven:mutationCoverage

format:
	$(MVNW) -B spotless:apply

compose-up:
	docker compose up --build -d

compose-down:
	docker compose down -v

image:
	docker build -t demo:local .
