DOCKER_COMPOSE = docker compose
SYMFONY = symfony
COMPOSER = composer
NPM = npm

# Lancer Docker et installer les dépendances PHP
up:
	$(DOCKER_COMPOSE) up -d
	$(COMPOSER) install --ignore-platform-reqs

# Démarrer le serveur Symfony avec Docker
serve:
	$(SYMFONY) serve -d

# Lancer les commandes NPM (ex. dev ou watch pour la compilation front-end)
npm-run:
	$(NPM) run dev

# Charger des fixtures dans la base de données
db-fixtures:
	$(SYMFONY) console doctrine:fixtures:load --no-interaction

# Commande globale pour démarrer le projet (Docker, serveur Symfony, compilation front-end)
start: up serve npm-run

# Arrêter et supprimer les conteneurs Docker
down:
	$(DOCKER_COMPOSE) down

# Effacer le cache Symfony
cache-clear:
	$(SYMFONY) console cache:clear

# Lancer les tests
test:
	$(SYMFONY) console doctrine:database:create --env=test --if-not-exists
	$(SYMFONY) console doctrine:schema:update --force --env=test
	$(SYMFONY) php bin/phpunit

# Commande principale qui réinitialise et redémarre le projet
reset: down up reset-db serve npm-run

reset-db:
	$(SYMFONY) console doctrine:database:drop --force --if-exists
	$(SYMFONY) console doctrine:database:create
	$(SYMFONY) console doctrine:migrations:migrate --no-interaction
	$(SYMFONY) console app:create-admin admin pass
