#!/bin/bash

# Atlas Production Deployment Script
# Deploys Atlas to adampowell.pro/atlas

set -e

echo "🚀 Atlas Production Deployment"
echo "================================"
echo ""

# Step 1: Upload Atlas to server
echo "📤 Step 1: Uploading Atlas files..."
rsync -avz --exclude 'node_modules' --exclude '.env' --exclude 'data' --exclude 'deployment' \
  /var/www/adampowell.pro/Atlas/ \
  /var/www/adampowell.pro/Atlas/

echo "✓ Files uploaded"
echo ""

# Step 2: Create .env file
echo "📝 Step 2: Creating production .env file..."
cat > /var/www/adampowell.pro/Atlas/broker/.env << 'EOF'
# Broker Server Configuration - PRODUCTION

# OpenAI API Key (REQUIRED for voice features)
OPENAI_API_KEY=REPLACE_WITH_YOUR_OPENAI_KEY

# JWT Secrets (random 32+ character strings)
JWT_SECRET=atlas_jwt_secret_$(openssl rand -hex 16)
PAIRING_SECRET=atlas_pairing_secret_$(openssl rand -hex 16)

# Server Configuration
PORT=3003

# Data Directory
DATA_DIR=/var/www/adampowell.pro/Atlas/data

# Environment
NODE_ENV=production
EOF

echo "⚠️  IMPORTANT: Edit /var/www/adampowell.pro/Atlas/broker/.env and add your OPENAI_API_KEY"
echo ""

# Step 3: Install dependencies
echo "📦 Step 3: Installing dependencies..."
cd /var/www/adampowell.pro/Atlas/broker
npm install --production

echo "✓ Dependencies installed"
echo ""

# Step 4: Create data directory
echo "📁 Step 4: Creating data directory..."
mkdir -p /var/www/adampowell.pro/Atlas/data
chmod 755 /var/www/adampowell.pro/Atlas/data

echo "✓ Data directory created"
echo ""

# Step 5: Install systemd service
echo "⚙️  Step 5: Installing systemd service..."
cp /var/www/adampowell.pro/Atlas/deployment/atlas.service /etc/systemd/system/atlas.service
systemctl daemon-reload
systemctl enable atlas

echo "✓ Systemd service installed"
echo ""

# Step 6: Add nginx configuration
echo "🌐 Step 6: Updating nginx configuration..."

# Backup existing nginx config
cp /etc/nginx/sites-available/adampowell.pro /etc/nginx/sites-available/adampowell.pro.backup.$(date +%Y%m%d_%H%M%S)

# Add Atlas configuration before the closing brace of the server block
sed -i '/^}/d' /etc/nginx/sites-available/adampowell.pro
cat /var/www/adampowell.pro/Atlas/deployment/nginx-atlas.conf >> /etc/nginx/sites-available/adampowell.pro
echo "}" >> /etc/nginx/sites-available/adampowell.pro

# Test nginx configuration
nginx -t

echo "✓ Nginx configuration updated"
echo ""

# Step 7: Reload nginx
echo "🔄 Step 7: Reloading nginx..."
systemctl reload nginx

echo "✓ Nginx reloaded"
echo ""

# Step 8: Start Atlas service
echo "🟢 Step 8: Starting Atlas service..."
systemctl start atlas

echo "✓ Atlas service started"
echo ""

# Step 9: Check status
echo "📊 Step 9: Checking service status..."
systemctl status atlas --no-pager -l

echo ""
echo "================================"
echo "✅ Deployment Complete!"
echo ""
echo "📱 Access Atlas at: https://adampowell.pro/atlas"
echo ""
echo "⚠️  NEXT STEPS:"
echo "1. Edit /var/www/adampowell.pro/Atlas/broker/.env and add your OPENAI_API_KEY"
echo "2. Restart Atlas: systemctl restart atlas"
echo "3. Test on iPhone: https://adampowell.pro/atlas"
echo "4. Install as PWA (Share > Add to Home Screen)"
echo ""
echo "📝 View logs: journalctl -u atlas -f"
echo "🔄 Restart: systemctl restart atlas"
echo "📊 Status: systemctl status atlas"
echo ""
