#!/bin/bash
# scripts/setup-cron-backups.sh - Configure backups automatiques MySQL
# Usage: ./setup-cron-backups.sh

set -e

GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'

echo -e "${YELLOW}⚙️  CONFIGURATION BACKUPS AUTOMATIQUES${NC}"

# Rendre les scripts exécutables
chmod +x ~/FailDaily/scripts/backup-mysql.sh
chmod +x ~/FailDaily/scripts/restore-mysql.sh
chmod +x ~/FailDaily/scripts/rollback-version.sh

# Créer répertoire backups
mkdir -p ~/FailDaily/backups/mysql

# Configurer cron
CRON_ENTRY="0 3 * * * /home/taaazzz/FailDaily/scripts/backup-mysql.sh 7 >> /home/taaazzz/FailDaily/backups/cron.log 2>&1"

# Vérifier si cron existe déjà
if crontab -l 2>/dev/null | grep -q "backup-mysql.sh"; then
  echo -e "${YELLOW}ℹ️  Backup cron déjà configuré${NC}"
  crontab -l | grep backup-mysql.sh
else
  # Ajouter au crontab
  (crontab -l 2>/dev/null; echo "$CRON_ENTRY") | crontab -
  echo -e "${GREEN}✅ Backup quotidien configuré (3h du matin)${NC}"
fi

# Afficher la config cron
echo -e "\n${YELLOW}📋 Configuration cron actuelle:${NC}"
crontab -l | grep -E "(backup|FailDaily)" || echo "Aucune tâche FailDaily"

# Test manuel du backup
echo -e "\n${YELLOW}🧪 Test backup manuel...${NC}"
read -p "Lancer un backup de test ? (y/n): " TEST

if [ "$TEST" = "y" ]; then
  ~/FailDaily/scripts/backup-mysql.sh 7
fi

echo -e "\n${GREEN}✅ Configuration terminée !${NC}"
echo -e "${YELLOW}📌 Commandes utiles:${NC}"
echo "  Backup manuel    : ~/FailDaily/scripts/backup-mysql.sh"
echo "  Restore          : ~/FailDaily/scripts/restore-mysql.sh <fichier.sql.gz>"
echo "  Rollback version : ~/FailDaily/scripts/rollback-version.sh <version>"
echo "  Voir backups     : ls -lht ~/FailDaily/backups/mysql/"
echo "  Logs cron        : tail -f ~/FailDaily/backups/cron.log"
