-- 运营内容黑名单是独立小表；CREATE TABLE 不扫描或重写 users，发布时只获取数据字典锁。
-- 运行时单用户判断命中 PRIMARY KEY (app_code,user_id)，后台列表命中 status/time 覆盖索引，
-- 不允许把列表裁决退化为 users 全表扫描。
CREATE TABLE IF NOT EXISTS user_content_blacklist (
  app_code VARCHAR(32) NOT NULL COMMENT '应用编码，用于多租户隔离',
  user_id BIGINT NOT NULL COMMENT '被屏蔽用户 ID',
  status VARCHAR(16) NOT NULL COMMENT 'active/removed',
  operator_admin_id BIGINT NOT NULL COMMENT '最近操作后台管理员 ID',
  reason VARCHAR(255) NOT NULL DEFAULT '' COMMENT '最近操作原因',
  created_at_ms BIGINT NOT NULL COMMENT '本次进入黑名单时间，UTC epoch ms',
  updated_at_ms BIGINT NOT NULL COMMENT '最近操作时间，UTC epoch ms',
  PRIMARY KEY (app_code, user_id),
  KEY idx_user_content_blacklist_status_time (app_code, status, created_at_ms, user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户运营内容屏蔽当前态';
