-- =============================================================================
-- 迁移：trigger_jobs 新增 last_error 字段 + description 字段
-- 日期：2026-03-23
-- 说明：
--   1. last_error — 最后一次执行异常的错误信息（NULL=无异常）
--   2. description — 任务中文描述（用于管理页面展示）
-- =============================================================================

ALTER TABLE biz.trigger_jobs
    ADD COLUMN IF NOT EXISTS last_error TEXT;

ALTER TABLE biz.trigger_jobs
    ADD COLUMN IF NOT EXISTS description TEXT;

COMMENT ON COLUMN biz.trigger_jobs.last_error IS '最后一次执行异常的错误信息（NULL=无异常）';
COMMENT ON COLUMN biz.trigger_jobs.description IS '任务中文描述（管理页面展示）';

-- 填充描述
UPDATE biz.trigger_jobs SET description = '每日凌晨4点，根据客户指数为助教生成待办任务' WHERE job_name = 'task_generator';
UPDATE biz.trigger_jobs SET description = '每小时检查超时未处理的任务，标记为过期' WHERE job_name = 'task_expiry_check';
UPDATE biz.trigger_jobs SET description = 'ETL数据更新后，检测客户是否已回店完成召回' WHERE job_name = 'recall_completion_check';
UPDATE biz.trigger_jobs SET description = '召回完成后，回溯检查备注是否需要重分类' WHERE job_name = 'note_reclassify_backfill';

-- =============================================================================
-- === ROLLBACK ===
-- ALTER TABLE biz.trigger_jobs DROP COLUMN IF EXISTS last_error;
-- ALTER TABLE biz.trigger_jobs DROP COLUMN IF EXISTS description;
-- =============================================================================

-- =============================================================================
-- 验证
-- =============================================================================
-- 1) 新增字段存在性
-- SELECT column_name, data_type, is_nullable
-- FROM information_schema.columns
-- WHERE table_schema = 'biz' AND table_name = 'trigger_jobs'
--   AND column_name IN ('last_error', 'description')
-- ORDER BY column_name;
-- 预期：2 行

-- 2) description 已填充
-- SELECT job_name, description FROM biz.trigger_jobs ORDER BY id;
-- 预期：4 行，description 非 NULL

-- 3) last_error 默认 NULL
-- SELECT job_name, last_error FROM biz.trigger_jobs ORDER BY id;
-- 预期：4 行，last_error 全为 NULL
