#!/bin/bash
# Rollback production data import
# This restores the data from backup tables created before import

echo "=========================================="
echo "Rolling back production data import..."
echo "=========================================="
echo ""

MYSQL_CMD="docker exec -i dev-mysql mysql -u root -prootpassword shopdb"

echo "Step 1: Checking if backup tables exist..."
$MYSQL_CMD <<'EOF'
SELECT
    (SELECT COUNT(*) FROM information_schema.tables
     WHERE table_schema = 'shopdb' AND table_name = 'notifications_backup_20251113') AS has_notifications_backup,
    (SELECT COUNT(*) FROM information_schema.tables
     WHERE table_schema = 'shopdb' AND table_name = 'notificationtypes_backup_20251113') AS has_notificationtypes_backup,
    (SELECT COUNT(*) FROM information_schema.tables
     WHERE table_schema = 'shopdb' AND table_name = 'printers_backup_20251113') AS has_printers_backup,
    (SELECT COUNT(*) FROM information_schema.tables
     WHERE table_schema = 'shopdb' AND table_name = 'knowledgebase_backup_20251113') AS has_knowledgebase_backup;
EOF

echo ""
read -p "Are you sure you want to rollback? This will restore data from backups. (yes/no): " confirm

if [ "$confirm" != "yes" ]; then
    echo "Rollback cancelled."
    exit 0
fi

echo ""
echo "Step 2: Restoring data from backups..."
$MYSQL_CMD <<'EOF'
SET FOREIGN_KEY_CHECKS = 0;

-- Restore notifications
DELETE FROM notifications;
INSERT INTO notifications SELECT * FROM notifications_backup_20251113;

-- Restore notificationtypes
DELETE FROM notificationtypes;
INSERT INTO notificationtypes SELECT * FROM notificationtypes_backup_20251113;

-- Restore printers
DELETE FROM printers;
INSERT INTO printers SELECT * FROM printers_backup_20251113;

-- Restore knowledgebase
DELETE FROM knowledgebase;
INSERT INTO knowledgebase SELECT * FROM knowledgebase_backup_20251113;

SET FOREIGN_KEY_CHECKS = 1;

SELECT 'Data restored from backups' AS status;
EOF

echo ""
echo "Step 3: Verifying restored counts..."
$MYSQL_CMD <<'EOF'
SELECT
    (SELECT COUNT(*) FROM notifications) AS notifications_count,
    (SELECT COUNT(*) FROM notificationtypes) AS notificationtypes_count,
    (SELECT COUNT(*) FROM printers) AS printers_count,
    (SELECT COUNT(*) FROM knowledgebase) AS knowledgebase_count;
EOF

echo ""
echo "Step 4: Dropping backup tables..."
$MYSQL_CMD <<'EOF'
DROP TABLE IF EXISTS notifications_backup_20251113;
DROP TABLE IF EXISTS notificationtypes_backup_20251113;
DROP TABLE IF EXISTS printers_backup_20251113;
DROP TABLE IF EXISTS knowledgebase_backup_20251113;

SELECT 'Backup tables dropped' AS status;
EOF

echo ""
echo "=========================================="
echo "ROLLBACK COMPLETE!"
echo "=========================================="
