#!/bin/bash
# test-data-manager.sh - Script to manage test data for the HVAC Community Events plugin
# Usage: ./bin/test-data-manager.sh [generate|verify|cleanup|backup|restore] [--suite=name]

set -e

# Colors for output
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color

# Default settings
ACTION=""
TEST_SUITE="default"
CURRENT_DATE=$(date +"%Y-%m-%d")

# Parse arguments
for arg in "$@"; do
  case $arg in
    generate|verify|cleanup|backup|restore)
      ACTION="$arg"
      shift
      ;;
    --suite=*)
      TEST_SUITE="${arg#*=}"
      shift
      ;;
  esac
done

# Check if action is provided
if [ -z "$ACTION" ]; then
  echo -e "${RED}Error: No action specified. Use: generate, verify, cleanup, backup, or restore${NC}"
  exit 1
fi

echo -e "${GREEN}=== Test Data Manager - ${ACTION} ===${NC}"
echo "Managing test data for suite: ${TEST_SUITE}"

# Check if we're in the right directory
if [ ! -d "tests/e2e" ]; then
  echo -e "${RED}Error: Please run this script from the wordpress-dev directory${NC}"
  exit 1
fi

# Create test data directory structure
mkdir -p tests/e2e/data
mkdir -p tests/e2e/data/backups

# Function to generate test data
generate_test_data() {
  echo -e "\n${YELLOW}Generating test data for suite: ${TEST_SUITE}${NC}"
  
  # Create test users first
  generate_test_users
  
  # Create test events based on the suite
  case $TEST_SUITE in
    "certificate")
      generate_certificate_test_data
      ;;
    "dashboard")
      generate_dashboard_test_data
      ;;
    "login")
      # Login suite only needs users, which are already created
      echo -e "${GREEN}Login test data created successfully${NC}"
      ;;
    *)
      # Default suite includes all test data
      generate_certificate_test_data
      generate_dashboard_test_data
      echo -e "${GREEN}Default test data created successfully${NC}"
      ;;
  esac
}

# Function to generate test users
generate_test_users() {
  echo -e "${YELLOW}Generating test users...${NC}"
  
  # Create test users TypeScript file
  cat > "tests/e2e/data/test-users.ts" << 'EOF'
/**
 * Test users for E2E testing
 */
export const TEST_USERS = {
  trainer: {
    username: 'test_trainer',
    password: 'Test123!',
    email: 'test_trainer@example.com',
    role: 'trainer'
  },
  admin: {
    username: 'admin_trainer',
    password: 'Admin123!',
    email: 'admin_trainer@example.com',
    role: 'administrator'
  },
  pending: {
    username: 'pending_trainer',
    password: 'Pending123!',
    email: 'pending_trainer@example.com',
    role: 'pending'
  }
};
EOF
  
  echo -e "${GREEN}Test users created in tests/e2e/data/test-users.ts${NC}"
  
  # Create shell script to create these users on the server
  cat > "bin/create-test-users.sh" << 'EOF'
#!/bin/bash
# Create test users for E2E testing

# Create test_trainer user
ssh user@staging-server "cd /path/to/wordpress && wp user create test_trainer test_trainer@example.com --role=subscriber --user_pass=Test123! || wp user update test_trainer --role=subscriber --user_pass=Test123!"

# Add trainer role
ssh user@staging-server "cd /path/to/wordpress && wp user meta update test_trainer wp_capabilities '{\"subscriber\":true,\"trainer\":true}'"

# Create admin_trainer user
ssh user@staging-server "cd /path/to/wordpress && wp user create admin_trainer admin_trainer@example.com --role=administrator --user_pass=Admin123! || wp user update admin_trainer --role=administrator --user_pass=Admin123!"

# Create pending_trainer user
ssh user@staging-server "cd /path/to/wordpress && wp user create pending_trainer pending_trainer@example.com --role=subscriber --user_pass=Pending123! || wp user update pending_trainer --role=subscriber --user_pass=Pending123!"

# Add pending role
ssh user@staging-server "cd /path/to/wordpress && wp user meta update pending_trainer wp_capabilities '{\"subscriber\":true,\"pending_trainer\":true}'"

echo "Test users created/updated successfully"
EOF
  
  chmod +x bin/create-test-users.sh
  echo -e "${YELLOW}Created bin/create-test-users.sh - Update SSH credentials before using${NC}"
}

