# ============================================================
# Makefile — Raccourcis pour le projet mb-app
# Usage : make <commande>
# ============================================================

.PHONY: help dev dev-stop prod prod-stop logs status setup-nas deploy

# Affiche l'aide
help:
	@echo ""
	@echo "  Développement local"
	@echo "  ─────────────────────────────────────────"
	@echo "  make dev          → Lance PocketBase en local"
	@echo "  make dev-stop     → Arrête le conteneur local"
	@echo "  make logs         → Logs PocketBase en temps réel"
	@echo "  make status       → État des conteneurs"
	@echo ""
	@echo "  Production NAS"
	@echo "  ─────────────────────────────────────────"
	@echo "  make prod         → Lance la stack complète NAS"
	@echo "  make prod-stop    → Arrête tout"
	@echo "  make deploy       → git pull + restart (sur le NAS)"
	@echo ""
	@echo "  Setup"
	@echo "  ─────────────────────────────────────────"
	@echo "  make setup        → Crée les dossiers manquants"
	@echo "  make ssl          → Obtient le certificat SSL (1ère fois)"
	@echo "  make renew-ssl    → Renouvelle le certificat SSL"
	@echo ""

# ── DÉVELOPPEMENT LOCAL ──────────────────────────────────────

dev:
	@echo "🚀 Lancement PocketBase en local..."
	@[ -f .env.local ] || (echo "❌ Fichier .env.local manquant ! Copier .env.example" && exit 1)
	docker compose -f docker/docker-compose.dev.yml up -d
	@echo "✅ PocketBase : http://localhost:8090"
	@echo "✅ Admin      : http://localhost:8090/_/"

dev-stop:
	docker compose -f docker/docker-compose.dev.yml down

dev-reset:
	@echo "⚠️  Supprime les données locales de dev !"
	@read -p "Confirmer ? (oui/non) : " c; [ "$$c" = "oui" ] || exit 1
	docker compose -f docker/docker-compose.dev.yml down
	rm -rf pocketbase/pb_data
	@echo "✅ Données supprimées"

# ── PRODUCTION NAS ───────────────────────────────────────────

prod:
	@echo "🚀 Lancement stack production..."
	@[ -f .env.production ] || (echo "❌ Fichier .env.production manquant !" && exit 1)
	docker compose -f docker/docker-compose.prod.yml up -d
	@echo "✅ Stack lancée"

prod-stop:
	docker compose -f docker/docker-compose.prod.yml down

deploy:
	@echo "📦 Déploiement en cours..."
	git pull origin main
	docker compose -f docker/docker-compose.prod.yml restart pocketbase
	@echo "✅ Déployé"

# ── LOGS & STATUS ────────────────────────────────────────────

logs:
	docker compose -f docker/docker-compose.dev.yml logs -f pocketbase

logs-prod:
	docker compose -f docker/docker-compose.prod.yml logs -f pocketbase

status:
	docker compose -f docker/docker-compose.dev.yml ps

# ── SETUP ────────────────────────────────────────────────────

setup:
	@echo "📁 Création des dossiers..."
	mkdir -p pocketbase/pb_data
	mkdir -p pocketbase/pb_hooks
	mkdir -p pocketbase/pb_migrations
	@[ -f .env.local ] || cp .env.example .env.local
	@echo "✅ Structure prête"
	@echo "👉 Éditer .env.local avec votre clé Anthropic"

setup-nas:
	@echo "📁 Création des dossiers sur le NAS..."
	mkdir -p /volume1/docker/mb-app/pb_data
	mkdir -p /volume1/docker/mb-app/ssl
	mkdir -p /volume1/docker/mb-app/duckdns
	@[ -f .env.production ] || cp .env.example .env.production
	@echo "✅ Dossiers NAS créés"
	@echo "👉 Éditer .env.production"

ssl:
	@echo "🔐 Obtention certificat SSL..."
	@[ -f .env.production ] || (echo "❌ .env.production manquant" && exit 1)
	@source .env.production && docker run --rm \
		-v /volume1/docker/mb-app/ssl:/etc/letsencrypt \
		-v /tmp/certbot-webroot:/var/www/certbot \
		-p 80:80 \
		certbot/certbot certonly --standalone \
		-d $$DUCKDNS_SUBDOMAINS.duckdns.org \
		--non-interactive --agree-tos \
		--email admin@example.com
	@echo "✅ Certificat obtenu"

renew-ssl:
	docker run --rm \
		-v /volume1/docker/mb-app/ssl:/etc/letsencrypt \
		certbot/certbot renew --quiet
	docker compose -f docker/docker-compose.prod.yml restart nginx
	@echo "✅ Certificat renouvelé"
