# THIS IS ONLY FOR DEVELOPMENT
# DO NOT USE THIS IN PRODUCTION YET
#!/bin/bash

# =====================================================
# 🚀 Laravel + MySQL Fresh Install Script (Docker)
# =====================================================
# This script assumes:
# - Your docker-compose.yml is in the same directory
# - Service names: ziad-laravel-template-php (Laravel app) and ziad_db (MySQL)
# - You have a freshisntall.sql file in ./dumps/freshinstall.sql
# - You want to perform a clean Laravel environment setup
# =====================================================

# Stop on first error
set -e

echo "🧹 Cleaning up old containers and volumes..."
docker compose down -v --remove-orphans

echo "🐳 Starting up new containers..."
docker compose up -d --build

echo "⏳ Waiting for MySQL to be ready..."
# Wait for DB to accept connections
until docker exec ziad-laravel-template-db mysqladmin ping -h "localhost" --silent; do
  sleep 2
  echo "  → still waiting for database..."
done

echo "✅ Database is ready."

docker exec ziad-laravel-template-db echo "✅ DB checked."

echo "🧰 Running Laravel setup..."
docker exec ziad-laravel-template-php sh -c "
  cd /var/www/html && \
  composer install && \
  php artisan key:generate && \
  php artisan migrate:fresh && \
  php artisan config:cache && \
  php artisan route:cache
"

echo "✅ Laravel setup complete!"

# =====================================================
# Run SQL import (freshinstall.sql)
# =====================================================
if [ -f "./dumps/fresh-install.sql" ]; then
  echo "📦 Importing fresh-install.sql..."
  docker exec -i ziad-laravel-template-db \
    mysql -u root -proot ziad_laravel_template <./dumps/fresh-install.sql
  echo "✅ freshinstall.sql imported successfully."
else
  echo "⚠️  ./dumps/freshinstall.sql not found! Skipping import."
fi

# =====================================================
# Permissions
# =====================================================
echo "🔐 Fixing storage permissions..."
docker exec ziad-laravel-template-php sh -c "
  chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache && \
  chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache
"

echo "✅ Permissions fixed."

# =====================================================
# Finished
# =====================================================
echo "🎉 Fresh install completed successfully!"
echo "You can now access the app at http://localhost:8001"
