-- 更新 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);