-- ============================================
-- 迁移: 005_add_web_login_codes.sql
-- 目的: 添加网页端微信扫码登录临时码表
-- 日期: 2026-04-20
-- 依赖: users 表（001 创建）
-- 说明: 用户扫码后生成临时登录码，前端轮询验证登录状态
-- ============================================

-- 05_add_web_login_codes.sql
-- 网页端微信扫码登录：临时登录码表

CREATE TABLE IF NOT EXISTS web_login_codes (
    id            SERIAL PRIMARY KEY,
    code          VARCHAR(32) UNIQUE NOT NULL,   -- 登录码，如 ASD-ABC123
    user_id       INTEGER,                        -- 关联用户（确认登录后写入）
    openid        VARCHAR(128),                    -- 用户 openid
    token         TEXT,                            -- 生成的 JWT（确认后写入）
    expires_at    TIMESTAMPTZ NOT NULL,           -- 过期时间（10分钟内有效）
    created_at    TIMESTAMPTZ DEFAULT NOW()
);

-- 登录码索引
CREATE INDEX IF NOT EXISTS idx_web_login_codes_code ON web_login_codes(code);
CREATE INDEX IF NOT EXISTS idx_web_login_codes_expires ON web_login_codes(expires_at);

-- 定期清理过期登录码（可由 cron 或服务启动时触发）
-- DELETE FROM web_login_codes WHERE expires_at < NOW();
