[
  {
    "type": "create_table",
    "description": "Create posDataGaps table for POS data gap tracking (spec 043)",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW TABLES LIKE 'posDataGaps'",
    "sql": "CREATE TABLE `posDataGaps` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `typeNum` varchar(10) NOT NULL COMMENT 'Store identifier', `gapDate` date NOT NULL COMMENT 'The date with missing data', `missingSales` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Sales data missing', `missingBuys` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Buys data missing', `missingDailyClose` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Daily close S-File missing', `verificationSource` enum('buyQueue','storeHours','manual') NOT NULL DEFAULT 'storeHours' COMMENT 'How we determined the store was open', `status` enum('detected','commanded','resolved','persistent','unavailable') NOT NULL DEFAULT 'detected', `commandCount` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 'Number of catchup commands sent', `lastCommandSentAt` datetime DEFAULT NULL, `lastRequestId` varchar(64) DEFAULT NULL COMMENT 'UUID of most recent catchup command', `resolvedAt` datetime DEFAULT NULL, `firstDetectedAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updatedAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `uk_store_date` (`typeNum`, `gapDate`), KEY `idx_status` (`status`), KEY `idx_typenum_status` (`typeNum`, `status`), KEY `idx_persistent` (`status`, `firstDetectedAt`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"
  }
]
