# Makefile LintellO - Commandes Docker simplifiées
# Usage: make <commande>

.PHONY: help up down restart cc logs shell db-shell migrate

# Couleurs
GREEN=\033[0;32m
NC=\033[0m

help: ## Affiche cette aide
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "$(GREEN)%-15s$(NC) %s\n", $$1, $$2}'

# ============================================================
# DOCKER
# ============================================================
up: ## Démarre tous les conteneurs
	docker-compose up -d

down: ## Arrête tous les conteneurs
	docker-compose down

restart: ## Redémarre tous les conteneurs
	docker-compose restart

restart-php: ## Redémarre uniquement PHP (utile après modif config)
	docker-compose restart php

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

logs-php: ## Affiche les logs PHP uniquement
	docker-compose logs -f php

# ============================================================
# CACHE - Plus jamais de problèmes !
# ============================================================
cc: ## Clear cache Symfony (rapide grâce au tmpfs)
	docker-compose exec php php bin/console cache:clear

ccf: ## Clear cache FORCE - supprime tout et reconstruit
	docker-compose exec php rm -rf var/cache/* var/log/*
	docker-compose exec php php bin/console cache:clear
	docker-compose exec php php bin/console cache:warmup
	@echo "$(GREEN)Cache vidé et reconstruit !$(NC)"

# ============================================================
# SHELL & DEBUG
# ============================================================
shell: ## Ouvre un shell dans le conteneur PHP
	docker-compose exec php bash

db-shell: ## Ouvre un shell MySQL
	docker-compose exec mysql mysql -u lintello -plintello_password lintello

# ============================================================
# DATABASE
# ============================================================
migrate: ## Exécute les migrations Doctrine
	docker-compose exec php php bin/console doctrine:migrations:migrate --no-interaction

migrate-diff: ## Génère une nouvelle migration
	docker-compose exec php php bin/console doctrine:migrations:diff

db-validate: ## Valide le schéma Doctrine
	docker-compose exec php php bin/console doctrine:schema:validate

# ============================================================
# COMPOSER
# ============================================================
composer-install: ## Install les dépendances Composer
	docker-compose exec php composer install

composer-update: ## Update les dépendances Composer
	docker-compose exec php composer update

# ============================================================
# FRONTEND
# ============================================================
front-build: ## Build le frontend pour la production
	cd frontend && npm run build

front-dev: ## Lance le serveur de dev frontend
	cd frontend && npm run dev

# ============================================================
# FULL RESET (utiliser avec précaution)
# ============================================================
full-reset: ## Reset complet : rebuild conteneurs + clear cache
	docker-compose down
	docker-compose build --no-cache php
	docker-compose up -d
	@echo "Attente du démarrage..."
	@sleep 5
	docker-compose exec php php bin/console cache:clear
	@echo "$(GREEN)Reset complet terminé !$(NC)"
