.PHONY: help setup start stop restart logs test clean db-init db-test db-reset composer-install

help: ## Afficher l'aide
	@echo "Wedding RSVP API - Commandes disponibles:"
	@echo ""
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "  \033[36m%-20s\033[0m %s\n", $$1, $$2}'

setup: ## Installation et configuration complète
	@./setup.sh

start: ## Démarrer les conteneurs
	@echo "🚀 Démarrage des conteneurs..."
	@docker compose up -d
	@echo "✅ Conteneurs démarrés"
	@echo "🌐 API disponible sur http://localhost:8080"

stop: ## Arrêter les conteneurs
	@echo "🛑 Arrêt des conteneurs..."
	@docker compose down
	@echo "✅ Conteneurs arrêtés"

restart: ## Redémarrer les conteneurs
	@echo "🔄 Redémarrage des conteneurs..."
	@docker compose restart
	@echo "✅ Conteneurs redémarrés"

logs: ## Afficher les logs (Ctrl+C pour quitter)
	@docker compose logs -f

test: ## Lancer les tests PHPUnit
	@echo "🧪 Exécution des tests..."
	@docker compose exec app composer test

clean: ## Supprimer les conteneurs et volumes
	@echo "🧹 Nettoyage..."
	@docker compose down -v
	@rm -rf vendor
	@echo "✅ Nettoyage terminé"

db-init: ## Initialiser la base de données
	@echo "🗄️  Initialisation de la base de données..."
	@docker compose exec db mysql -u wedding_user -pwedding_pass wedding_rsvp < specs/schema.sql
	@echo "✅ Base de données initialisée"

db-test: ## Charger les données de test
	@echo "📊 Chargement des données de test..."
	@docker compose exec -T db mysql -u wedding_user -pwedding_pass wedding_rsvp < specs/test_data.sql
	@echo "✅ Données de test chargées"

db-reset: ## Réinitialiser la base de données
	@echo "🔄 Réinitialisation de la base de données..."
	@docker compose exec -T db mysql -u wedding_user -pwedding_pass wedding_rsvp < specs/schema.sql
	@docker compose exec -T db mysql -u wedding_user -pwedding_pass wedding_rsvp < specs/test_data.sql
	@echo "✅ Base de données réinitialisée avec les données de test"

composer-install: ## Installer les dépendances Composer
	@echo "📦 Installation des dépendances..."
	@docker compose exec app composer install
	@echo "✅ Dépendances installées"

db-shell: ## Ouvrir un shell MySQL
	@docker compose exec db mysql -u wedding_user -pwedding_pass wedding_rsvp

app-shell: ## Ouvrir un shell dans le conteneur app
	@docker compose exec app bash

status: ## Afficher le statut des conteneurs
	@docker compose ps
