.PHONY: help build run test clean dev db-start db-stop db-reset # Go binary path GO := /usr/local/go/bin/go help: ## Show this help message @echo 'Usage: make [target]' @echo '' @echo 'Available targets:' @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " %-15s %s\n", $$1, $$2}' $(MAKEFILE_LIST) build: ## Build the application $(GO) build -o bin/server cmd/server/main.go run: ## Run the application $(GO) run cmd/server/main.go test: ## Run all tests $(GO) test -v ./... test-coverage: ## Run tests with coverage $(GO) test -v -coverprofile=coverage.out ./... $(GO) tool cover -html=coverage.out -o coverage.html clean: ## Clean build artifacts rm -rf bin/ rm -f coverage.out coverage.html dev: db-start ## Start development environment @echo "Starting development server..." $(GO) run cmd/server/main.go db-start: ## Start DynamoDB local @echo "Starting DynamoDB local..." docker-compose up -d dynamodb-local @echo "DynamoDB local is running on http://localhost:8000" db-stop: ## Stop DynamoDB local @echo "Stopping DynamoDB local..." docker-compose down db-reset: ## Reset DynamoDB local data @echo "Resetting DynamoDB local..." docker-compose down -v docker-compose up -d dynamodb-local deps: ## Download dependencies $(GO) mod download $(GO) mod tidy fmt: ## Format code $(GO) fmt ./... lint: ## Run linter golangci-lint run .DEFAULT_GOAL := help