build_image_dev:
  stage: build
  image: docker:latest
  services:
    - docker:dind
  script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
    - docker build -t $CI_REGISTRY_IMAGE .
    - docker push $CI_REGISTRY_IMAGE
  only:
    - dev
  # rules:
  #   - changes:
  #     - Dockerfile

unit_tests:
  image: $CI_REGISTRY_IMAGE
  stage: test
  script:
    - phpunit
  only:
    - dev

deploy to OVH dev:
  image: $CI_REGISTRY_IMAGE
  stage: deploy
  only:
    - dev #pas oublier de changer ça quand tu va merge tu met main et pas prod
  before_script:
    - mkdir -p ~/.ssh
    - ssh-keyscan -H $ssh_host >> ~/.ssh/known_hosts
  script:
    - |
      sshpass -p "$ssh_password" ssh $ssh_user@$ssh_host bash << EOF
        set -e  # Arrêter en cas d'erreur
        
        # Vérifier si le dossier dev existe ET est un repo Git
        if [ ! -d "$path_push_dev" ] || [ ! -d "$path_push_dev/.git" ]; then
          echo "📁 Création/suppression du dossier et clone du dépôt..."
          # Supprimer le dossier s'il existe mais n'est pas un repo Git
          if [ -d "$path_push_dev" ]; then
            echo "⚠️  Le dossier existe mais n'est pas un repo Git, suppression..."
            rm -rf $path_push_dev
          fi
          mkdir -p \$(dirname $path_push_dev)
          # Clone avec authentification via token GitLab
          git clone -b dev https://oauth2:$GITLAB_TOKEN@gitlab.com/olcv/crm-gaultmillau.git $path_push_dev
          cd $path_push_dev
          echo "✅ Clone terminé avec succès !"
        else
          echo "📂 Dossier existe et est un repo Git, mise à jour..."
          cd $path_push_dev
          git fetch --all
          git checkout dev
          git pull origin dev
          echo "✅ Mise à jour terminée !"
        fi
        
        # Vérifier et copier composer.phar si nécessaire
        if [ ! -f composer.phar ]; then
          echo "📦 Recherche de composer.phar..."
          # Essayer de copier depuis la prod
          if [ -f "$path_push/composer.phar" ]; then
            cp $path_push/composer.phar .
            echo "✅ composer.phar copié depuis la prod"
          elif [ -f ~/composer.phar ]; then
            cp ~/composer.phar .
            echo "✅ composer.phar copié depuis ~/"
          else
            echo "⚠️  composer.phar non trouvé, téléchargement..."
            curl -sS https://getcomposer.org/installer | php
            mv composer.phar composer.phar 2>/dev/null || true
          fi
        fi
        
        # Mise à jour Composer
        echo "📦 Mise à jour des dépendances Composer..."
        if [ -f composer.phar ]; then
          php composer.phar self-update 2>/dev/null || true
          php composer.phar update phpmailer/phpmailer --no-dev --optimize-autoloader 2>/dev/null || true
        else
          echo "⚠️  composer.phar non disponible, passage de cette étape"
        fi
        
        # Créer le dossier upload pour les PDFs
        echo "📁 Configuration du dossier upload..."
        mkdir -p www/crm-olcv/upload
        chmod -R 777 www/crm-olcv/upload
        echo "✅ Dossier upload configuré !"
        
        echo "✅ Déploiement terminé avec succès !"
      EOF
  after_script:
    - rm -rf ~/.ssh
  needs:
    - job: unit_tests