feat: sync savings chat history with convex

This commit is contained in:
2026-06-16 10:24:18 +02:00
parent 3541d00864
commit 4836e12a11
7 changed files with 1189 additions and 357 deletions

View File

@@ -9,6 +9,12 @@ const loanStatus = v.union(
v.literal("abbezahlt"),
v.literal("pausiert"),
);
const chatRole = v.union(v.literal("user"), v.literal("assistant"));
const chatToolTrace = v.object({
name: v.string(),
inputSummary: v.string(),
resultSummary: v.string(),
});
export default defineSchema({
...authTables,
@@ -175,4 +181,25 @@ export default defineSchema({
isDecoupled: v.optional(v.boolean()),
submittedTan: v.optional(v.string()),
}).index("by_user", ["userId"]),
chatSessions: defineTable({
userId: v.id("users"),
title: v.string(),
createdAt: v.number(),
updatedAt: v.number(),
messageCount: v.number(),
legacyLocalId: v.optional(v.string()),
isDeleted: v.boolean(),
})
.index("by_user_deleted_updated", ["userId", "isDeleted", "updatedAt"])
.index("by_user_legacyLocalId", ["userId", "legacyLocalId"]),
chatMessages: defineTable({
userId: v.id("users"),
sessionId: v.id("chatSessions"),
role: chatRole,
content: v.string(),
createdAt: v.number(),
toolTrace: v.optional(v.array(chatToolTrace)),
}).index("by_user_session_created", ["userId", "sessionId", "createdAt"]),
});