#!/bin/bash
# ═══════════════════════════════════════════════════════════════
#  Instrument Agency — cPanel Shared Hosting Install Script
#  Run this from your SSH terminal inside the project directory
# ═══════════════════════════════════════════════════════════════

set -e

echo ""
echo "╔══════════════════════════════════════════════════╗"
echo "║   Instrument Agency — Install Script             ║"
echo "╚══════════════════════════════════════════════════╝"
echo ""

# ─── 1. Check PHP version ───────────────────────────
echo "▸ Checking PHP version..."
PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.'.'.PHP_MINOR_VERSION;")
echo "  PHP $PHP_VERSION detected"

if php -r 'exit(version_compare(PHP_VERSION, "8.2.0", "<") ? 1 : 0);'; then
    echo "✓ PHP version OK"
else
    echo "✗ PHP 8.2+ required. Please upgrade PHP in cPanel > MultiPHP Manager."
    exit 1
fi

# ─── 2. Install Composer dependencies ───────────────
echo ""
echo "▸ Installing Composer dependencies..."
if ! command -v composer &> /dev/null; then
    echo "  Downloading Composer..."
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php composer-setup.php --quiet
    rm composer-setup.php
    alias composer='php composer.phar'
    php composer.phar install --no-dev --optimize-autoloader --no-interaction
else
    composer install --no-dev --optimize-autoloader --no-interaction
fi
echo "✓ Composer dependencies installed"

# ─── 3. Copy .env ───────────────────────────────────
echo ""
echo "▸ Setting up .env file..."
if [ ! -f ".env" ]; then
    cp .env.example .env
    echo "✓ .env created from .env.example"
    echo ""
    echo "⚠️  IMPORTANT: Edit .env now and set:"
    echo "   APP_URL=https://yourdomain.com"
    echo "   DB_DATABASE=your_db_name"
    echo "   DB_USERNAME=your_db_user"
    echo "   DB_PASSWORD=your_db_password"
    echo ""
    read -p "Press ENTER when you have updated .env to continue..."
else
    echo "✓ .env already exists"
fi

# ─── 4. Generate app key ────────────────────────────
echo ""
echo "▸ Generating application key..."
php artisan key:generate --no-interaction
echo "✓ App key generated"

# ─── 5. Create storage symlink ──────────────────────
echo ""
echo "▸ Creating storage symlink..."
php artisan storage:link --no-interaction 2>/dev/null || true
echo "✓ Storage symlink created"

# ─── 6. Run migrations ──────────────────────────────
echo ""
echo "▸ Running database migrations..."
php artisan migrate --no-interaction --force
echo "✓ Migrations complete"

# ─── 7. Seed database ───────────────────────────────
echo ""
echo "▸ Seeding database with sample data..."
php artisan db:seed --no-interaction --force
echo "✓ Database seeded"

# ─── 8. Optimize ────────────────────────────────────
echo ""
echo "▸ Optimising application..."
php artisan config:cache --no-interaction
php artisan route:cache --no-interaction
php artisan view:cache --no-interaction
php artisan icons:cache --no-interaction 2>/dev/null || true
php artisan filament:cache-components --no-interaction 2>/dev/null || true
echo "✓ Application optimised"

# ─── 9. Set permissions ─────────────────────────────
echo ""
echo "▸ Setting file permissions..."
chmod -R 755 storage bootstrap/cache
chmod -R 775 storage/app storage/logs
echo "✓ Permissions set"

# ─── Done ───────────────────────────────────────────
echo ""
echo "╔══════════════════════════════════════════════════╗"
echo "║   Installation Complete! 🎉                      ║"
echo "╚══════════════════════════════════════════════════╝"
echo ""
echo "Next steps:"
echo "  1. Point your domain's document root to: /public"
echo "     (In cPanel → Domains → Document Root)"
echo ""
echo "  2. Visit: https://yourdomain.com"
echo "     Admin:  https://yourdomain.com/admin"
echo ""
echo "  Default admin credentials:"
echo "    Email:    admin@instrument.com"
echo "    Password: password"
echo ""
echo "  ⚠️  Change the admin password immediately after first login!"
echo ""
