2025-11-05 15:06:07 +00:00
|
|
|
.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
|
2025-11-07 20:30:06 +00:00
|
|
|
@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
|