#!/bin/bash

# Script de déploiement pour LLMbots.fr
# Usage: ./deploy.sh

echo "🚀 Déploiement de LLMbots.fr..."

# Vérifier que Composer est installé
if ! command -v composer &> /dev/null; then
    echo "❌ Composer n'est pas installé"
    exit 1
fi

# Installation des dépendances PHP
echo "📦 Installation des dépendances PHP..."
composer install --optimize-autoloader --no-dev

# Installation des dépendances Node
if command -v npm &> /dev/null; then
    echo "📦 Installation des dépendances Node..."
    npm install
    npm run build
fi

# Configuration des permissions
echo "🔐 Configuration des permissions..."
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache 2>/dev/null || echo "⚠️  Impossible de changer le propriétaire (nécessite sudo)"

# Génération de la clé d'application (si nécessaire)
if [ ! -f .env ]; then
    echo "📝 Copie de .env.example vers .env..."
    cp .env.production.example .env 2>/dev/null || cp .env.example .env
    echo "⚠️  N'oubliez pas de configurer le fichier .env avec vos informations de base de données !"
fi

if ! grep -q "APP_KEY=base64:" .env 2>/dev/null; then
    echo "🔑 Génération de la clé d'application..."
    php artisan key:generate
fi

# Lien symbolique pour le stockage
echo "🔗 Création du lien symbolique pour le stockage..."
php artisan storage:link

# Migration de la base de données (à faire manuellement pour éviter les erreurs)
echo "📊 Vérification des migrations..."
php artisan migrate:status

read -p "Voulez-vous exécuter les migrations maintenant ? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    php artisan migrate --force
fi

# Seeders
read -p "Voulez-vous exécuter les seeders (bots IA) ? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    php artisan db:seed --class=BotSeeder
fi

# Optimisation pour la production
echo "⚡ Optimisation pour la production..."
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache

echo "✅ Déploiement terminé !"
echo ""
echo "📋 Prochaines étapes :"
echo "1. Configurez le fichier .env avec vos informations de base de données"
echo "2. Testez l'application à l'adresse configurée dans APP_URL"
echo "3. Vérifiez les logs dans storage/logs/laravel.log en cas d'erreur"

