.PHONY: build run test clean deps server cli # Build the server binary build: go build -o bin/server cmd/server/main.go # Build the CLI binary build-cli: go build -o bin/cli cmd/cli/main.go # Run the server run: go run cmd/server/main.go # Run the CLI cli: go run cmd/cli/main.go # Install dependencies deps: go mod tidy go mod download # Run tests test: go test ./... # Clean build artifacts clean: rm -rf bin/ # Format code fmt: go fmt ./... # Vet code vet: go vet ./... # Run linter (requires golangci-lint) lint: golangci-lint run # Database operations db-migrate: build-cli ./bin/cli migrate db-health: build-cli ./bin/cli db health db-seed: build-cli ./bin/cli db seed # Development setup dev-setup: deps cp .env.example .env @echo "Please update .env file with your configuration" # Docker commands docker-build: docker-compose build docker-up: docker-compose up -d docker-down: docker-compose down docker-logs: docker-compose logs -f docker-ps: docker-compose ps docker-restart: docker-compose restart api docker-clean: docker-compose down -v # Docker development docker-dev: docker-compose -f docker-compose.yml -f docker-compose.dev.yml up docker-dev-build: docker-compose -f docker-compose.yml -f docker-compose.dev.yml build # Docker database docker-db-shell: docker-compose exec postgres psql -U postgres -d booking_system docker-db-backup: docker-compose exec postgres pg_dump -U postgres booking_system > backup_$$(date +%Y%m%d_%H%M%S).sql docker-db-restore: @read -p "Enter backup file path: " file; \ docker-compose exec -T postgres psql -U postgres booking_system < $$file # Docker testing docker-test: docker-compose exec api go test ./... docker-test-coverage: docker-compose exec api go test -cover ./... # Docker utilities docker-shell: docker-compose exec api /bin/sh docker-rebuild: docker-compose up -d --build api docker-health: @echo "API Health:"; curl -s http://localhost:8080/health | jq . @echo "\nDatabase Health:"; docker-compose exec postgres pg_isready -U postgres