SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;

USE hyapp_user;

-- 后台强制解封会同时释放管理员和经理封禁；独立命令事实保证 gRPC 超时重试不会释放操作完成后新产生的封禁。
CREATE TABLE IF NOT EXISTS admin_user_force_unban_commands (
  app_code VARCHAR(32) NOT NULL DEFAULT 'lalu' COMMENT '应用编码，用于多租户隔离',
  command_id VARCHAR(128) NOT NULL COMMENT '稳定强制解封命令 ID，取 request_id',
  target_user_id BIGINT NOT NULL COMMENT '目标用户 ID',
  operator_admin_id BIGINT NOT NULL COMMENT '执行强制解封的后台管理员 ID',
  reason VARCHAR(255) NOT NULL DEFAULT '' COMMENT '管理员解封原因快照，用于校验幂等载荷',
  released_admin_ban_count BIGINT NOT NULL DEFAULT 0 COMMENT '本命令释放的管理员封禁数量',
  released_manager_block_count BIGINT NOT NULL DEFAULT 0 COMMENT '本命令释放的经理封禁数量',
  old_status VARCHAR(32) NOT NULL DEFAULT '' COMMENT '首次执行前用户主状态',
  new_status VARCHAR(32) NOT NULL DEFAULT '' COMMENT '首次执行后用户主状态',
  status_restored BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否把 banned/disabled 恢复为 active',
  created_at_ms BIGINT NOT NULL COMMENT '创建时间，UTC epoch ms',
  updated_at_ms BIGINT NOT NULL COMMENT '更新时间，UTC epoch ms',
  PRIMARY KEY (app_code, command_id),
  KEY idx_admin_force_unban_target (app_code, target_user_id, created_at_ms)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='后台管理员强制解封幂等事实表';
