#!/bin/bash

# Farben für Output
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color

echo -e "${GREEN}Rezepte Klaus - Docker Build & Deploy Script${NC}"
echo "=================================================="

# Überprüfe ob Docker läuft
if ! docker info > /dev/null 2>&1; then
    echo -e "${RED}❌ Docker ist nicht verfügbar. Bitte starte Docker Desktop.${NC}"
    exit 1
fi

# Environment-Datei kopieren
if [ ! -f .env ]; then
    echo -e "${YELLOW}📝 Kopiere .env.docker zu .env${NC}"
    cp .env.docker .env
else
    echo -e "${GREEN}✅ .env Datei bereits vorhanden${NC}"
fi

# Erstelle Upload-Ordner falls nicht vorhanden
echo -e "${YELLOW}📁 Erstelle Upload-Ordner...${NC}"
mkdir -p docker-data/uploads
mkdir -p docker-data/mysql

# Legacy Uploads kopieren falls vorhanden
if [ -d "upload" ]; then
    echo -e "${YELLOW}📋 Kopiere bestehende Uploads...${NC}"
    cp -r upload/* docker-data/uploads/ 2>/dev/null || true
fi

# Stoppe eventuell laufende Container
echo -e "${YELLOW}🛑 Stoppe laufende Container...${NC}"
docker-compose -f docker-compose.modern.yml down

# Entferne alte Images (optional - auskommentiert)
# echo -e "${YELLOW}🗑️  Entferne alte Images...${NC}"
# docker-compose -f docker-compose.modern.yml down --rmi all

# Build alle Services
echo -e "${YELLOW}🔨 Baue alle Services...${NC}"
docker-compose -f docker-compose.modern.yml build --no-cache

# Starte Services
echo -e "${YELLOW}🚀 Starte alle Services...${NC}"
docker-compose -f docker-compose.modern.yml up -d

# Warte auf MySQL
echo -e "${YELLOW}⏳ Warte auf MySQL...${NC}"
until docker-compose -f docker-compose.modern.yml exec mysql mysqladmin ping -h"localhost" --silent; do
    echo -n "."
    sleep 2
done

echo -e "${GREEN}✅ MySQL ist bereit${NC}"

# Führe Database Migrations aus
echo -e "${YELLOW}🗃️  Führe Database Migrations aus...${NC}"
docker-compose -f docker-compose.modern.yml exec backend npx prisma migrate deploy || true
docker-compose -f docker-compose.modern.yml exec backend npx prisma generate || true

# Zeige Container Status
echo -e "${GREEN}📊 Container Status:${NC}"
docker-compose -f docker-compose.modern.yml ps

echo ""
echo -e "${GREEN}🎉 Deployment erfolgreich!${NC}"
echo ""
echo "Verfügbare Services:"
echo -e "🌐 Frontend:     ${GREEN}http://localhost:3000${NC}"
echo -e "🔧 Backend API:  ${GREEN}http://localhost:3001${NC}"
echo -e "🗃️  phpMyAdmin:   ${GREEN}http://localhost:8080${NC}"
echo -e "📁 Legacy PHP:   ${GREEN}http://localhost:8090${NC} (optional)"
echo ""
echo "Nützliche Commands:"
echo "  docker-compose -f docker-compose.modern.yml logs -f        # Logs anzeigen"
echo "  docker-compose -f docker-compose.modern.yml down          # Services stoppen"
echo "  docker-compose -f docker-compose.modern.yml exec backend bash  # Backend Shell"
echo ""