import { router, publicProcedure, createCallerFactory, } from "../../trpc/server"; import { _db } from "../../database/lowdb"; export const conversations = router({ fetchAll: publicProcedure.query(async () => { return await _db.conversations.findAll(); }), fetchOne: publicProcedure .input((x) => x as { id: string }) .query(async ({ input: { id } }) => { return await _db.conversations.findById(id); }), start: publicProcedure.mutation(async () => { const row = { id: "", title: "New Conversation", userId: "1", }; return await _db.conversations.create(row); }), deleteOne: publicProcedure .input((x) => x as { id: string }) .mutation(async ({ input: { id } }) => { await _db.conversations.delete(id); return { ok: true }; }), updateTitle: publicProcedure .input( (x) => x as { id: string; title: string; } ) .mutation(async ({ input: { id, title } }) => { await _db.conversations.update(id, { title }); return { ok: true }; }), fetchMessages: publicProcedure .input((x) => x as { conversationId: string }) .query(async ({ input: { conversationId } }) => { return await _db.conversations.fetchMessages(conversationId); }), }); export const createCaller = createCallerFactory(conversations);