95 lines
2.4 KiB
TypeScript
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
|
|
}),
|
|
},
|
|
})) |