#!/bin/bash
set -euo pipefail

BACKUP_DIR="/var/backups/nobetci-eczane"
DB_NAME="nobetci_eczane"
DB_USER="postgres"
DB_HOST="127.0.0.1"
KEEP_DAYS=7
DATE=$(date +%Y%m%d-%H%M%S)
FILE="${BACKUP_DIR}/db-${DATE}.sql.gz"

# DATABASE_URL'den şifreyi çek: postgresql://user:PASS@host/db
DB_URL=$(grep DATABASE_URL /var/www/nobetci-eczane/.env | cut -d= -f2-)
export PGPASSWORD=$(python3 -c "from urllib.parse import urlparse,unquote; print(unquote(urlparse('$DB_URL').password))")

mkdir -p "$BACKUP_DIR"
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Yedekleme başladı: $FILE"

pg_dump -h "$DB_HOST" -U "$DB_USER" -d "$DB_NAME" --no-owner --no-acl | gzip > "$FILE"

SIZE=$(du -sh "$FILE" | cut -f1)
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Yedek oluşturuldu: $FILE ($SIZE)"

DELETED=$(find "$BACKUP_DIR" -name "db-*.sql.gz" -mtime +${KEEP_DAYS} -print -delete | wc -l)
[ "$DELETED" -gt 0 ] && echo "[$(date '+%Y-%m-%d %H:%M:%S')] $DELETED eski yedek silindi"

COUNT=$(find "$BACKUP_DIR" -name "db-*.sql.gz" | wc -l)
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Toplam yedek: $COUNT adet"
echo "---"
