[
  {
    "type": "create_table",
    "description": "Create fpAuditLog table - track all floor plan changes",
    "database": "{{store}}",
    "check_query": "SHOW TABLES LIKE 'fpAuditLog'",
    "sql": "CREATE TABLE `fpAuditLog` (\n  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,\n  `entityType` ENUM('floorplan','rack','socket','layout','assignment','maintenance','task') NOT NULL,\n  `entityId` INT UNSIGNED NOT NULL,\n  `action` VARCHAR(50) NOT NULL COMMENT 'created, updated, deleted, activated, etc.',\n  `oldValue` JSON NULL,\n  `newValue` JSON NULL,\n  `userId` INT UNSIGNED NULL COMMENT 'kiosk_users.users.id (no FK constraint in store DB)',\n  `ipAddress` VARCHAR(45) NULL,\n  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n  PRIMARY KEY (`id`),\n  INDEX `idx_entityType_entityId` (`entityType`, `entityId`),\n  INDEX `idx_userId` (`userId`),\n  INDEX `idx_created_at` (`created_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Track all floor plan changes for audit trail'"
  },
  {
    "type": "create_table",
    "description": "Create fpSettings table - store-level floor plan configuration",
    "database": "{{store}}",
    "check_query": "SHOW TABLES LIKE 'fpSettings'",
    "sql": "CREATE TABLE `fpSettings` (\n  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,\n  `settingKey` VARCHAR(50) NOT NULL,\n  `settingValue` TEXT NOT NULL,\n  `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uk_settingKey` (`settingKey`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Store-level floor plan configuration'"
  },
  {
    "type": "insert",
    "description": "Seed default floor plan settings",
    "database": "{{store}}",
    "check_query": "SELECT id FROM fpSettings WHERE settingKey = 'doubleCheckRequired' LIMIT 1",
    "sql": "INSERT INTO `fpSettings` (`settingKey`, `settingValue`) VALUES\n('doubleCheckRequired', '0'),\n('maintenanceWeightFactor', '0.5'),\n('defaultMaintenanceInterval', '3')"
  }
]
