[
  {
    "type": "create_table",
    "description": "Create mobileSigninSessions table for mobile sign-in session tokens",
    "database": "{{store}}",
    "check_query": "SHOW TABLES LIKE 'mobileSigninSessions'",
    "sql": "CREATE TABLE `mobileSigninSessions` (\n  `sessionId` VARCHAR(36) NOT NULL COMMENT 'UUID v4 session token',\n  `typeNum` VARCHAR(10) NOT NULL COMMENT 'Store identifier',\n  `customerId` INT(11) NULL COMMENT 'Set after customer identified',\n  `buyId` INT(11) NULL COMMENT 'Set after queue entry created',\n  `currentStep` ENUM('id', 'profile', 'containers', 'terms', 'signature', 'complete', 'expired') NOT NULL DEFAULT 'id' COMMENT 'Current step in sign-in flow',\n  `stepData` JSON NULL COMMENT 'Progress data (non-PII)',\n  `ipAddress` VARCHAR(45) NOT NULL COMMENT 'IPv4 or IPv6',\n  `userAgent` VARCHAR(500) NOT NULL COMMENT 'Browser user agent',\n  `deviceFingerprint` VARCHAR(64) NULL COMMENT 'Optional browser fingerprint',\n  `createdAt` DATETIME NOT NULL COMMENT 'Session creation time',\n  `lastActivityAt` DATETIME NOT NULL COMMENT 'Updated on each step progression',\n  `expiresAt` DATETIME NOT NULL COMMENT 'lastActivityAt + 1 hour',\n  `completedAt` DATETIME NULL COMMENT 'When sign-in completed',\n  `accessExpiresAt` DATETIME NULL COMMENT 'Status page access window (completedAt + 2 hours)',\n  PRIMARY KEY (`sessionId`),\n  INDEX `idx_expires` (`expiresAt`),\n  INDEX `idx_typenum_created` (`typeNum`, `createdAt`),\n  INDEX `idx_session_typenum` (`sessionId`, `typeNum`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Mobile sign-in session tokens for queue self-service'"
  }
]
