.PHONY: install-deps dev dev-backend dev-frontend build prod test lint format clean docker-build docker-up docker-down

# ── Development ──────────────────────────────────────────

install-deps:
	python3 -m venv .venv
	.venv/bin/pip install -e ".[dev]"
	cd frontend && npm install

dev-backend:
	@echo "Starting backend on http://localhost:8000"
	.venv/bin/uvicorn backend.main:app --reload --host 0.0.0.0 --port 8000

dev-frontend:
	cd frontend && npm run dev

dev:
	@echo "Run 'make dev-backend' and 'make dev-frontend' in separate terminals"

# ── Production ───────────────────────────────────────────

build:
	cd frontend && npm run build
	@echo "Frontend built to frontend/dist/"

prod:
	@echo "Starting production server on http://localhost:8000"
	.venv/bin/uvicorn backend.main:app --host 0.0.0.0 --port 8000 --workers 4

# ── Docker ───────────────────────────────────────────────

docker-build:
	docker compose build

docker-up:
	docker compose up -d
	@echo "K8scan running at http://localhost:8080"

docker-down:
	docker compose down

# ── Quality ──────────────────────────────────────────────

test:
	.venv/bin/python -m pytest backend/tests/ -v

lint:
	.venv/bin/ruff check backend/ cli/
	.venv/bin/ruff format --check backend/ cli/

format:
	.venv/bin/ruff format backend/ cli/

# ── Cleanup ──────────────────────────────────────────────

clean:
	rm -rf .venv .pytest_cache .ruff_cache frontend/node_modules frontend/dist
	find . -type d \( -name __pycache__ -o -name "*.egg-info" \) -exec rm -rf {} + 2>/dev/null || true
	find . -type f \( -name "*.pyc" -o -name "*.pyo" \) -delete 2>/dev/null || true
