#!/bin/bash

# cPanel Deployment Script for PropTrader Pro
# Usage: ./cpanel-deploy.sh [domain] [cpanel_user] [database_name] [database_user] [database_password]

DOMAIN=${1:-your-domain.com}
CPANEL_USER=${2:-username}
DB_NAME=${3:-proptrader_db}
DB_USER=${4:-proptrader_user}
DB_PASS=${5:-database_password}

echo "=== PropTrader Pro cPanel Deployment ==="
echo "Domain: $DOMAIN"
echo "cPanel User: $CPANEL_USER"
echo "Database: $DB_NAME"
echo "=========================================="

# Create production environment file
echo "Creating production environment file..."
cp .env.example .env.production

# Update environment variables
sed -i "s/APP_ENV=local/APP_ENV=production/g" .env.production
sed -i "s/APP_DEBUG=true/APP_DEBUG=false/g" .env.production
sed -i "s|APP_URL=http://localhost|APP_URL=https://$DOMAIN|g" .env.production
sed -i "s/DB_DATABASE=laravel/DB_DATABASE=$DB_NAME/g" .env.production
sed -i "s/DB_USERNAME=root/DB_USERNAME=$DB_USER/g" .env.production
sed -i "s/DB_PASSWORD=/DB_PASSWORD=$DB_PASS/g" .env.production
sed -i "s/SESSION_DRIVER=database/SESSION_DRIVER=file/g" .env.production

# Generate application key
echo "Generating application key..."
php artisan key:generate --env=production --force

# Clear and cache configuration
echo "Optimizing application..."
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear

php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan optimize

# Create deployment package
echo "Creating deployment package..."
tar -czf proptrader-deploy.tar.gz \
    --exclude='.git' \
    --exclude='node_modules' \
    --exclude='vendor' \
    --exclude='.env' \
    --exclude='storage/logs/*' \
    --exclude='storage/framework/cache/*' \
    --exclude='storage/framework/sessions/*' \
    --exclude='storage/framework/views/*' \
    --exclude='bootstrap/cache/*' \
    .

echo "Deployment package created: proptrader-deploy.tar.gz"

# Create upload instructions
cat > upload-instructions.txt << EOF
=== Upload Instructions for cPanel ===

1. Login to cPanel at: https://$DOMAIN:2083
2. Go to File Manager
3. Navigate to public_html/
4. Upload proptrader-deploy.tar.gz
5. Extract the archive
6. Rename .env.production to .env
7. Set permissions:
   - storage/ and bootstrap/cache/ - 755
   - All other files - 644
8. Create database:
   - Go to MySQL Databases
   - Create database: $DB_NAME
   - Create user: $DB_USER with password: $DB_PASS
   - Assign user to database with all privileges
9. Install dependencies:
   - Go to Terminal or use SSH
   - Run: composer install --no-dev --optimize-autoloader
10. Run migrations:
    - php artisan migrate --force
11. Create storage link:
    - php artisan storage:link
12. Set up cron job:
    - Go to Cron Jobs
    - Add: * * * * * /usr/bin/php /home/$CPANEL_USER/public_html/artisan schedule:run >> /dev/null 2>&1

13. Test the application at: https://$DOMAIN

=== Database Credentials ===
Database Name: $DB_NAME
Database User: $DB_USER
Database Password: $DB_PASS

Keep this information secure!
EOF

echo "Deployment package and instructions created!"
echo "Files created:"
echo "  - proptrader-deploy.tar.gz (deployment package)"
echo "  - upload-instructions.txt (step-by-step guide)"
echo ""
echo "Next steps:"
echo "1. Upload proptrader-deploy.tar.gz to your cPanel"
echo "2. Follow upload-instructions.txt"
echo "3. Test your application at https://$DOMAIN"
