iloom-flatten/migrations/20260530_002_update_share_links.sql

44 lines
1.7 KiB
MySQL
Raw Normal View History

-- 更新 share_links 表,添加新流程所需字段
-- 添加链接状态字段
ALTER TABLE share_links ADD COLUMN IF NOT EXISTS status TEXT NOT NULL DEFAULT 'pending';
-- pending: 待点击
-- clicked: 已点击
-- confirmed: 已确认
-- rejected: 已拒绝
-- expired: 已过期
-- cancelled: 已取消
-- 添加点击时间字段
ALTER TABLE share_links ADD COLUMN IF NOT EXISTS clicked_at TIMESTAMPTZ;
-- 添加工厂确认/拒绝时间
ALTER TABLE share_links ADD COLUMN IF NOT EXISTS responded_at TIMESTAMPTZ;
-- 添加工厂响应结果
ALTER TABLE share_links ADD COLUMN IF NOT EXISTS response_result TEXT;
-- confirmed: 确认合作
-- rejected: 拒绝合作
-- 添加拒绝原因
ALTER TABLE share_links ADD COLUMN IF NOT EXISTS reject_reason TEXT;
-- 添加过期时间改为30分钟
ALTER TABLE share_links ADD COLUMN IF NOT EXISTS expires_at TIMESTAMPTZ;
-- 更新现有数据设置默认过期时间为创建后30分钟
UPDATE share_links
SET expires_at = COALESCE(expires_at, created_at + INTERVAL '30 minutes')
WHERE expires_at IS NULL;
-- 添加注释
COMMENT ON COLUMN share_links.status IS '链接状态pending-待点击, clicked-已点击, confirmed-已确认, rejected-已拒绝, expired-已过期, cancelled-已取消';
COMMENT ON COLUMN share_links.clicked_at IS '工厂点击链接的时间';
COMMENT ON COLUMN share_links.responded_at IS '工厂确认/拒绝的时间';
COMMENT ON COLUMN share_links.response_result IS '工厂响应结果confirmed-确认, rejected-拒绝';
COMMENT ON COLUMN share_links.reject_reason IS '拒绝原因';
-- 创建索引
CREATE INDEX IF NOT EXISTS idx_share_links_status ON share_links(status);
CREATE INDEX IF NOT EXISTS idx_share_links_expires ON share_links(expires_at);