Files

95 lines
2.4 KiB
TypeScript

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
}),
},
}))