#!/bin/bash
# ============================================================
# DOOBAT - Script d'installation PlanetHoster
# Usage : bash scripts/install.sh
# Copyright 2026 Vincent Gallet - Vincesoft
# ============================================================

set -euo pipefail

PYTHON_MIN_VERSION="3.11"
VENV_DIR="venv"
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
PYTHON_BIN=""

echo "============================================================"
echo "  DOOBAT - Installation"
echo "  Répertoire : $PROJECT_DIR"
echo "============================================================"

cd "$PROJECT_DIR"

# ── Vérification Python ────────────────────────────────────────
echo "[1/6] Vérification de Python..."
for candidate in python3 python py; do
    if command -v "$candidate" &> /dev/null; then
        if "$candidate" -c "import sys; raise SystemExit(0 if sys.version_info >= (3, 11) else 1)" 2>/dev/null; then
            PYTHON_BIN="$candidate"
            break
        fi
    fi
done

if [ -z "$PYTHON_BIN" ]; then
    echo "ERREUR : Python 3.11+ non trouvé."
    echo "Installez Python 3.11+ ou vérifiez que la commande python3, python ou py est disponible."
    exit 1
fi

PYTHON_VERSION=$("$PYTHON_BIN" -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")
echo "  Python $PYTHON_VERSION détecté via '$PYTHON_BIN'."

# ── Création de l'environnement virtuel ───────────────────────
echo "[2/6] Création de l'environnement virtuel..."
if [ ! -d "$VENV_DIR" ]; then
    "$PYTHON_BIN" -m venv "$VENV_DIR"
    echo "  Environnement virtuel créé dans $VENV_DIR/"
else
    echo "  Environnement virtuel existant trouvé."
fi

# ── Activation et mise à jour pip ─────────────────────────────
echo "[3/6] Mise à jour de pip..."
source "$VENV_DIR/bin/activate"
pip install --upgrade pip setuptools wheel --quiet

# ── Installation des dépendances ──────────────────────────────
echo "[4/6] Installation des dépendances (requirements.txt)..."
pip install -r requirements.txt --quiet
echo "  Dépendances installées."

# ── Création des dossiers ──────────────────────────────────────
echo "[5/6] Création des dossiers nécessaires..."
mkdir -p pdf logs data static scripts
touch data/telegram_contacts.json
if [ ! -s "data/telegram_contacts.json" ]; then
    echo "{}" > data/telegram_contacts.json
fi
echo "  Dossiers créés."

# ── Vérification config ────────────────────────────────────────
echo "[6/6] Vérification de la configuration..."
if [ ! -f "config.ini" ]; then
    cp config.ini.example config.ini
    echo "  ATTENTION : config.ini créé depuis l'exemple."
    echo "  Remplissez config.ini avec vos paramètres avant de démarrer."
else
    echo "  config.ini trouvé."
fi

echo ""
echo "============================================================"
echo "  Installation terminée !"
echo ""
echo "  Prochaines étapes :"
echo "  1. Éditez config.ini avec vos paramètres"
echo "  2. Lancez : bash scripts/start.sh"
echo "  3. Configurez le webhook : python scripts/set_webhook.py"
echo "============================================================"