# Function to generate certificate test data
generate_certificate_test_data() {
  echo -e "${YELLOW}Generating certificate test data...${NC}"
  
  # Create test events TypeScript file with attendees for certificate testing
  cat > "tests/e2e/data/test-events.ts" << 'EOF'
/**
 * Test events for E2E testing
 * Includes event data specifically designed for certificate testing
 */
export const TEST_EVENTS = {
  basicEvent: {
    title: 'Basic HVAC Training',
    description: 'A basic training event for HVAC technicians.',
    venue: 'Test Venue',
    organizer: 'Test Organizer',
    startDate: getTomorrowDate(),
    endDate: getTomorrowDate(),
    startTime: '09:00',
    endTime: '17:00',
    cost: '99.99',
    capacity: '25'
  },
  certificateEvent: {
    title: 'Certificate Training Course',
    description: 'A training event that issues certificates upon completion.',
    venue: 'Certificate Test Venue',
    organizer: 'Certificate Test Organizer',
    startDate: getYesterdayDate(), // Past event for certificate generation
    endDate: getYesterdayDate(),
    startTime: '08:00',
    endTime: '16:00',
    cost: '149.99',
    capacity: '20',
    issueCertificates: true
  },
  multiDayEvent: {
    title: 'Advanced HVAC Workshop',
    description: 'A multi-day workshop covering advanced HVAC topics.',
    venue: 'Advanced Test Venue',
    organizer: 'Advanced Test Organizer',
    startDate: getTomorrowDate(),
    endDate: getFutureDateDays(3), // 3 days in the future
    startTime: '09:00',
    endTime: '17:00',
    cost: '299.99',
    capacity: '15'
  }
};

// Test attendees for certificate testing
export const TEST_ATTENDEES = {
  complete: {
    firstName: 'John',
    lastName: 'Smith',
    email: 'john.smith@example.com',
    company: 'HVAC Testing Inc.',
    checkedIn: true
  },
  notCheckedIn: {
    firstName: 'Jane',
    lastName: 'Doe',
    email: 'jane.doe@example.com',
    company: 'HVAC Services',
    checkedIn: false
  },
  specialChars: {
    firstName: 'Jörg',
    lastName: "O'Neill-Müller",
    email: 'jorg.oneill@example.com',
    company: 'Special HVAC & Co.',
    checkedIn: true
  }
};

// Helper functions for dates
function getTomorrowDate() {
  const tomorrow = new Date();
  tomorrow.setDate(tomorrow.getDate() + 1);
  return formatDate(tomorrow);
}

function getYesterdayDate() {
  const yesterday = new Date();
  yesterday.setDate(yesterday.getDate() - 1);
  return formatDate(yesterday);
}

function getFutureDateDays(days) {
  const future = new Date();
  future.setDate(future.getDate() + days);
  return formatDate(future);
}

function formatDate(date) {
  return date.toISOString().split('T')[0]; // YYYY-MM-DD format
}
EOF
  
  echo -e "${GREEN}Certificate test data created in tests/e2e/data/test-events.ts${NC}"
  
  # Create shell script to create these events on the server
  cat > "bin/create-test-data-with-checkins.sh" << 'EOF'
#!/bin/bash
# Create test events and attendees for certificate testing

# Create the certificate test event
ssh user@staging-server "cd /path/to/wordpress && wp post create --post_type=tribe_events --post_title='Certificate Training Course' --post_content='A training event that issues certificates upon completion.' --post_status=publish --meta_input='{\"_EventStartDate\":\"$(date -d \"yesterday\" +\"%Y-%m-%d 08:00:00\")\",\"_EventEndDate\":\"$(date -d \"yesterday\" +\"%Y-%m-%d 16:00:00\")\",\"_EventVenue\":\"Certificate Test Venue\",\"_EventCost\":\"149.99\",\"_tribe_events_issue_certificates\":\"1\"}' --porcelain"

# Get the event ID
EVENT_ID=$(ssh user@staging-server "cd /path/to/wordpress && wp post list --post_type=tribe_events --post_status=publish --posts_per_page=1 --post_title='Certificate Training Course' --field=ID")

# Create attendees
ATTENDEE1_ID=$(ssh user@staging-server "cd /path/to/wordpress && wp post create --post_type=tribe_attendee --post_title='John Smith' --post_status=publish --meta_input='{\"_tribe_tickets_first_name\":\"John\",\"_tribe_tickets_last_name\":\"Smith\",\"_tribe_tickets_email\":\"john.smith@example.com\",\"_tribe_tickets_checkin\":\"1\",\"_tribe_rsvp_event\":\"$EVENT_ID\",\"_tribe_tickets_attendee_company\":\"HVAC Testing Inc.\"}' --porcelain")

ATTENDEE2_ID=$(ssh user@staging-server "cd /path/to/wordpress && wp post create --post_type=tribe_attendee --post_title='Jane Doe' --post_status=publish --meta_input='{\"_tribe_tickets_first_name\":\"Jane\",\"_tribe_tickets_last_name\":\"Doe\",\"_tribe_tickets_email\":\"jane.doe@example.com\",\"_tribe_tickets_checkin\":\"0\",\"_tribe_rsvp_event\":\"$EVENT_ID\",\"_tribe_tickets_attendee_company\":\"HVAC Services\"}' --porcelain")

ATTENDEE3_ID=$(ssh user@staging-server "cd /path/to/wordpress && wp post create --post_type=tribe_attendee --post_title='Jörg O'Neill-Müller' --post_status=publish --meta_input='{\"_tribe_tickets_first_name\":\"Jörg\",\"_tribe_tickets_last_name\":\"O'Neill-Müller\",\"_tribe_tickets_email\":\"jorg.oneill@example.com\",\"_tribe_tickets_checkin\":\"1\",\"_tribe_rsvp_event\":\"$EVENT_ID\",\"_tribe_tickets_attendee_company\":\"Special HVAC & Co.\"}' --porcelain")

echo "Certificate test data created successfully"
echo "Event ID: $EVENT_ID"
echo "Attendees: $ATTENDEE1_ID, $ATTENDEE2_ID, $ATTENDEE3_ID"
EOF
  
  chmod +x bin/create-test-data-with-checkins.sh
  echo -e "${YELLOW}Created bin/create-test-data-with-checkins.sh - Update SSH credentials before using${NC}"
}

