#!/usr/bin/env bash
# backup-cron.sh — intended to be run by cron on the production host.
# Example crontab entry (daily at 03:00 UTC):
#   0 3 * * * /opt/colectivo/infra/scripts/backup-cron.sh >> /var/log/colectivo-backup.log 2>&1

set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
LOG_PREFIX="[$(date -u +"%Y-%m-%dT%H:%M:%SZ")] backup-cron:"

# Load env vars from the production .env
if [ -f "$SCRIPT_DIR/../../.env" ]; then
  # shellcheck disable=SC1091
  set -a; source "$SCRIPT_DIR/../../.env"; set +a
fi

echo "$LOG_PREFIX Starting scheduled backup"
"$SCRIPT_DIR/backup.sh" supabase
echo "$LOG_PREFIX PostgreSQL backup done"

"$SCRIPT_DIR/backup.sh" keycloak
echo "$LOG_PREFIX Keycloak backup done"

# Prune local temp files older than 1 day
find /tmp/colectivo-backups -type f -mtime +1 -delete 2>/dev/null || true

echo "$LOG_PREFIX All done"
