#!/bin/bash
# Script de déploiement du panel admin Web Sentinel sur OVH
# Usage: ./deploy_admin.sh

set -e

echo "🚀 Déploiement du panel admin Web Sentinel"
echo "=========================================="

# Configuration
SERVER="taaazzz@web-sentinel.taaazzz-prog.fr"
REMOTE_DIR="~/web-sentinel"

# Couleurs
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# 1. Copie des fichiers
echo -e "\n${YELLOW}[1/6]${NC} Copie des fichiers vers le serveur..."
scp -r admin/ ${SERVER}:${REMOTE_DIR}/
scp deployment/docker-compose.admin.yml ${SERVER}:${REMOTE_DIR}/deployment/
scp deployment/.env.admin ${SERVER}:${REMOTE_DIR}/deployment/

# 2. Correction du Dockerfile backend
echo -e "\n${YELLOW}[2/6]${NC} Correction du Dockerfile backend..."
ssh ${SERVER} "cd ${REMOTE_DIR}/admin/backend && cat > Dockerfile <<'EOF'
FROM python:3.11-slim

WORKDIR /app

# Installation des dépendances système
RUN apt-get update && apt-get install -y \\
    gcc \\
    postgresql-client \\
    && rm -rf /var/lib/apt/lists/*

# Copie des dépendances
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Copie du code source
COPY . .

# Port exposé
EXPOSE 8000

# Commande de démarrage
CMD [\"uvicorn\", \"app.main:app\", \"--host\", \"0.0.0.0\", \"--port\", \"8000\", \"--proxy-headers\", \"--forwarded-allow-ips\", \"*\"]
EOF
"

# 3. Ajout du fichier .env pour le frontend
echo -e "\n${YELLOW}[3/6]${NC} Configuration du frontend..."
ssh ${SERVER} "cd ${REMOTE_DIR}/admin/frontend && cat > .env.production <<'EOF'
VITE_API_URL=https://admin-api.web-sentinel.taaazzz-prog.fr
EOF
"

# 4. Build des images Docker
echo -e "\n${YELLOW}[4/6]${NC} Build des images Docker..."
ssh ${SERVER} "cd ${REMOTE_DIR}/deployment && docker-compose -f docker-compose.admin.yml build"

# 5. Démarrage des conteneurs
echo -e "\n${YELLOW}[5/6]${NC} Démarrage des conteneurs..."
ssh ${SERVER} "cd ${REMOTE_DIR}/deployment && docker-compose -f docker-compose.admin.yml up -d"

# 6. Vérification
echo -e "\n${YELLOW}[6/6]${NC} Vérification du déploiement..."
sleep 5
ssh ${SERVER} "docker ps | grep admin"

echo -e "\n${GREEN}✅ Déploiement terminé !${NC}"
echo ""
echo "📝 Prochaines étapes :"
echo "   1. Configurer les DNS pour pointer vers le serveur :"
echo "      - admin.web-sentinel.taaazzz-prog.fr"
echo "      - admin-api.web-sentinel.taaazzz-prog.fr"
echo ""
echo "   2. Générer une clé secrète pour l'admin :"
echo "      ssh ${SERVER} 'openssl rand -hex 32'"
echo "      Puis modifier ~/web-sentinel/deployment/.env.admin"
echo ""
echo "   3. Accéder au panel admin :"
echo "      https://admin.web-sentinel.taaazzz-prog.fr"
echo ""
echo "   4. Modifier le bouton dans account.html :"
echo "      Remplacer http://localhost:5173 par https://admin.web-sentinel.taaazzz-prog.fr"
