#!/usr/bin/env bash
set -euo pipefail

umask 077

APP_DIR=/opt/thaifortravel-miniapp
BACKUP_DIR=/var/backups/thaifortravel-miniapp
RETENTION_DAYS=14

mkdir -p "$BACKUP_DIR"

timestamp=$(date -u +%Y%m%dT%H%M%SZ)
destination="$BACKUP_DIR/tft-miniapp-$timestamp.sql.gz"

cd "$APP_DIR"
docker compose --env-file .env.production -f docker-compose.production.yml exec -T postgres \
  sh -c 'pg_dump -U "$POSTGRES_USER" -d "$POSTGRES_DB"' | gzip -9 > "$destination"

find "$BACKUP_DIR" -type f -name 'tft-miniapp-*.sql.gz' -mtime "+$RETENTION_DAYS" -delete
