#!/bin/bash
# PMEPro — Script de construction automatique du projet avec vendor/
# À exécuter sur un serveur/local avec PHP >= 8.1 et accès internet

set -e

echo "========================================"
echo "  PMEPro — Construction avec vendor/"
echo "========================================"

echo "[1/6] Vérification de PHP..."
if ! command -v php &> /dev/null; then
    echo "ERREUR : PHP n'est pas installé. Installez PHP >= 8.1."
    exit 1
fi
php_version=$(php -r 'echo PHP_VERSION;')
echo "PHP détecté : $php_version"

if [[ $(echo "$php_version" | cut -d. -f1-2) < "8.1" ]]; then
    echo "ERREUR : PHP >= 8.1 requis"
    exit 1
fi

echo ""
echo "[2/6] Vérification/Installation de Composer..."
if [ ! -f "composer.phar" ]; then
    echo "Téléchargement de composer..."
    curl -sS https://getcomposer.org/installer | php -- --install-dir=. --filename=composer.phar --quiet
fi

echo ""
echo "[3/6] Installation des dépendances (vendor/)..."
php composer.phar install --no-dev --optimize-autoloader --no-interaction || php composer.phar install --optimize-autoloader --no-interaction

echo ""
echo "[4/6] Configuration de l'environnement..."
if [ ! -f ".env" ]; then
    cp .env.example .env
fi
php composer.phar run-script post-autoload-dump --quiet 2>/dev/null || true
php artisan key:generate --ansi || true

echo ""
echo "[5/6] Migration et seed de la base..."
php artisan migrate --force --seed --no-interaction || echo "Note : la migration a peut-être échoué (base non configurée). Configurez .env et réexécutez."

echo ""
echo "[6/6] Mise en cache..."
php artisan config:cache --quiet || true
php artisan route:cache --quiet || true
php artisan view:cache --quiet || true

echo ""
echo "========================================"
echo "  CONSTRUCTION TERMINÉE"
echo "========================================"
echo "Le dossier vendor/ est maintenant présent"
echo "Archive prête pour upload cPanel : $(du -sh . | cut -f1)"
echo "Pour créer le zip final : zip -r pmepro_final.zip pmepro/ -x 'pmepro/vendor/*' (si vous voulez exclure vendor du zip source)"
echo "OU : zip -r pmepro_complete.zip pmepro/ (avec vendor inclus)"
echo ""
echo "Identifiants test : admin@pmepro.demo / password"
