feat(*): add data injection

This commit is contained in:
h
2026-02-04 17:26:41 +01:00
parent 504282cb0f
commit 5980d98019
12 changed files with 648 additions and 3 deletions

View File

@@ -22,6 +22,12 @@ export const getById = query({
ragDatabaseId: v.id('ragDatabases'),
activeSince: v.number()
})
),
injectCollectionMode: v.optional(
v.object({
injectDatabaseId: v.id('injectDatabases'),
activeSince: v.number()
})
)
}),
v.null()
@@ -50,6 +56,12 @@ export const getByTelegramId = query({
ragDatabaseId: v.id('ragDatabases'),
activeSince: v.number()
})
),
injectCollectionMode: v.optional(
v.object({
injectDatabaseId: v.id('injectDatabases'),
activeSince: v.number()
})
)
}),
v.null()
@@ -177,3 +189,41 @@ export const getRagCollectionMode = query({
return user?.ragCollectionMode ?? null;
}
});
export const startInjectCollectionMode = mutation({
args: { userId: v.id('users'), injectDatabaseId: v.id('injectDatabases') },
returns: v.null(),
handler: async (ctx, args) => {
await ctx.db.patch(args.userId, {
injectCollectionMode: {
injectDatabaseId: args.injectDatabaseId,
activeSince: Date.now()
}
});
return null;
}
});
export const stopInjectCollectionMode = mutation({
args: { userId: v.id('users') },
returns: v.null(),
handler: async (ctx, args) => {
await ctx.db.patch(args.userId, { injectCollectionMode: undefined });
return null;
}
});
export const getInjectCollectionMode = query({
args: { userId: v.id('users') },
returns: v.union(
v.object({
injectDatabaseId: v.id('injectDatabases'),
activeSince: v.number()
}),
v.null()
),
handler: async (ctx, args) => {
const user = await ctx.db.get(args.userId);
return user?.injectCollectionMode ?? null;
}
});