#!/bin/bash
# Script zum Bauen und Exportieren für Coolify (ohne Git/Accounts)

echo "🚀 HyggeCraftery - Build & Export Script"
echo "========================================"
echo ""

# Flutter-Pfad finden
FLUTTER_PATH=""
if command -v flutter &> /dev/null; then
    FLUTTER_PATH="flutter"
    echo "✅ Flutter gefunden im PATH"
else
    # Typische Flutter-Installationspfade prüfen
    POSSIBLE_PATHS=(
        "$HOME/develop/flutter/bin/flutter"
        "$HOME/flutter/bin/flutter"
        "$HOME/.flutter/bin/flutter"
        "/usr/local/flutter/bin/flutter"
        "/opt/flutter/bin/flutter"
    )
    
    for path in "${POSSIBLE_PATHS[@]}"; do
        if [ -f "$path" ]; then
            FLUTTER_PATH="$path"
            echo "✅ Flutter gefunden: $path"
            # PATH für diese Session erweitern
            export PATH="$(dirname "$path"):$PATH"
            break
        fi
    done
    
    if [ -z "$FLUTTER_PATH" ]; then
        echo "❌ Flutter ist nicht installiert oder nicht im PATH!"
        echo "   Installiere Flutter: https://flutter.dev/docs/get-started/install"
        echo "   Oder setze den PATH: export PATH=\"\$HOME/develop/flutter/bin:\$PATH\""
        exit 1
    fi
fi

# Prüfe ob Docker installiert ist (optional)
HAS_DOCKER=false
if command -v docker &> /dev/null; then
    HAS_DOCKER=true
    echo "✅ Docker gefunden"
else
    echo "⚠️  Docker nicht gefunden (optional für Docker Image Export)"
fi

echo ""
echo "📦 Schritt 1: Flutter Dependencies installieren..."
$FLUTTER_PATH pub get

if [ $? -ne 0 ]; then
    echo "❌ Fehler beim Installieren der Dependencies!"
    exit 1
fi

echo ""
echo "📦 Schritt 2: Flutter Web Build..."
$FLUTTER_PATH build web --release

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

echo ""
echo "✅ Flutter Build abgeschlossen!"
echo "📁 Build-Ordner: build/web"
echo ""

# Option 1: Deployment-Archiv erstellen
echo "📦 Schritt 3: Erstelle Deployment-Archiv..."
tar -czf deploy.tar.gz \
  pubspec.yaml \
  lib/ \
  android/ \
  ios/ \
  analysis_options.yaml \
  Dockerfile \
  .dockerignore \
  --exclude='build' \
  --exclude='.dart_tool' \
  --exclude='.flutter-plugins' \
  --exclude='.flutter-plugins-dependencies' \
  2>/dev/null

if [ -f "deploy.tar.gz" ]; then
    echo "✅ deploy.tar.gz erstellt ($(du -h deploy.tar.gz | cut -f1))"
else
    echo "⚠️  Konnte deploy.tar.gz nicht erstellen"
fi

# Option 2: Docker Image bauen (falls Docker verfügbar)
if [ "$HAS_DOCKER" = true ]; then
    echo ""
    echo "🐳 Schritt 4: Docker Image bauen..."
    docker build -t hyggecraftery-app:latest . 2>&1 | tail -5
    
    if [ $? -eq 0 ]; then
        echo "✅ Docker Image gebaut: hyggecraftery-app:latest"
        
        echo ""
        echo "💾 Möchtest du das Image als tar-Datei exportieren? (j/n)"
        read -r EXPORT_IMAGE
        
        if [ "$EXPORT_IMAGE" = "j" ] || [ "$EXPORT_IMAGE" = "J" ] || [ "$EXPORT_IMAGE" = "y" ] || [ "$EXPORT_IMAGE" = "Y" ]; then
            echo "📦 Exportiere Docker Image..."
            docker save hyggecraftery-app:latest -o hyggecraftery-app.tar
            if [ -f "hyggecraftery-app.tar" ]; then
                echo "✅ hyggecraftery-app.tar erstellt ($(du -h hyggecraftery-app.tar | cut -f1))"
            fi
        fi
    else
        echo "⚠️  Docker Build fehlgeschlagen (nicht kritisch)"
    fi
fi

echo ""
echo "========================================"
echo "✅ Fertig!"
echo ""
echo "📦 Erstellte Dateien:"
echo "   - build/web/          (Flutter Web Build)"
if [ -f "deploy.tar.gz" ]; then
    echo "   - deploy.tar.gz       (Deployment-Archiv)"
fi
if [ -f "hyggecraftery-app.tar" ]; then
    echo "   - hyggecraftery-app.tar (Docker Image)"
fi
echo ""
echo "📋 Nächste Schritte:"
echo "   1. Öffne Coolify im Browser"
echo "   2. Neue Resource → Application"
echo "   3. Wähle eine Upload-Option"
echo "   4. Lade die Dateien hoch"
echo ""
echo "📖 Siehe DEPLOY_SCHRITT_FUER_SCHRITT.md für Details"

