.PHONY: install dev prod stop logs remove auth sync searxng ollama

COMPOSE = docker compose

auth:
	@mkdir -p .claude-data storage projects
	@chown -R 1000:1000 .claude-data storage projects
	@grep -q "^CLAUDE_CODE_OAUTH_TOKEN=.\+" .env 2>/dev/null \
		|| echo "WARNUNG: CLAUDE_CODE_OAUTH_TOKEN fehlt in .env (Claude-Provider inaktiv)."
	@grep -q "^MINIMAX_API_KEY=.\+" .env 2>/dev/null \
		|| echo "WARNUNG: MINIMAX_API_KEY fehlt in .env (MiniMax-Provider inaktiv)."
	@echo "Verzeichnisse angelegt und auf uid 1000 chowned."

install:
	pip install --break-system-packages fastapi uvicorn[standard] aiosqlite uv
	cd frontend && npm install
	npm install -g opencode-ai
	@mkdir -p $(HOME)/.config/opencode
	@ln -sfn $(CURDIR)/dev-ops/opencode.json $(HOME)/.config/opencode/opencode.json
	@if grep -q "^MINIMAX_API_KEY=.\+" .env 2>/dev/null; then \
		echo "OpenCode-Config verlinkt. MINIMAX_API_KEY aus .env wird von 'make dev' geladen."; \
	else \
		echo "OpenCode-Config verlinkt. MINIMAX_API_KEY noch in .env eintragen."; \
	fi

dev:
	@echo "Backend: http://localhost:8000"
	@echo "Frontend: http://localhost:5173"
	@set -a; [ -f .env ] && . ./.env; set +a; \
		cd backend && uvicorn main:app --reload --port 8000 &
	@cd frontend && npx vite --port 5173

prod: auth
	$(COMPOSE) up -d --build

stop:
	-@pkill -f "uvicorn main:app" 2>/dev/null
	-@pkill -f "vite --port 5173" 2>/dev/null
	$(COMPOSE) down
	@echo "Server gestoppt."

logs:
	$(COMPOSE) logs -f

remove: stop
	@echo "Lösche Datenbank und generierte Dateien..."
	rm -rf storage/*
	@echo "Fertig."

searxng:
	docker run -d --name searxng --restart unless-stopped -p 8888:8080 searxng/searxng
	@echo "SearxNG läuft auf http://localhost:8888 (Websuche für den Lokal-Provider)."

ollama:
	@which ollama >/dev/null 2>&1 || curl -fsSL https://ollama.com/install.sh | sh
	ollama pull qwen3:14b
	ollama pull qwen3:8b
	@echo "Ollama bereit — Provider 'Lokal' ist aktiv (Modelle anpassen: backend/config.py + dev-ops/opencode.json)."

sync:
	@mkdir -p storage/themen
	rsync -avz --progress root@178.104.67.87:/var/www/creator/storage/creator.db storage/
	rsync -avz --progress --delete root@178.104.67.87:/var/www/creator/storage/themen/ storage/themen/
	@echo "Sync abgeschlossen."
