[
  {
    "type": "alter_table",
    "description": "Add event_id column to ccEvents for linking to 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 = 'ccEvents') UNION SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'ccEvents' AND COLUMN_NAME = 'event_id'",
    "sql": "ALTER TABLE `ccEvents` ADD COLUMN `event_id` int(10) unsigned DEFAULT NULL COMMENT 'Foreign key to events table for event-managed ccEvents' AFTER `sms_enabled`"
  },
  {
    "type": "alter_table",
    "description": "Add index on event_id for faster lookups",
    "database": "{{store}}",
    "check_query": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'ccEvents') UNION SELECT INDEX_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'ccEvents' AND INDEX_NAME = 'idx_event_id'",
    "sql": "ALTER TABLE `ccEvents` ADD INDEX `idx_event_id` (`event_id`)"
  },
  {
    "type": "alter_table",
    "description": "Add foreign key constraint from ccEvents.event_id 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 = 'ccEvents') UNION SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'ccEvents' AND CONSTRAINT_NAME = 'fk_ccEvents_event'",
    "sql": "ALTER TABLE `ccEvents` ADD CONSTRAINT `fk_ccEvents_event` FOREIGN KEY (`event_id`) REFERENCES `events` (`id`) ON DELETE SET NULL ON UPDATE CASCADE"
  }
]
