.PHONY: start build test migrate sync-to-s3 sync-to-local backfill-checksums clean help

BINARY := bin/photo-api
CMD    := ./cmd/photo-api

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

start: ## Run the photo-api server (go run)
	go run $(CMD)

build: ## Build binary to bin/photo-api
	go build -o $(BINARY) $(CMD)

test: ## Run all Go tests
	go test ./...

migrate: ## Apply pending photos_* migrations
	go run $(CMD) migrate

sync-to-s3: ## Copy the photo library from local disk to S3 (needs both in .env)
	go run $(CMD) sync to-s3

sync-to-local: ## Copy the photo library from S3 back to local disk
	go run $(CMD) sync to-local

backfill-checksums: ## Hash photos uploaded before duplicate detection existed
	go run $(CMD) backfill-checksums

clean: ## Remove built binary
	rm -rf bin
