.PHONY: build run test clean docker-up docker-down db-migrate seed help

# ── Variables ──
APP     := blind-select
BACKEND := ./backend
PG      := localhost:5432
PG_USER := blind_select
PG_DB   := blind_select

help:
	@echo "=== Blind Select - Make Commands ==="
	@echo ""
	@echo "  build          - Build backend binary"
	@echo "  run            - Start backend (go run)"
	@echo "  test           - Run Go tests"
	@echo "  clean          - Remove binary"
	@echo "  docker-up      - Start all services via docker-compose"
	@echo "  docker-down    - Stop all services"
	@echo "  docker-logs    - Show docker-compose logs"
	@echo "  db-migrate     - Run SQL migrations"
	@echo "  seed           - Load seed data"
	@echo "  admin-dev      - Start admin frontend (npm run dev)"
	@echo "  check          - go vet + go fmt check"

build:
	cd $(BACKEND) && go build -o bin/server ./cmd/server/

run:
	cd $(BACKEND) && go run ./cmd/server/

test:
	cd $(BACKEND) && go test ./... -v

clean:
	rm -rf $(BACKEND)/bin

docker-up:
	cd $(BACKEND) && docker-compose up -d

docker-down:
	cd $(BACKEND) && docker-compose down

docker-logs:
	cd $(BACKEND) && docker-compose logs -f

db-migrate:
	@echo "Running migrations on postgres..."
	psql "postgresql://$(PG_USER):blind_select_pass@$(PG)/$(PG_DB)?sslmode=disable" -f $(BACKEND)/migrations/001_initial_schema.sql

seed:
	@echo "Loading seed data..."
	psql "postgresql://$(PG_USER):blind_select_pass@$(PG)/$(PG_DB)?sslmode=disable" -f $(BACKEND)/migrations/002_seed_data.sql

admin-dev:
	cd frontend-admin && npm run dev

check:
	cd $(BACKEND) && go vet ./... && go fmt ./...
