SHELL := /bin/bash
PY ?= .venv/bin/python
SLUG := assistant-data
PORT ?= 8080
# .env n'est PAS exporté : les variables passées en ligne de commande l'emportent (config.py lit .env lui-même).
PROJECT ?= $(shell sed -n 's/^GOOGLE_CLOUD_PROJECT=//p' .env 2>/dev/null)
REGION ?= europe-west1

.DEFAULT_GOAL := help
help: ## Liste les commandes
	@grep -E '^[a-z0-9-]+:.*## ' $(MAKEFILE_LIST) | awk -F':.*## ' '{printf "  make %-13s %s\n", $$1, $$2}'

setup: ## Crée .venv et installe les dépendances
	@test -d .venv || python3 -m venv .venv
	@.venv/bin/pip install -q -r requirements.txt
	@test -f .env || cp .env.example .env
	@echo "Prêt. Renseignez .env puis : make test"

test: ## Tests sans clé ni réseau (compilateur, garde-fous, graphiques, agent simulé, API)
	@env -u GOOGLE_CLOUD_PROJECT $(PY) -m pytest

run: ## Interface web sur http://localhost:8080 (vrai modèle, vrai BigQuery)
	@$(PY) -m uvicorn assistant.web:app --port $(PORT)

e2e: ## Évaluation réelle : 20 questions de référence (Gemini + BigQuery, < 1 Go lu au total)
	@$(PY) -m eval.evaluer

clean: ## Supprime les artefacts locaux
	@rm -rf sorties/ .pytest_cache
	@find . -name __pycache__ -type d -prune -exec rm -rf {} +
	@echo "Artefacts supprimés."

reset: clean ## Retour à l'état initial (.env conservé)
	@rm -rf .venv
	@echo "Environnement supprimé (.env conservé)."

cloud-up: ## Déploie sur Cloud Run privé (compte de service, dépôt d'images, service)
	@PROJECT=$(PROJECT) REGION=$(REGION) ./infra/deployer.sh

cloud-down: ## Supprime toutes les ressources du lab et vérifie
	@PROJECT=$(PROJECT) REGION=$(REGION) ./infra/nettoyer.sh

cloud-status: ## Liste ce qui existe encore pour ce lab
	@PROJECT=$(PROJECT) REGION=$(REGION) ./infra/statut.sh
