[
  {
    "type": "create_table",
    "description": "Create demo_rate_limits table for magic link request rate limiting",
    "database": "kiosk_users",
    "check_query": "SHOW TABLES LIKE 'demo_rate_limits'",
    "sql": "CREATE TABLE `demo_rate_limits` (\n  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n  `identifier` varchar(255) NOT NULL COMMENT 'IP address or email for rate limiting',\n  `identifierType` enum('ip','email') NOT NULL DEFAULT 'ip',\n  `attempts` int(10) unsigned NOT NULL DEFAULT 1,\n  `windowStart` datetime NOT NULL COMMENT 'Start of rate limit window',\n  `createdAt` datetime NOT NULL DEFAULT current_timestamp(),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uk_identifier_type` (`identifier`, `identifierType`),\n  KEY `idx_window` (`windowStart`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Rate limiting for demo magic link requests (5 per 5 minutes per IP)'"
  }
]