# Function to generate dashboard test data
generate_dashboard_test_data() {
  echo -e "${YELLOW}Generating dashboard test data...${NC}"
  
  # Create additional test events for dashboard testing
  cat > "bin/create-test-events-admin.sh" << 'EOF'
#!/bin/bash
# Create test events for dashboard testing

# Create multiple events with different statuses
ssh user@staging-server "cd /path/to/wordpress && wp post create --post_type=tribe_events --post_title='Published HVAC Training' --post_content='A published training event for dashboard testing.' --post_status=publish --meta_input='{\"_EventStartDate\":\"$(date -d \"+5 days\" +\"%Y-%m-%d 09:00:00\")\",\"_EventEndDate\":\"$(date -d \"+5 days\" +\"%Y-%m-%d 17:00:00\")\",\"_EventVenue\":\"Dashboard Test Venue\",\"_EventCost\":\"99.99\"}' --porcelain"

ssh user@staging-server "cd /path/to/wordpress && wp post create --post_type=tribe_events --post_title='Draft HVAC Training' --post_content='A draft training event for dashboard testing.' --post_status=draft --meta_input='{\"_EventStartDate\":\"$(date -d \"+7 days\" +\"%Y-%m-%d 09:00:00\")\",\"_EventEndDate\":\"$(date -d \"+7 days\" +\"%Y-%m-%d 17:00:00\")\",\"_EventVenue\":\"Dashboard Test Venue\",\"_EventCost\":\"79.99\"}' --porcelain"

ssh user@staging-server "cd /path/to/wordpress && wp post create --post_type=tribe_events --post_title='Private HVAC Training' --post_content='A private training event for dashboard testing.' --post_status=private --meta_input='{\"_EventStartDate\":\"$(date -d \"+10 days\" +\"%Y-%m-%d 09:00:00\")\",\"_EventEndDate\":\"$(date -d \"+10 days\" +\"%Y-%m-%d 17:00:00\")\",\"_EventVenue\":\"Dashboard Test Venue\",\"_EventCost\":\"129.99\"}' --porcelain"

ssh user@staging-server "cd /path/to/wordpress && wp post create --post_type=tribe_events --post_title='Pending HVAC Training' --post_content='A pending training event for dashboard testing.' --post_status=pending --meta_input='{\"_EventStartDate\":\"$(date -d \"+15 days\" +\"%Y-%m-%d 09:00:00\")\",\"_EventEndDate\":\"$(date -d \"+15 days\" +\"%Y-%m-%d 17:00:00\")\",\"_EventVenue\":\"Dashboard Test Venue\",\"_EventCost\":\"149.99\"}' --porcelain"

# Create a past event
ssh user@staging-server "cd /path/to/wordpress && wp post create --post_type=tribe_events --post_title='Past HVAC Training' --post_content='A past training event for dashboard testing.' --post_status=publish --meta_input='{\"_EventStartDate\":\"$(date -d \"-3 days\" +\"%Y-%m-%d 09:00:00\")\",\"_EventEndDate\":\"$(date -d \"-3 days\" +\"%Y-%m-%d 17:00:00\")\",\"_EventVenue\":\"Dashboard Test Venue\",\"_EventCost\":\"99.99\"}' --porcelain"

echo "Dashboard test events created successfully"
EOF
  
  chmod +x bin/create-test-events-admin.sh
  echo -e "${YELLOW}Created bin/create-test-events-admin.sh - Update SSH credentials before using${NC}"
}

