#!/bin/bash
# Early Hardware Validation für 25% Entwicklungsstand
# Ziel: Architektur-Probleme früh erkennen, nicht Volltest

echo "🧪 Infoscreen Early Hardware Validation"
echo "======================================"
echo "Entwicklungsstand: ~25-30%"
echo "Ziel: Basis-Deployment + Performance-Baseline"
echo ""

# Phase 1: Quick-Setup (30 Min)
echo "📦 Phase 1: Container-Setup-Test"
echo "- Docker-Compose startet alle Services?"
echo "- Health-Checks werden grün?"
echo "- Ports sind erreichbar?"
echo ""

# Phase 2: Connectivity-Test (1 Stunde)
echo "🌐 Phase 2: Service-Kommunikation"
echo "- Database-Connection vom Server?"
echo "- MQTT-Broker empfängt Messages?"
echo "- Nginx routet zu Services?"
echo "- API-Grundendpoints antworten?"
echo ""

# Phase 3: Performance-Baseline (2 Stunden)
echo "📊 Phase 3: Performance-Snapshot"
echo "- Memory-Verbrauch pro Container"
echo "- CPU-Usage im Idle"
echo "- Startup-Zeiten messen"
echo "- Network-Latency zwischen Services"
echo ""

# Phase 4: Basic Load-Test (4 Stunden)
echo "🔥 Phase 4: Basis-Belastungstest"
echo "- 10 parallele API-Requests"
echo "- 1000 MQTT-Messages senden"
echo "- Database-Insert-Performance"
echo "- Memory-Leak-Check (1h Laufzeit)"
echo ""

# Test-Checklist erstellen
cat > early-validation-checklist.md << 'EOF'
# Early Hardware Validation Checklist

## ✅ Container-Setup
- [ ] `docker compose up -d` erfolgreich
- [ ] Alle Services zeigen "healthy" Status
- [ ] Keine Error-Logs in den ersten 5 Minuten
- [ ] Ports 80, 8000, 3306, 1883 erreichbar

## ✅ Service-Kommunikation
- [ ] Server kann zu Database verbinden
- [ ] MQTT-Test-Message wird empfangen
- [ ] Nginx zeigt Service-Status-Page
- [ ] API-Health-Endpoint antwortet (200 OK)

## ✅ Performance-Baseline
- [ ] Total Memory < 4GB bei Idle
- [ ] CPU-Usage < 10% bei Idle
- [ ] Container-Startup < 60s
- [ ] API-Response-Time < 500ms

## ✅ Basic-Load-Test
- [ ] 10 parallele Requests ohne Errors
- [ ] 1000 MQTT-Messages ohne Message-Loss
- [ ] Memory-Usage stabil über 1h
- [ ] Keine Container-Restarts

## 📊 Baseline-Metriken (dokumentieren)
- Memory pro Container: ___MB
- CPU-Usage bei Load: ___%
- API-Response-Time: ___ms
- Database-Query-Time: ___ms
- Container-Startup-Zeit: ___s

## 🚨 Gefundene Probleme
- [ ] Performance-Bottlenecks: ____________
- [ ] Memory-Issues: ____________________
- [ ] Network-Probleme: _________________
- [ ] Container-Probleme: _______________

## ✅ Architektur-Validierung
- [ ] Container-Orchestrierung funktioniert
- [ ] Service-Discovery läuft
- [ ] Volume-Mounting korrekt
- [ ] Environment-Variables werden geladen
- [ ] Health-Checks sind aussagekräftig
EOF

echo "✅ Early Validation Checklist erstellt: early-validation-checklist.md"
echo ""
echo "🎯 Erwartetes Ergebnis:"
echo "- Architektur-Probleme identifiziert"
echo "- Performance-Baseline dokumentiert"
echo "- Deployment-Prozess validiert"
echo "- Basis für spätere Tests gelegt"
echo ""
echo "⏰ Geschätzter Aufwand: 8-12 Stunden über 2-3 Tage"
echo "💰 ROI: Verhindert teure Architektur-Änderungen später"
