[
  {
    "type": "alter_table",
    "description": "Add stagedEntryId column to qb_sync_log for V2 workflow linking",
    "database": "{{store}}",
    "check_query": "SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'qb_sync_log' AND COLUMN_NAME = 'stagedEntryId'",
    "sql": "ALTER TABLE `qb_sync_log` ADD COLUMN `stagedEntryId` INT UNSIGNED NULL COMMENT 'FK to qb_staged_entries' AFTER `syncedBy`"
  },
  {
    "type": "alter_table",
    "description": "Add payloadHash column to qb_sync_log for change detection",
    "database": "{{store}}",
    "check_query": "SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'qb_sync_log' AND COLUMN_NAME = 'payloadHash'",
    "sql": "ALTER TABLE `qb_sync_log` ADD COLUMN `payloadHash` VARCHAR(64) NULL COMMENT 'SHA-256 of payload for change detection' AFTER `retryCount`"
  },
  {
    "type": "alter_table",
    "description": "Add docNumber column to qb_sync_log for BK- format document numbers",
    "database": "{{store}}",
    "check_query": "SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'qb_sync_log' AND COLUMN_NAME = 'docNumber'",
    "sql": "ALTER TABLE `qb_sync_log` ADD COLUMN `docNumber` VARCHAR(50) NULL COMMENT 'BK- format document number' AFTER `journalEntryDocNum`"
  }
]
