[
  {
    "type": "add_column",
    "description": "Add pendingWeekStart generated column to aiScheduleSuggestions for unique pending constraint",
    "database": "{{store}}",
    "check_query": "SHOW COLUMNS FROM `aiScheduleSuggestions` LIKE 'pendingWeekStart'",
    "sql": "ALTER TABLE `aiScheduleSuggestions` ADD COLUMN `pendingWeekStart` DATE GENERATED ALWAYS AS (CASE WHEN status = 'pending' THEN weekStart ELSE NULL END) STORED COMMENT 'Generated column for unique pending constraint'"
  },
  {
    "type": "add_index",
    "description": "Add unique index on pendingWeekStart to enforce one pending suggestion per week",
    "database": "{{store}}",
    "check_query": "SELECT INDEX_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'aiScheduleSuggestions' AND INDEX_NAME = 'idx_unique_pending_week'",
    "sql": "ALTER TABLE `aiScheduleSuggestions` ADD UNIQUE INDEX `idx_unique_pending_week` (`pendingWeekStart`)"
  }
]
