#!/bin/bash

# Définition des variables
APP_DIR="$HOME/trieur_albert"
CURRENT_USER=$USER

echo "=========================================="
echo "🚀 Installation/Mise à jour du Trieur Albert"
echo "=========================================="

# --- SAISIE DES PARAMÈTRES ---
echo "Veuillez saisir vos informations :"
echo "(Note : Pour le mot de passe, rien ne s'affichera à l'écran lors du coller, c'est normal)"
echo ""

read -p "Mail académique (ex: jeandupont@ac-nantes.fr) : " AC_MAIL
read -s -p "Mot de passe d'application : " AC_PWD
echo "" 
read -p "Clé API Albert : " API_KEY
read -p "Serveur IMAP [courrier.ac-nantes.fr] : " IMAP_SERV
IMAP_SERV=${IMAP_SERV:-courrier.ac-nantes.fr}

# 1. Prérequis système
echo "-> Installation des dépendances système..."
sudo apt update
sudo apt install -y python3 python3-venv python3-pip curl

# 2. Dossier de travail
mkdir -p "$APP_DIR"
cd "$APP_DIR"

# 3. Environnement virtuel
echo "-> Configuration de l'environnement virtuel..."
python3 -m venv venv
./venv/bin/pip install requests flask

# 4. TÉLÉCHARGEMENT DES SCRIPTS PYTHON
echo "-> Téléchargement des fichiers source..."
curl -L -o trieur_albert.py https://mathix.org/mon_IA/trieur_albert.py
curl -L -o interface_web.py https://mathix.org/mon_IA/interface_web.py

# 5. GÉNÉRATION INITIALE DU FICHIER CONFIG (Si inexistant)
if [ ! -f "config.json" ]; then
    echo "-> Création de la configuration initiale..."
    cat << EOF > config.json
{
    "IMAP_SERVER": "$IMAP_SERV",
    "EMAIL_ACCOUNT": "$AC_MAIL",
    "PASSWORD": "$AC_PWD",
    "ALBERT_API_KEY": "$API_KEY",
    "albert_model": "mistralai/Mistral-Small-3.2-24B-Instruct-2506",
    "moteur_ia": "albert",
    "categories": ["Urgent", "Administration", "GAIA-stage", "A_Conserver"],
    "seuil_confiance": 70,
    "CHECK_INTERVAL": 300,
    "prompt_template": "Tu es un assistant de tri de mails. Trie le mail suivant dans l'une de ces catégories : {liste_categories}. Réponds uniquement avec le nom de la catégorie."
}
EOF
fi

# 6. CONFIGURATION DES SERVICES SYSTEMD
echo "-> Installation des services..."

sudo bash -c "cat << 'EOF' > /etc/systemd/system/trieur-mail.service
[Unit]
Description=Service de Tri Mail Albert
After=network.target

[Service]
User=$CURRENT_USER
WorkingDirectory=$APP_DIR
ExecStart=$APP_DIR/venv/bin/python $APP_DIR/trieur_albert.py
Restart=always
Environment=PYTHONIOENCODING=utf-8
Environment=LANG=fr_FR.UTF-8

[Install]
WantedBy=multi-user.target
EOF"

sudo bash -c "cat << 'EOF' > /etc/systemd/system/trieur-web.service
[Unit]
Description=Interface Web Trieur Albert
After=network.target

[Service]
User=$CURRENT_USER
WorkingDirectory=$APP_DIR
ExecStart=$APP_DIR/venv/bin/python $APP_DIR/interface_web.py
Restart=always

[Install]
WantedBy=multi-user.target
EOF"

# 7. LANCEMENT FINAL
echo "-> Activation et démarrage..."
echo "$CURRENT_USER ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart trieur-mail.service" | sudo tee /etc/sudoers.d/trieur_albert
sudo systemctl daemon-reload
sudo systemctl enable trieur-mail.service trieur-web.service
sudo systemctl restart trieur-mail.service
sudo systemctl restart trieur-web.service

LOCAL_IP=$(hostname -I | awk '{print $1}')
echo "=========================================="
echo "✅ Tout est installé et configuré !"
echo "Accédez à l'interface : http://$LOCAL_IP:5000"
echo "=========================================="
