SurfSense/surfsense_web/zero/queries/chat.ts
CREDO23 da8f90bfe2 feat: add Zero queries for all 6 synced tables
Define named queries matching each Electric hook's data needs:
- notifications.byUser (use-inbox)
- documents.bySpace (use-documents, use-documents-processing)
- connectors.bySpace (use-connectors-electric)
- messages.byThread (use-messages-electric)
- comments.byThread (use-comments-electric)
- chatSession.byThread (use-chat-session-state)

Also moves schema files from zero/tables/ to zero/schema/ for
consistent modular folder structure.
2026-03-23 17:54:43 +02:00

26 lines
728 B
TypeScript

import { defineQuery } from "@rocicorp/zero";
import { z } from "zod";
import { zql } from "../schema/index";
export const messageQueries = {
byThread: defineQuery(
z.object({ threadId: z.number() }),
({ args: { threadId } }) =>
zql.new_chat_messages.where("threadId", threadId).orderBy("createdAt", "asc"),
),
};
export const commentQueries = {
byThread: defineQuery(
z.object({ threadId: z.number() }),
({ args: { threadId } }) =>
zql.chat_comments.where("threadId", threadId).orderBy("createdAt", "asc"),
),
};
export const chatSessionQueries = {
byThread: defineQuery(
z.object({ threadId: z.number() }),
({ args: { threadId } }) => zql.chat_session_state.where("threadId", threadId).one(),
),
};