[
  {
    "type": "add_column",
    "description": "Add startDate column to dsLoop for scheduled slide start dates",
    "database": "{{store}}",
    "check_query": "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'dsLoop' AND COLUMN_NAME = 'startDate'",
    "sql": "ALTER TABLE `dsLoop` ADD COLUMN `startDate` DATE NULL AFTER `expireDate`"
  },
  {
    "type": "add_column",
    "description": "Add scheduled column to dsLoop for scheduling flag",
    "database": "{{store}}",
    "check_query": "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'dsLoop' AND COLUMN_NAME = 'scheduled'",
    "sql": "ALTER TABLE `dsLoop` ADD COLUMN `scheduled` TINYINT(1) UNSIGNED DEFAULT 0 AFTER `slideUploader`"
  },
  {
    "type": "add_column",
    "description": "Add eventId column to dsLoop for event management integration",
    "database": "{{store}}",
    "check_query": "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'dsLoop' AND COLUMN_NAME = 'eventId'",
    "sql": "ALTER TABLE `dsLoop` ADD COLUMN `eventId` INT UNSIGNED NULL COMMENT 'FK to events.id - marks slide as event-managed' AFTER `scheduled`"
  },
  {
    "type": "add_index",
    "description": "Add index on dsLoop.eventId for event lookups",
    "database": "{{store}}",
    "check_query": "SELECT INDEX_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'dsLoop' AND INDEX_NAME = 'idx_eventId'",
    "sql": "ALTER TABLE `dsLoop` ADD INDEX `idx_eventId` (`eventId`)"
  },
  {
    "type": "add_constraint",
    "description": "Add foreign key constraint from dsLoop.eventId to events.id",
    "database": "{{store}}",
    "check_query": "SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'dsLoop' AND CONSTRAINT_NAME = 'fk_dsLoop_eventId'",
    "sql": "ALTER TABLE `dsLoop` ADD CONSTRAINT `fk_dsLoop_eventId` FOREIGN KEY (`eventId`) REFERENCES `events`(`id`) ON DELETE SET NULL"
  }
]