# Function to verify test data
verify_test_data() {
  echo -e "\n${YELLOW}Verifying test data for suite: ${TEST_SUITE}${NC}"
  
  # Verify test user files exist
  if [ -f "tests/e2e/data/test-users.ts" ]; then
    echo -e "${GREEN}✓ Test users file exists${NC}"
  else
    echo -e "${RED}✗ Test users file missing${NC}"
  fi
  
  # Verify test events files exist
  if [ -f "tests/e2e/data/test-events.ts" ]; then
    echo -e "${GREEN}✓ Test events file exists${NC}"
  else
    echo -e "${RED}✗ Test events file missing${NC}"
  fi
  
  # Verify test data on server (if scripts exist)
  if [ -f "bin/verify-test-data.sh" ]; then
    echo -e "${YELLOW}Running server-side test data verification...${NC}"
    bash bin/verify-test-data.sh
  else
    echo -e "${YELLOW}Creating server-side verification script...${NC}"
    
    # Create verification script
    cat > "bin/verify-test-data.sh" << 'EOF'
#!/bin/bash
# Verify test data exists on the server

# Check test users
echo "Verifying test users..."
TEST_TRAINER=$(ssh user@staging-server "cd /path/to/wordpress && wp user get test_trainer --field=ID 2>/dev/null || echo 'missing'")
ADMIN_TRAINER=$(ssh user@staging-server "cd /path/to/wordpress && wp user get admin_trainer --field=ID 2>/dev/null || echo 'missing'")
PENDING_TRAINER=$(ssh user@staging-server "cd /path/to/wordpress && wp user get pending_trainer --field=ID 2>/dev/null || echo 'missing'")

if [ "$TEST_TRAINER" != "missing" ] && [ "$ADMIN_TRAINER" != "missing" ]; then
  echo "✓ Test users verified"
else
  echo "✗ Test users missing"
  echo "  - test_trainer: ${TEST_TRAINER}"
  echo "  - admin_trainer: ${ADMIN_TRAINER}"
  echo "  - pending_trainer: ${PENDING_TRAINER}"
fi

# Check test events
echo "Verifying test events..."
CERTIFICATE_EVENT=$(ssh user@staging-server "cd /path/to/wordpress && wp post list --post_type=tribe_events --post_status=publish --posts_per_page=1 --post_title='Certificate Training Course' --field=ID 2>/dev/null || echo 'missing'")
DASHBOARD_EVENTS=$(ssh user@staging-server "cd /path/to/wordpress && wp post list --post_type=tribe_events --field=ID | wc -l 2>/dev/null || echo '0'")

if [ "$CERTIFICATE_EVENT" != "missing" ] && [ "$DASHBOARD_EVENTS" -gt 0 ]; then
  echo "✓ Test events verified"
  echo "  - Certificate event: ${CERTIFICATE_EVENT}"
  echo "  - Total events: ${DASHBOARD_EVENTS}"
else
  echo "✗ Test events missing"
  echo "  - Certificate event: ${CERTIFICATE_EVENT}"
  echo "  - Total events: ${DASHBOARD_EVENTS}"
fi

# Check attendees
echo "Verifying test attendees..."
if [ "$CERTIFICATE_EVENT" != "missing" ]; then
  ATTENDEES=$(ssh user@staging-server "cd /path/to/wordpress && wp post list --post_type=tribe_attendee --meta_key=_tribe_rsvp_event --meta_value=${CERTIFICATE_EVENT} --field=ID 2>/dev/null | wc -l || echo '0'")
  
  if [ "$ATTENDEES" -gt 0 ]; then
    echo "✓ Test attendees verified: ${ATTENDEES} attendees found"
  else
    echo "✗ Test attendees missing for certificate event"
  fi
fi

echo "Test data verification complete"
EOF
    
    chmod +x bin/verify-test-data.sh
    echo -e "${YELLOW}Created bin/verify-test-data.sh - Update SSH credentials before using${NC}"
  fi
}

