Files
affiliate_dash/backend/internal/database/migrations/017_rock_using_warning.sql
T

28 lines
1.2 KiB
SQL

-- ============================================================================
-- 017_rock_using_warning.sql
-- Rock Token「扫码使用中」超时预警:记录变为 using 的时间 + 可配置阈值
-- ============================================================================
-- 1. 使用中起点:进入 using 时写入,释放/重置回 available 时清空。
ALTER TABLE rock_tokens
ADD COLUMN IF NOT EXISTS using_at TIMESTAMPTZ;
-- 只对 using 建部分索引,列表按状态过滤时可直接用上。
CREATE INDEX IF NOT EXISTS idx_rock_tokens_using_at
ON rock_tokens (using_at)
WHERE status = 'using';
-- 2. 历史数据无法拿到精确的“进入 using”时刻:
-- 0666.pro 只暴露 Token 创建时间,且与后续打包导入的口径保持一致,
-- 这里统一用 claimed_at(缺失时退回 created_at)近似回填。
UPDATE rock_tokens
SET using_at = COALESCE(claimed_at, created_at)
WHERE status = 'using' AND using_at IS NULL;
-- 3. 橙色/红色预警阈值(天),默认 3 / 5。
ALTER TABLE rock_configs
ADD COLUMN IF NOT EXISTS using_warn_days INT NOT NULL DEFAULT 3;
ALTER TABLE rock_configs
ADD COLUMN IF NOT EXISTS using_danger_days INT NOT NULL DEFAULT 5;