#!/bin/bash

# Installation Script für MYP Backend

echo "=== MYP Backend Installation ==="
echo ""

# Prüfe Python-Version
python_version=$(python3 --version 2>&1 | awk '{print $2}')
echo "Python-Version: $python_version"

# Prüfe, ob die Python-Version mindestens 3.8 ist
required_version="3.8.0"
if [[ "$(printf '%s\n' "$required_version" "$python_version" | sort -V | head -n1)" != "$required_version" ]]; then
    echo "FEHLER: Python $required_version oder höher wird benötigt"
    exit 1
fi

# Prüfe, ob sqlite3 installiert ist
if ! command -v sqlite3 &> /dev/null; then
    echo "FEHLER: sqlite3 ist nicht installiert."
    echo "Bitte installiere sqlite3 mit deinem Paketmanager, z.B. 'apt install sqlite3'"
    exit 1
fi

# Erstelle virtuelle Umgebung
echo ""
echo "Erstelle virtuelle Python-Umgebung..."
python3 -m venv venv
source venv/bin/activate

# Installiere Abhängigkeiten
echo ""
echo "Installiere Abhängigkeiten..."
pip install --upgrade pip
pip install -r requirements.txt

# Erstelle .env-Datei
echo ""
echo "Erstelle .env-Datei..."
if [ ! -f .env ]; then
    cp .env.example .env
    echo "Die .env-Datei wurde aus der Beispieldatei erstellt."
    echo "Bitte passe die Konfiguration an, falls nötig."
else
    echo ".env-Datei existiert bereits."
fi

# Erstelle Logs-Ordner
echo ""
echo "Erstelle logs-Ordner..."
mkdir -p logs

# Initialisiere die Datenbank
echo ""
echo "Initialisiere die Datenbank..."
bash initialize_myp_database.sh

echo ""
echo "=== Installation abgeschlossen ==="
echo ""
echo "Wichtige Schritte vor dem Start:"
echo "1. Passe die Konfigurationen in der .env-Datei an"
echo "2. Konfiguriere die Tapo-Steckdosen-Zugangsdaten in der .env-Datei (optional)"
echo "3. Passe die crontab-example an und installiere den Cron-Job (optional)"
echo ""
echo "Starte den Server mit:"
echo "source venv/bin/activate"
echo "python app.py"
echo ""
echo "Oder mit Gunicorn für Produktion:"
echo "gunicorn --bind 0.0.0.0:5000 app:app"
echo ""