# Function to cleanup test data
cleanup_test_data() {
  echo -e "\n${YELLOW}Cleaning up test data for suite: ${TEST_SUITE}${NC}"
  
  # Check if cleanup script exists
  if [ -f "bin/cleanup-test-data.sh" ]; then
    echo -e "${YELLOW}Running test data cleanup...${NC}"
    bash bin/cleanup-test-data.sh
  else
    echo -e "${YELLOW}Creating cleanup script...${NC}"
    
    # Create cleanup script
    cat > "bin/cleanup-test-data.sh" << 'EOF'
#!/bin/bash
# Clean up test data from the server

echo "Cleaning up test data..."

# Clean up test events
echo "Removing test events..."
ssh user@staging-server "cd /path/to/wordpress && wp post delete \$(wp post list --post_type=tribe_events --post_title='Certificate Training Course' --field=ID) --force 2>/dev/null || echo 'No certificate event to remove'"
ssh user@staging-server "cd /path/to/wordpress && wp post delete \$(wp post list --post_type=tribe_events --post_title='Published HVAC Training' --field=ID) --force 2>/dev/null || echo 'No published event to remove'"
ssh user@staging-server "cd /path/to/wordpress && wp post delete \$(wp post list --post_type=tribe_events --post_title='Draft HVAC Training' --field=ID) --force 2>/dev/null || echo 'No draft event to remove'"
ssh user@staging-server "cd /path/to/wordpress && wp post delete \$(wp post list --post_type=tribe_events --post_title='Private HVAC Training' --field=ID) --force 2>/dev/null || echo 'No private event to remove'"
ssh user@staging-server "cd /path/to/wordpress && wp post delete \$(wp post list --post_type=tribe_events --post_title='Pending HVAC Training' --field=ID) --force 2>/dev/null || echo 'No pending event to remove'"
ssh user@staging-server "cd /path/to/wordpress && wp post delete \$(wp post list --post_type=tribe_events --post_title='Past HVAC Training' --field=ID) --force 2>/dev/null || echo 'No past event to remove'"

# Clean up attendees - remove all test attendees 
echo "Removing test attendees..."
ssh user@staging-server "cd /path/to/wordpress && wp post delete \$(wp post list --post_type=tribe_attendee --meta_key=_tribe_tickets_email --meta_value='john.smith@example.com' --field=ID) --force 2>/dev/null || echo 'No John Smith attendee to remove'"
ssh user@staging-server "cd /path/to/wordpress && wp post delete \$(wp post list --post_type=tribe_attendee --meta_key=_tribe_tickets_email --meta_value='jane.doe@example.com' --field=ID) --force 2>/dev/null || echo 'No Jane Doe attendee to remove'"
ssh user@staging-server "cd /path/to/wordpress && wp post delete \$(wp post list --post_type=tribe_attendee --meta_key=_tribe_tickets_email --meta_value='jorg.oneill@example.com' --field=ID) --force 2>/dev/null || echo 'No Jorg attendee to remove'"

# Keep test users (just reset their data)
echo "Resetting test users..."
ssh user@staging-server "cd /path/to/wordpress && wp user meta delete test_trainer hvac_test_data 2>/dev/null || echo 'No test data to remove for test_trainer'"
ssh user@staging-server "cd /path/to/wordpress && wp user meta delete admin_trainer hvac_test_data 2>/dev/null || echo 'No test data to remove for admin_trainer'"
ssh user@staging-server "cd /path/to/wordpress && wp user meta delete pending_trainer hvac_test_data 2>/dev/null || echo 'No test data to remove for pending_trainer'"

echo "Test data cleanup complete"
EOF
    
    chmod +x bin/cleanup-test-data.sh
    echo -e "${YELLOW}Created bin/cleanup-test-data.sh - Update SSH credentials before using${NC}"
  fi
}

