import { getRedis } from "./redis"; import { sessionTtlSeconds } from "./session-ttl"; export type SessionPayload = { userId: number; sessionVersion: number; createdAt: string; }; const sessionKey = (id: string) => `sess:${id}`; export async function createSession( sessionId: string, payload: SessionPayload, ): Promise { const redis = getRedis(); const ttl = sessionTtlSeconds(); await redis.set(sessionKey(sessionId), JSON.stringify(payload), "EX", ttl); } export async function readSession( sessionId: string, ): Promise { const redis = getRedis(); const raw = await redis.get(sessionKey(sessionId)); if (!raw) return null; try { return JSON.parse(raw) as SessionPayload; } catch { return null; } } export async function deleteSession(sessionId: string): Promise { const redis = getRedis(); await redis.del(sessionKey(sessionId)); }