[
  {
    "type": "alter_table",
    "description": "Rename createdByEmployeeId to createdByUserId in staff_chat_channels (global user ID)",
    "database": "{{store}}",
    "check_query": "SHOW COLUMNS FROM staff_chat_channels LIKE 'createdByUserId'",
    "sql": "ALTER TABLE `staff_chat_channels` CHANGE COLUMN `createdByEmployeeId` `createdByUserId` int(10) unsigned DEFAULT NULL COMMENT 'User who created channel (kiosk_users.users.id)'"
  },
  {
    "type": "alter_table",
    "description": "Rename senderEmployeeId to senderUserId in staff_chat_messages (global user ID)",
    "database": "{{store}}",
    "check_query": "SHOW COLUMNS FROM staff_chat_messages LIKE 'senderUserId'",
    "sql": "ALTER TABLE `staff_chat_messages` DROP INDEX `idx_typeNum_senderEmployeeId`, CHANGE COLUMN `senderEmployeeId` `senderUserId` int(10) unsigned DEFAULT NULL COMMENT 'NULL = system message, else kiosk_users.users.id'"
  },
  {
    "type": "alter_table",
    "description": "Re-add index for senderUserId in staff_chat_messages",
    "database": "{{store}}",
    "check_query": "SELECT CASE WHEN (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'staff_chat_messages' AND column_name = 'senderUserId') = 1 AND (SELECT COUNT(*) FROM information_schema.statistics WHERE table_schema = DATABASE() AND table_name = 'staff_chat_messages' AND index_name = 'idx_typeNum_senderUserId') = 0 THEN 1 ELSE 0 END",
    "check_value": "1",
    "sql": "ALTER TABLE `staff_chat_messages` ADD INDEX `idx_typeNum_senderUserId` (`typeNum`, `senderUserId`)"
  },
  {
    "type": "alter_table",
    "description": "Rename employeeId to userId in staff_chat_reactions (global user ID)",
    "database": "{{store}}",
    "check_query": "SHOW COLUMNS FROM staff_chat_reactions LIKE 'userId'",
    "sql": "ALTER TABLE `staff_chat_reactions` DROP INDEX `uk_message_employee_emoji`, CHANGE COLUMN `employeeId` `userId` int(10) unsigned NOT NULL COMMENT 'kiosk_users.users.id'"
  },
  {
    "type": "alter_table",
    "description": "Re-add unique constraint for reactions with userId",
    "database": "{{store}}",
    "check_query": "SELECT CASE WHEN (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'staff_chat_reactions' AND column_name = 'userId') = 1 AND (SELECT COUNT(*) FROM information_schema.statistics WHERE table_schema = DATABASE() AND table_name = 'staff_chat_reactions' AND index_name = 'uk_message_user_emoji') = 0 THEN 1 ELSE 0 END",
    "check_value": "1",
    "sql": "ALTER TABLE `staff_chat_reactions` ADD UNIQUE KEY `uk_message_user_emoji` (`messageId`, `userId`, `emoji`)"
  },
  {
    "type": "alter_table",
    "description": "Rename employeeId to userId in staff_chat_audit_log (global user ID)",
    "database": "{{store}}",
    "check_query": "SHOW COLUMNS FROM staff_chat_audit_log LIKE 'userId'",
    "sql": "ALTER TABLE `staff_chat_audit_log` CHANGE COLUMN `employeeId` `userId` int(10) unsigned NOT NULL COMMENT 'kiosk_users.users.id'"
  }
]