# Function to backup test data
backup_test_data() {
  echo -e "\n${YELLOW}Backing up test data for suite: ${TEST_SUITE}${NC}"
  
  # Create backup directory
  BACKUP_DIR="tests/e2e/data/backups/${CURRENT_DATE}_${TEST_SUITE}"
  mkdir -p "$BACKUP_DIR"
  
  # Backup test user data
  if [ -f "tests/e2e/data/test-users.ts" ]; then
    cp "tests/e2e/data/test-users.ts" "$BACKUP_DIR/"
    echo -e "${GREEN}✓ Test users backed up${NC}"
  fi
  
  # Backup test event data
  if [ -f "tests/e2e/data/test-events.ts" ]; then
    cp "tests/e2e/data/test-events.ts" "$BACKUP_DIR/"
    echo -e "${GREEN}✓ Test events backed up${NC}"
  fi
  
  # Backup any other test data files
  if [ -f "tests/e2e/data/test-config.ts" ]; then
    cp "tests/e2e/data/test-config.ts" "$BACKUP_DIR/"
    echo -e "${GREEN}✓ Test config backed up${NC}"
  fi
  
  # Compress backup
  tar -czf "$BACKUP_DIR.tar.gz" "$BACKUP_DIR"
  echo -e "${GREEN}Backup created: ${BACKUP_DIR}.tar.gz${NC}"
  
  # Remove uncompressed backup
  rm -rf "$BACKUP_DIR"
}

# Function to restore test data
restore_test_data() {
  echo -e "\n${YELLOW}Restoring test data for suite: ${TEST_SUITE}${NC}"
  
  # Find most recent backup for the suite
  LATEST_BACKUP=$(ls -t tests/e2e/data/backups/*_${TEST_SUITE}.tar.gz 2>/dev/null | head -1)
  
  if [ -z "$LATEST_BACKUP" ]; then
    echo -e "${RED}No backup found for suite: ${TEST_SUITE}${NC}"
    return 1
  fi
  
  echo -e "${YELLOW}Restoring from backup: ${LATEST_BACKUP}${NC}"
  
  # Create temp directory
  TEMP_DIR="tests/e2e/data/temp_restore"
  mkdir -p "$TEMP_DIR"
  
  # Extract backup
  tar -xzf "$LATEST_BACKUP" -C "$TEMP_DIR"
  
  # Find extracted directory
  EXTRACTED_DIR=$(find "$TEMP_DIR" -type d -depth 1)
  
  # Restore files
  if [ -f "$EXTRACTED_DIR/test-users.ts" ]; then
    cp "$EXTRACTED_DIR/test-users.ts" "tests/e2e/data/"
    echo -e "${GREEN}✓ Test users restored${NC}"
  fi
  
  if [ -f "$EXTRACTED_DIR/test-events.ts" ]; then
    cp "$EXTRACTED_DIR/test-events.ts" "tests/e2e/data/"
    echo -e "${GREEN}✓ Test events restored${NC}"
  fi
  
  if [ -f "$EXTRACTED_DIR/test-config.ts" ]; then
    cp "$EXTRACTED_DIR/test-config.ts" "tests/e2e/data/"
    echo -e "${GREEN}✓ Test config restored${NC}"
  fi
  
  # Clean up
  rm -rf "$TEMP_DIR"
  echo -e "${GREEN}Restore completed from: ${LATEST_BACKUP}${NC}"
}

# Execute action
case $ACTION in
  "generate")
    generate_test_data
    ;;
  "verify")
    verify_test_data
    ;;
  "cleanup")
    cleanup_test_data
    ;;
  "backup")
    backup_test_data
    ;;
  "restore")
    restore_test_data
    ;;
  *)
    echo -e "${RED}Invalid action: ${ACTION}${NC}"
    exit 1
    ;;
esac

echo -e "\n${GREEN}=== Test Data Manager Complete ===${NC}"
echo "Action '${ACTION}' completed for suite: ${TEST_SUITE}"
exit 0