#!/bin/bash

###############################################################################
# Script de réinitialisation de l'utilisateur administrateur
# Wrapper pour le script Node.js reset-admin.js
###############################################################################

set -e

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

# Vérifier que nous sommes dans le bon répertoire
if [ ! -f "package.json" ]; then
    echo -e "${RED}[ERREUR]${NC} Ce script doit être exécuté depuis la racine du projet"
    exit 1
fi

# Vérifier que le fichier .env existe
if [ ! -f ".env" ]; then
    echo -e "${RED}[ERREUR]${NC} Fichier .env non trouvé"
    echo -e "${YELLOW}[INFO]${NC} Créez un fichier .env avec DATABASE_URL et JWT_SECRET"
    exit 1
fi

# Charger les variables d'environnement
export $(cat .env | grep -v '^#' | xargs)

# Vérifier que DATABASE_URL est définie
if [ -z "$DATABASE_URL" ]; then
    echo -e "${RED}[ERREUR]${NC} DATABASE_URL n'est pas définie dans .env"
    exit 1
fi

# Vérifier que JWT_SECRET est définie
if [ -z "$JWT_SECRET" ]; then
    echo -e "${YELLOW}[WARN]${NC} JWT_SECRET n'est pas définie dans .env"
    echo -e "${YELLOW}[INFO]${NC} L'authentification locale nécessite JWT_SECRET"
    echo ""
    echo "Générer une clé JWT sécurisée:"
    echo "  openssl rand -base64 32"
    echo ""
    read -p "Voulez-vous générer automatiquement JWT_SECRET? (y/N) " -n 1 -r
    echo ""
    
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        NEW_JWT_SECRET=$(openssl rand -base64 32)
        echo "JWT_SECRET=$NEW_JWT_SECRET" >> .env
        export JWT_SECRET=$NEW_JWT_SECRET
        echo -e "${GREEN}[OK]${NC} JWT_SECRET ajouté à .env"
        echo ""
    else
        echo -e "${RED}[ERREUR]${NC} JWT_SECRET est requis. Ajoutez-le manuellement dans .env"
        exit 1
    fi
fi

# Exécuter le script Node.js
node reset-admin.js
