#!/bin/bash
# IC3 Production Deploy Script
# Usage: ./deploy.sh
# Run on server after: ssh -i "ic3.pem" ubuntu@65.1.130.121

set -e

IC3_DIR="$(cd "$(dirname "$0")" && pwd)"
BACKEND_DIR="$IC3_DIR/backend"
FRONTEND_DIR="$IC3_DIR/frontend"

echo "=========================================="
echo "  IC3 Deploy — $(date '+%Y-%m-%d %H:%M:%S')"
echo "=========================================="

# ── 1. Pull latest code ────────────────────────────────────────────────────
echo ""
echo "[1/4] Pulling latest code..."
git -C "$IC3_DIR" pull origin main
echo "  ✓ Code updated"

# ── 2. Build frontend ─────────────────────────────────────────────────────
echo ""
echo "[2/4] Building frontend..."
cd "$FRONTEND_DIR"
npm install --silent
npm run build
echo "  ✓ Frontend built → dist/"

# ── 3. Build backend ──────────────────────────────────────────────────────
echo ""
echo "[3/4] Building backend..."
cd "$BACKEND_DIR"
go build -o ic3-backend .
echo "  ✓ Backend compiled → ic3-backend"

# ── 4. Restart backend ────────────────────────────────────────────────────
echo ""
echo "[4/4] Restarting backend..."

# Kill existing backend
pkill -f ic3-backend 2>/dev/null || true
sleep 1

# Start backend (migrations run automatically on startup)
DATABASE_URL="${DATABASE_URL:-postgresql://postgres:123456@localhost:5432/ic3?sslmode=disable}" \
  nohup "$BACKEND_DIR/ic3-backend" \
  > "$IC3_DIR/backend.log" \
  2> "$IC3_DIR/backend-err.log" &

sleep 3

# Verify it started
if curl -s http://localhost:9090/api/stats > /dev/null 2>&1; then
  echo "  ✓ Backend running on :9090"
else
  echo "  ⚠ Backend may still be starting — check backend.log"
fi

echo ""
echo "=========================================="
echo "  Deploy complete!"
echo "  Frontend: dist/ (serve with nginx)"
echo "  Backend:  http://localhost:9090"
echo "  Logs:     backend.log / backend-err.log"
echo "=========================================="
