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