#!/usr/bin/env bash
##
# SALAM — sauvegarde quotidienne MySQL (S-135)
# NB : le projet est MySQL 8 (OVH mutualisé), PAS PostgreSQL.
# Cron suggéré :  15 3 * * *  /www/salam/scripts/backup-mysql.sh
##
set -euo pipefail

BACKUP_DIR="${BACKUP_DIR:-/www/salam/backups}"
RETENTION_DAYS="${RETENTION_DAYS:-30}"
DB_HOST="${DB_HOST:-bxnexfgmax.mysql.db}"
DB_NAME="${DB_NAME:-bxnexfgmax}"
DB_USER="${DB_USER:-bxnexfgmax}"
# Renseigner via variable d'environnement, ne pas coder en dur :
DB_PASS="${DB_PASS:?Définir DB_PASS}"

mkdir -p "$BACKUP_DIR"
STAMP="$(date +%Y-%m-%d_%H%M)"
FILE="$BACKUP_DIR/salam-$STAMP.sql.gz"

mysqldump --single-transaction --quick --no-tablespaces \
  -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" | gzip > "$FILE"

echo "Sauvegarde créée : $FILE ($(du -h "$FILE" | cut -f1))"

# Rétention : supprimer les sauvegardes de plus de N jours
find "$BACKUP_DIR" -name 'salam-*.sql.gz' -mtime +"$RETENTION_DAYS" -delete
echo "Rétention appliquée (> $RETENTION_DAYS jours supprimées)."

# TODO (Phase 12+) : pousser $FILE vers OVH Object Storage une fois le conteneur créé.
