#!/bin/bash
# Quick Restore Production Backup Database
# Use when showprima_backup gets nuked during testing

set -e

BACKUP_FILE="/Users/charlie/code/showprima-notif-decomp/database/backups/production_20260123_130004.sql.gz"
DOCKER_CONTAINER="showprima_mysql"
DB_NAME="showprima_backup"
ROOT_PASS="root_secret"

echo "🔄 Restoring production backup database..."
echo "📦 Backup: $(basename $BACKUP_FILE)"
echo "🗄️  Database: $DB_NAME"
echo ""

# Check if backup file exists
if [ ! -f "$BACKUP_FILE" ]; then
    echo "❌ Backup file not found: $BACKUP_FILE"
    exit 1
fi

# Drop and recreate database
echo "1️⃣  Dropping existing database..."
docker exec $DOCKER_CONTAINER mysql -u root -p"$ROOT_PASS" -e "DROP DATABASE IF EXISTS $DB_NAME;" 2>&1 | grep -v Warning

echo "2️⃣  Creating fresh database..."
docker exec $DOCKER_CONTAINER mysql -u root -p"$ROOT_PASS" -e "CREATE DATABASE $DB_NAME;" 2>&1 | grep -v Warning

# Load backup
echo "3️⃣  Loading backup (this takes ~30 seconds)..."
gunzip -c "$BACKUP_FILE" | docker exec -i $DOCKER_CONTAINER mysql -u root -p"$ROOT_PASS" $DB_NAME 2>&1 | grep -v Warning

# Verify
echo "4️⃣  Verifying..."
TABLE_COUNT=$(docker exec $DOCKER_CONTAINER mysql -u root -p"$ROOT_PASS" $DB_NAME -e "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='$DB_NAME';" -s -N 2>&1 | grep -v Warning)
ORDER_COUNT=$(docker exec $DOCKER_CONTAINER mysql -u root -p"$ROOT_PASS" $DB_NAME -e "SELECT COUNT(*) FROM orders;" -s -N 2>&1 | grep -v Warning)

echo ""
echo "✅ Backup restored successfully!"
echo "📊 Tables: $TABLE_COUNT"
echo "📦 Orders: $ORDER_COUNT"
echo ""
echo "🔍 Access: mysql -h 127.0.0.1 -P 3306 -u showprima_readonly -p'readonly_pass' $DB_NAME"
