[
  {
    "type": "raw_sql",
    "description": "Remove duplicate emails keeping the newest user record (highest id)",
    "database": "kiosk_users",
    "check_query": "SELECT COUNT(*) AS dupes FROM (SELECT email FROM users WHERE email IS NOT NULL AND email != '' GROUP BY email HAVING COUNT(*) > 1) AS d",
    "sql": "DELETE u1 FROM users u1 INNER JOIN users u2 ON u1.email = u2.email AND u1.id < u2.id WHERE u1.email IS NOT NULL AND u1.email != ''"
  },
  {
    "type": "alter_table",
    "description": "Add unique constraint on email column in users table",
    "database": "kiosk_users",
    "check_query": "SELECT INDEX_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'kiosk_users' AND TABLE_NAME = 'users' AND INDEX_NAME = 'uk_email'",
    "sql": "ALTER TABLE `users` DROP INDEX `idx_email`, ADD UNIQUE KEY `uk_email` (`email`)"
  }
]
