#!/bin/bash

echo "=== YourPart Frontend Deployment ==="

# 1. Zum Frontend-Verzeichnis wechseln
cd frontend

# 2. Berechtigungen für dist-Verzeichnis korrigieren (falls vorhanden)
if [ -d "dist" ]; then
    echo "Korrigiere Berechtigungen für dist-Verzeichnis..."
    sudo chown -R $USER:$USER dist/ 2>/dev/null || true
fi

# 3. Alle generierten Verzeichnisse löschen
echo "Lösche alle generierten Verzeichnisse..."
rm -rf dist/
rm -rf node_modules/.vite/
rm -rf node_modules/.cache/

# 4. Optional: .env.server übernehmen, falls vorhanden (nicht überschreiben, wenn nicht vorhanden)
if [ -f .env.server ]; then
    echo "Nutze .env.server für Build-Defaults..."
    cp .env.server .env
fi

# 5. Frontend neu bauen – VITE_* aus Environment übernehmen oder Defaults setzen
echo "Baue Frontend neu..."
export VITE_API_BASE_URL=${VITE_API_BASE_URL:-https://www.your-part.de}
# Standard: Daemon direkt auf Port 4551, nicht über Apache-Proxy
export VITE_DAEMON_SOCKET=${VITE_DAEMON_SOCKET:-wss://www.your-part.de:4551}
export VITE_CHAT_WS_URL=${VITE_CHAT_WS_URL:-wss://www.your-part.de:1235}

echo "VITE_API_BASE_URL=$VITE_API_BASE_URL"
echo "VITE_DAEMON_SOCKET=$VITE_DAEMON_SOCKET"
echo "VITE_CHAT_WS_URL=$VITE_CHAT_WS_URL"

npm run build

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

echo "✅ Build erfolgreich!"

# 6. Zielverzeichnis erstellen (falls nicht vorhanden)
echo "Erstelle Zielverzeichnis..."
sudo mkdir -p /opt/yourpart/frontend/dist

# 7. Altes Frontend löschen
echo "Lösche altes Frontend..."
sudo rm -rf /opt/yourpart/frontend/dist

# 8. Zielverzeichnis neu erstellen
echo "Erstelle Zielverzeichnis neu..."
sudo mkdir -p /opt/yourpart/frontend/dist

# 9. Neues Frontend kopieren
echo "Kopiere neues Frontend..."
sudo cp -r dist/* /opt/yourpart/frontend/dist/

# 10. (Optional) .env Datei kopieren, falls existiert
if [ -f .env ]; then
  echo "Kopiere .env Datei..."
  sudo cp .env /opt/yourpart/frontend/
fi

# 11. Berechtigungen setzen
echo "Setze Berechtigungen..."
sudo chown -R www-data:www-data /opt/yourpart/frontend/dist
if [ -f /opt/yourpart/frontend/.env ]; then
  sudo chown www-data:www-data /opt/yourpart/frontend/.env
  sudo chmod 644 /opt/yourpart/frontend/.env
fi
sudo chmod -R 755 /opt/yourpart/frontend/dist


# 12. Apache neu laden
echo "Lade Apache neu..."
sudo systemctl reload apache2

echo ""
echo "=== Frontend Deployment abgeschlossen! ==="
echo "✅ Frontend neu gebaut"
echo "✅ Frontend deployt"
echo "✅ Apache neu geladen"
echo ""
echo "Testen Sie jetzt die Anwendung!"
echo "API-Requests sollten jetzt an /api/... gehen statt localhost:3001"
