import { and, desc, eq } from "drizzle-orm"; import { messages, topics } from "~~/db/schema"; import type { Message, Topic } from '~~/types' export default defineEventHandler(async (event) => { await protectRoute(event); const db = useDrizzle(); const rows = await db.select().from(topics).where(and(eq(topics.userId, event.context.user.id), eq(topics.id, getRouterParam(event, 'id')!))); if (rows.length === 0) { throw createError({ statusCode: 404, statusMessage: 'Topic not found' }); } const topic = rows[0] as Topic & { messages: Message[] }; topic.messages = await db.select().from(messages).where(eq(messages.topicId, topic.id)).orderBy(desc(messages.createdAt)); return topic; });