#!/bin/bash
# post-receive hook — à copier dans /opt/barerepos/radarsargasses971.git/hooks/post-receive
# puis : chmod +x /opt/barerepos/radarsargasses971.git/hooks/post-receive

set -e

DEPLOY_DIR="/opt/apps/radarsargasses971"
REPO_DIR="/opt/barerepos/radarsargasses971.git"

echo "==> [post-receive] Déploiement Sargasse-Sentry"

# 1. Checkout du code source
git --work-tree="$DEPLOY_DIR" --git-dir="$REPO_DIR" checkout -f main

cd "$DEPLOY_DIR"

# 2. Dépendances PHP (sans scripts en prod pour éviter les erreurs de conteneur)
echo "==> composer install"
docker compose exec -T php composer install \
  --no-dev --no-interaction --optimize-autoloader --no-scripts 2>&1 || \
  docker run --rm -v "$DEPLOY_DIR/backend":/app -w /app \
    composer:2 install --no-dev --no-interaction --optimize-autoloader

# 3. Build React → backend/public
echo "==> npm run build"
docker run --rm -v "$DEPLOY_DIR/frontend":/app -w /app \
  node:20-alpine sh -c "npm ci --silent && npm run build"

# 4. Migrations Doctrine
echo "==> migrations:migrate"
docker compose exec -T php php bin/console doctrine:migrations:migrate --no-interaction --env=prod

# 5. Vidage du cache Symfony
echo "==> cache:clear"
docker compose exec -T php php bin/console cache:clear --env=prod --no-warmup
docker compose exec -T php php bin/console cache:warmup --env=prod

# 6. Redémarrage des conteneurs si la config Docker a changé
echo "==> docker compose up -d"
docker compose up -d --remove-orphans

echo "==> Déploiement terminé."
