#!/bin/bash

# SingleChat Installation Script
# Dieses Skript installiert die SingleChat-Anwendung für Production

set -e  # Beende bei Fehlern

echo "=========================================="
echo "SingleChat Installation"
echo "=========================================="

# Prüfe ob Node.js installiert ist
if ! command -v node &> /dev/null; then
    echo "FEHLER: Node.js ist nicht installiert!"
    echo "Bitte installiere Node.js (Version 18 oder höher)"
    exit 1
fi

NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
if [ "$NODE_VERSION" -lt 18 ]; then
    echo "FEHLER: Node.js Version 18 oder höher erforderlich!"
    echo "Aktuelle Version: $(node -v)"
    exit 1
fi

echo "✓ Node.js Version: $(node -v)"

# Installiere Dependencies
echo ""
echo "Installiere Dependencies..."
npm run install:all

if [ $? -ne 0 ]; then
    echo "FEHLER: Installation der Dependencies fehlgeschlagen!"
    exit 1
fi

echo "✓ Dependencies installiert"

# Baue Client
echo ""
echo "Baue Client für Production..."
npm run build

if [ $? -ne 0 ]; then
    echo "FEHLER: Build fehlgeschlagen!"
    exit 1
fi

echo "✓ Client gebaut"

# Kopiere dist nach docroot
echo ""
echo "Kopiere gebaute Dateien nach docroot..."
if [ -d "docroot/dist" ]; then
    rm -rf docroot/dist
fi
cp -r client/dist docroot/

echo "✓ Dateien kopiert"

# Erstelle .env Datei falls nicht vorhanden
if [ ! -f ".env" ]; then
    echo ""
    echo "Erstelle .env Datei..."
    cat > .env << EOF
NODE_ENV=production
PORT=4000
SESSION_SECRET=$(openssl rand -hex 32)
EOF
    echo "✓ .env Datei erstellt"
    echo "WICHTIG: Bitte ändere SESSION_SECRET in .env!"
else
    echo "✓ .env Datei existiert bereits"
fi

# Prüfe ob systemd Service existiert
echo ""
echo "=========================================="
echo "Installation abgeschlossen!"
echo "=========================================="
echo ""
echo "Nächste Schritte:"
echo "1. Überprüfe die .env Datei und passe SESSION_SECRET an"
echo "2. Stelle sicher, dass Apache korrekt konfiguriert ist"
echo "3. Starte den Server mit: npm run start:prod"
echo "   oder als systemd Service (siehe install-service.sh)"
echo ""
echo "Apache-Konfiguration sollte enthalten:"
echo "  ProxyPass / http://localhost:4000/"
echo "  ProxyPassReverse / http://localhost:4000/"
echo ""

