#!/bin/bash

# Laravel Production Deployment Script
# Usage: ./deploy.sh

echo "🚀 Building Laravel application for production..."

# Exit on any error
set -e

# Build frontend assets
echo "📦 Building frontend assets..."
npm ci --production=false
npm run build

# Install PHP dependencies (production only)
echo "🔧 Installing PHP dependencies..."
composer install --no-dev --optimize-autoloader --no-interaction

# Clear existing caches
echo "🧹 Clearing caches..."
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan cache:clear

# Cache everything for production
echo "⚡ Caching for production..."
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache

# Create production .env file
echo "⚙️  Creating production .env file..."
cat > .env.production << 'EOF'
APP_NAME="Musical Marketplace"
APP_ENV=production
APP_KEY=base64:FiC0KpZywsGxm+gtszP8hCAohaZIoLS+zRV8ipM4kLU=
APP_DEBUG=false
APP_TIMEZONE=UTC
APP_URL=https://xeek.com

APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US

APP_MAINTENANCE_DRIVER=file
APP_MAINTENANCE_STORE=database

BCRYPT_ROUNDS=12

LOG_CHANNEL=stack
LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=error

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=metajack_market
DB_USERNAME=mjack
DB_PASSWORD=NnBSN9i2xUKg

SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=null

BROADCAST_CONNECTION=log
FILESYSTEM_DISK=local
QUEUE_CONNECTION=database

CACHE_STORE=database
CACHE_PREFIX=

MEMCACHED_HOST=127.0.0.1

REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=log
MAIL_HOST=127.0.0.1
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

VITE_APP_NAME="${APP_NAME}"
EOF

# Set proper permissions
echo "🔐 Setting permissions..."
chmod -R 755 storage bootstrap/cache
chmod -R 775 storage/logs storage/framework

echo "✅ Build complete! Ready for deployment."
echo ""
echo "📂 Files to sync:"
echo "   - All files except: node_modules/, .git/, .env"
echo "   - .env.production file created for server use"
echo "   - Make sure to:"
echo "     1. Rename .env.production to .env on server"
echo "     2. Run '/usr/local/bin/php8.2 artisan migrate' on server"
echo ""