.PHONY: setup-env install dev dev-pi clean help

AGENT_TYPE ?= opencode

setup-env:
	@if [ ! -f .env.local ]; then \
		cp .env.example .env.local; \
		echo "✅ Created .env.local from .env.example"; \
	else \
		echo "✅ .env.local already exists"; \
	fi

install: setup-env
	@echo "📦 Installing backend dependencies..."
	@if [ ! -d ../agentkit/skills/nutshell-skills ] && [ ! -d ../agentkit/skills/builtin ]; then \
		echo "⚠️  agentkit/skills not properly set up. Run 'make sync-skills' from project root first."; \
		exit 1; \
	fi
	uv sync

dev: setup-env
	@if [ -x .venv/bin/uvicorn ]; then \
		UVICORN=".venv/bin/uvicorn"; \
	elif command -v uv >/dev/null 2>&1; then \
		UVICORN="uv run uvicorn"; \
	else \
		echo "❌ uv is not on PATH and .venv/bin/uvicorn does not exist. Run make install first."; \
		exit 1; \
	fi; \
	set -a; [ -f .env.local ] && . ./.env.local; set +a; \
	: "$${ACP_AGENT_TYPE:=$(AGENT_TYPE)}"; \
	ACP_AGENT_TYPE="$$ACP_AGENT_TYPE" $$UVICORN investibook.main:app --reload --reload-dir investibook --reload-dir tests --reload-dir scripts --reload-exclude '.venv' --host 0.0.0.0 --port 8000 --timeout-graceful-shutdown 3

dev-pi:
	$(MAKE) dev AGENT_TYPE=pi

# dev-claude: setup-env
# 	@set -a; [ -f .env.local ] && . ./.env.local; set +a; \
# 	ACP_AGENT_TYPE=claude uv run uvicorn investibook.main:app --reload --reload-exclude '.venv' --reload-exclude 'data' --host 0.0.0.0 --port 8000 --timeout-graceful-shutdown 3

clean:
	rm -rf __pycache__ .venv

help:
	@echo "Backend targets:"
	@echo "  make setup-env  - Create .env.local from .env.example"
	@echo "  make install    - Install Python dependencies (uv sync)"
	@echo "  make dev        - Start backend with selected agent (:8000), default OpenCode"
	@echo "  make dev-pi     - Start backend with Pi agent (:8000)"
	@echo "  make clean      - Remove __pycache__ and .venv"
