[
  {
    "type": "add_column",
    "description": "Add eventId column to bsEvents for unified event management",
    "database": "{{store}}",
    "check_query": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'bsEvents') UNION SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'bsEvents' AND COLUMN_NAME = 'eventId'",
    "sql": "ALTER TABLE `bsEvents` ADD COLUMN `eventId` INT UNSIGNED NULL COMMENT 'FK to events.id when managed by unified event system' AFTER `id`"
  },
  {
    "type": "add_index",
    "description": "Add index on eventId for efficient lookups",
    "database": "{{store}}",
    "check_query": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'bsEvents') UNION SELECT INDEX_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'bsEvents' AND INDEX_NAME = 'idx_eventId'",
    "sql": "ALTER TABLE `bsEvents` ADD INDEX `idx_eventId` (`eventId`)"
  },
  {
    "type": "add_constraint",
    "description": "Add foreign key constraint from bsEvents.eventId to events.id",
    "database": "{{store}}",
    "check_query": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'bsEvents') UNION SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'bsEvents' AND CONSTRAINT_NAME = 'fk_bsEvents_eventId'",
    "sql": "ALTER TABLE `bsEvents` ADD CONSTRAINT `fk_bsEvents_eventId` FOREIGN KEY (`eventId`) REFERENCES `events`(`id`) ON DELETE SET NULL ON UPDATE CASCADE"
  }
]
