import { defineRelations } from "drizzle-orm"; import * as schema from "./schema"; export const relations = defineRelations(schema, (r) => ({ users: { sessions: r.many.sessions(), accounts: r.many.accounts(), }, sessions: { users: r.one.users({ from: r.sessions.userId, to: r.users.id }), }, accounts: { users: r.one.users({ from: r.accounts.userId, to: r.users.id }), }, agents: { topics: r.many.topics({ from: r.agents.id, to: r.topics.agentId }), }, topics: { messages: r.many.messages({ from: r.topics.id, to: r.messages.topicId }), generations: r.many.generations({ from: r.topics.id, to: r.generations.topicId }), agent: r.one.agents({ from: r.topics.agentId, to: r.agents.id, optional: false, }), }, messages: { topic: r.one.topics({ from: r.messages.topicId, to: r.topics.id, optional: false, }), parts: r.many.messageParts({ from: r.messages.id, to: r.messageParts.messageId }), attachments: r.many.attachments({ from: r.messages.id, to: r.attachments.messageId }), generation: r.one.generations({ from: r.messages.generationId, to: r.generations.id }), parent: r.one.messages({ from: r.messages.parentMessageId, to: r.messages.id }), children: r.many.messages({ from: r.messages.id, to: r.messages.parentMessageId }), }, attachments: { file: r.one.files({ from: r.attachments.fileId, to: r.files.id, optional: false, }), }, messageParts: { toolCall: r.one.toolCalls({ from: r.messageParts.toolCallId, to: r.toolCalls.id }), }, models: { provider: r.one.providers({ from: r.models.providerId, to: r.providers.id, optional: false, }), }, providers: { models: r.many.models({ from: r.providers.id, to: r.models.providerId }), }, }))