#!/bin/bash
# Script de déploiement SPC Flask API sur AlmaLinux 8
# Usage: bash deploy_production.sh

set -e  # Arrêt en cas d'erreur

echo "🚀 Déploiement SPC Flask API - AlmaLinux 8"
echo "=========================================="

# Variables
PROJECT_DIR="/home/estair/public_html/app/connect/interface"
SERVICE_FILE="spc-flask.service"
GUNICORN_CONFIG="gunicorn_config.py"

# 1. Mise à jour du code
echo "📥 1. Git pull..."
cd "$PROJECT_DIR"
git pull

# 2. Installation/mise à jour des dépendances Python
echo "📦 2. Installation des dépendances Python..."
# Activer le venv si pas déjà activé
if [ -z "$VIRTUAL_ENV" ]; then
    source "$PROJECT_DIR/venv/bin/activate"
fi

# Mettre à jour pip
python -m pip install --upgrade pip

# Installer les dépendances depuis requirements.txt
if [ -f "$PROJECT_DIR/requirements.txt" ]; then
    pip install -r "$PROJECT_DIR/requirements.txt"
    echo "   ✅ Dépendances installées depuis requirements.txt"
else
    echo "   ⚠️ requirements.txt non trouvé, installation manuelle..."
    pip install Flask gunicorn selenium undetected-chromedriver python-dotenv pydantic pyotp requests xlrd xlwt openpyxl PyYAML setuptools
fi

# 3. Vérification du fichier .env
echo "🔧 3. Vérification .env..."
if [ ! -f "v2/.env" ]; then
    if [ -f "v2/.env.production.centos7" ]; then
        echo "   Copie de .env.production.centos7 vers .env"
        cp v2/.env.production.centos7 v2/.env
    else
        echo "   ⚠️ ATTENTION: Aucun fichier .env trouvé !"
    fi
fi

# 4. Création des répertoires de logs
echo "📁 4. Création des répertoires..."
mkdir -p logs
mkdir -p traces

# 5. Installation du service systemd (nécessite sudo)
echo "⚙️  5. Installation du service systemd..."
if [ -f "$SERVICE_FILE" ]; then
    sudo cp "$SERVICE_FILE" /etc/systemd/system/
    sudo systemctl daemon-reload
    echo "   ✅ Service installé"
else
    echo "   ⚠️ Fichier $SERVICE_FILE non trouvé, skip"
fi

# 6. Activation et démarrage du service
echo "🔄 6. Activation et démarrage du service..."
sudo systemctl enable spc-flask
sudo systemctl restart spc-flask

# 7. Attente et vérification du statut
echo "⏳ 7. Vérification du statut (10s)..."
sleep 10
sudo systemctl status spc-flask --no-pager

# 8. Affichage des logs
echo ""
echo "📋 Dernières lignes des logs:"
echo "=========================================="
sudo journalctl -u spc-flask -n 20 --no-pager

echo ""
echo "✅ Déploiement terminé !"
echo ""
echo "Commandes utiles:"
echo "  - Voir les logs:       sudo journalctl -u spc-flask -f"
echo "  - Redémarrer:          sudo systemctl restart spc-flask"
echo "  - Arrêter:             sudo systemctl stop spc-flask"
echo "  - Statut:              sudo systemctl status spc-flask"
echo "  - Logs Gunicorn:       tail -f logs/gunicorn_error.log"
