#!/bin/bash

# Script pour corriger les permissions en production
# Usage: ./fix-permissions.sh

set -e

echo "🔧 Correction des permissions..."

# Vérifier si on est dans le bon répertoire
if [ ! -f "artisan" ]; then
    echo "❌ Le fichier artisan n'est pas trouvé. Assurez-vous d'être dans le répertoire racine du projet Laravel."
    exit 1
fi

echo "📁 Configuration des permissions pour les répertoires..."

# Permissions pour storage et bootstrap/cache
echo "  - Configuration de storage/"
chmod -R 775 storage
chmod -R 775 bootstrap/cache

# Si on est sur un serveur web, changer le propriétaire
if [ "$(whoami)" = "root" ] || [ "$(whoami)" = "www-data" ]; then
    echo "  - Configuration du propriétaire..."
    chown -R www-data:www-data storage
    chown -R www-data:www-data bootstrap/cache
    echo "✅ Propriétaire configuré (www-data)"
else
    echo "⚠️  Vous n'êtes pas root/www-data. Les permissions peuvent ne pas être optimales."
fi

# Permissions spécifiques pour les sous-répertoires
echo "  - Permissions spécifiques..."
chmod -R 775 storage/app
chmod -R 775 storage/framework
chmod -R 775 storage/logs

# Créer les répertoires s'ils n'existent pas
echo "  - Création des répertoires manquants..."
mkdir -p storage/framework/cache
mkdir -p storage/framework/sessions
mkdir -p storage/framework/views
mkdir -p storage/logs
mkdir -p bootstrap/cache

# Permissions finales
chmod -R 775 storage/framework/cache
chmod -R 775 storage/framework/sessions
chmod -R 775 storage/framework/views
chmod -R 775 storage/logs
chmod -R 775 bootstrap/cache

echo "✅ Permissions configurées avec succès !"

echo ""
echo "🧹 Nettoyage des caches..."
php artisan config:clear
php artisan cache:clear
php artisan view:clear
php artisan route:clear

echo ""
echo "🎯 Test des permissions..."
php artisan config:cache
php artisan view:cache

echo ""
echo "🎉 Permissions corrigées et testées !"
echo "📋 Votre application devrait maintenant fonctionner correctement"
