[
  {
    "type": "alter_table",
    "description": "Add premiumStatus column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'premiumStatus'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `premiumStatus` enum('none','trial','active','expired') NOT NULL DEFAULT 'none' COMMENT 'Premium scheduling module status'"
  },
  {
    "type": "alter_table",
    "description": "Add premiumTrialStartDate column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'premiumTrialStartDate'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `premiumTrialStartDate` date DEFAULT NULL COMMENT 'Date trial was activated'"
  },
  {
    "type": "alter_table",
    "description": "Add premiumTrialEndDate column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'premiumTrialEndDate'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `premiumTrialEndDate` date DEFAULT NULL COMMENT 'Date trial expires (store timezone, end of day)'"
  },
  {
    "type": "alter_table",
    "description": "Add premiumTrialUsed column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'premiumTrialUsed'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `premiumTrialUsed` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Flag indicating trial has been used (permanent)'"
  },
  {
    "type": "alter_table",
    "description": "Add premiumActivatedAt column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'premiumActivatedAt'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `premiumActivatedAt` datetime DEFAULT NULL COMMENT 'Timestamp when premium was last activated'"
  },
  {
    "type": "alter_table",
    "description": "Add premiumActivatedByUserId column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'premiumActivatedByUserId'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `premiumActivatedByUserId` int unsigned DEFAULT NULL COMMENT 'User who activated premium'"
  },
  {
    "type": "alter_table",
    "description": "Add premiumDeactivatedAt column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'premiumDeactivatedAt'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `premiumDeactivatedAt` datetime DEFAULT NULL COMMENT 'Timestamp when premium was last deactivated'"
  },
  {
    "type": "alter_table",
    "description": "Add index on premiumStatus column",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW INDEX FROM `stores` WHERE Key_name = 'idx_premium_status'",
    "sql": "ALTER TABLE `stores` ADD INDEX `idx_premium_status` (`premiumStatus`)"
  },
  {
    "type": "alter_table",
    "description": "Add composite index on premiumTrialEndDate and premiumStatus for trial expiration queries",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW INDEX FROM `stores` WHERE Key_name = 'idx_premium_trial_end'",
    "sql": "ALTER TABLE `stores` ADD INDEX `idx_premium_trial_end` (`premiumTrialEndDate`, `premiumStatus`)"
  }
]
