#!/bin/sh
# Deployment-Skript für Production Update

echo "🚀 Starte Production Deployment..."

# Prüfe ob wir im deployment/scripts/ Ordner sind und wechsle zur Projekt-Root
if [ "$(basename "$PWD")" = "scripts" ]; then
    cd ../..
elif [ "$(basename "$PWD")" = "deployment" ]; then
    cd ..
fi

# Deployment-Ordner vorbereiten
echo "📁 Erstelle Deployment-Ordner..."
rm -rf deployment/build 2>/dev/null || true
mkdir -p deployment/build/public

# Frontend bauen
echo "📦 Baue Frontend..."
cd frontend

# Temporären Build-Ordner erstellen
echo "📁 Erstelle temporären Build-Ordner..."
rm -rf ../build_temp 2>/dev/null || true
mkdir -p ../build_temp

# Abhängigkeiten installieren (ohne die lokalen node_modules zu überschreiben)
echo "⬇️  Installiere Production Dependencies..."
cp package*.json ../build_temp/
cd ../build_temp
npm ci --production --silent

# Source-Code kopieren (ohne node_modules)
echo "📄 Kopiere Source-Code..."
cd ../frontend
cp -r public src ../build_temp/
cd ../build_temp

# Build erstellen
echo "🔨 Erstelle Production Build..."
npm run build

# Frontend-Build in public-Ordner des Deployments kopieren
echo "📦 Kopiere Frontend-Build ins public-Verzeichnis..."
cp -r build/* ../deployment/build/public/

# Backend-Verzeichnisse in der Root des Deployments erstellen
echo "📄 Kopiere Backend-Dateien mit korrekter Struktur..."
cd ../backend

# Kopiere Backend-Verzeichnisse in die Root des Deployment-Ordners (als komplette Ordner)
cp -r src ../deployment/build/
cp -r storage ../deployment/build/
cp -r vendor ../deployment/build/

# PHP-Dateien aus backend/public in das public-Verzeichnis des Deployments kopieren
cd public
for file in *.php .htaccess .nginx; do
    if [ -f "$file" ]; then
        cp "$file" ../../deployment/build/public/
    fi
done

# area-Ordner in die Root des Deployment-Ordners kopieren
#echo "📁 Kopiere area-Verzeichnis..."
#cd ../..
#cp -r area deployment/build/ 2>/dev/null || true

# Temporären Build-Ordner aufräumen
echo "🧹 Räume temporären Build-Ordner auf..."
cd ../..
rm -rf build_temp

# Rechte setzen
echo "🔒 Setze Dateiberechtigungen..."
chmod -R 755 deployment/build
find deployment/build -type f -name "*.html" -exec chmod 644 {} \;
find deployment/build -type f -name "*.css" -exec chmod 644 {} \;
find deployment/build -type f -name "*.js" -exec chmod 644 {} \;
find deployment/build -type f -name "*.php" -exec chmod 644 {} \;
find deployment/build -type f -name "*.json" -exec chmod 644 {} \;

echo "✅ Production Deployment abgeschlossen!"
echo "🎯 Deployment-ready Dateien sind im 'deployment/build/' Ordner"
echo ""
echo "📋 DEPLOYMENT STRUKTUR:"
echo "   deployment/build/"
echo "   ├── public/          (React App + PHP Entry Points)"
echo "   │   ├── index.html   (React)"
echo "   │   ├── index.php    (PHP Entry Point)"
echo "   │   └── static/      (React Assets)"
echo "   ├── src/             (PHP Backend Code)"
echo "   ├── storage/         (Data Files)"
echo "   ├── vendor/          (PHP Dependencies)"
echo "   └── area/            (Project Data)"
echo ""
echo "📤 Du kannst jetzt den kompletten Inhalt des 'deployment/build/' Ordners auf deinen Webspace hochladen."
