-- =============================================================================
-- S8 订单计划交付超期 近30天灰度规则：受控启用（enabled 0 -> 1）+ 双闸门
-- 业务已拍板：首轮只处理 1 条真实业务单 S20260515001 / 瑞贝德；SO001 与 49 历史老单已排除。
-- 受控启用：enabled=1，同时设 next_run_at / paused_until = NOW()+30 分钟（第二闸门），
--          全局 S8:Scheduler:Enabled 默认 false 为主闸门（本脚本不改全局配置）。
-- 守卫：仅当 enabled=0 且 expression 已含视图 / 近30天窗口 / order_no<>'SO001' 时才启用（防误启）。
-- 不改 expression / params_json / last_run_at / lock_token / lock_until；不碰异常表 / 通知表。
-- 真实首跑由独立批次 S8-ORDER-DELIVERY-GRAY-FIRST-RUN-1 在确认调度受控后释放。
-- =============================================================================
UPDATE ado_s8_watch_rule
SET enabled      = 1,
    next_run_at  = DATE_ADD(NOW(), INTERVAL 30 MINUTE),
    paused_until = DATE_ADD(NOW(), INTERVAL 30 MINUTE),
    updated_at   = NOW()
WHERE rule_code = 'RULE_S1_ORDER_DELIVERY_DUE_GRAY30_DATE_DELAY'
  AND enabled = 0
  AND expression LIKE '%v_s8_order_delivery_watch%'
  AND expression LIKE '%order_no <> ''SO001''%'
  AND expression LIKE '%DATE_SUB(CURDATE(), INTERVAL 30 DAY)%';
