28 lines
1.2 KiB
SQL
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;
|