import { defineRelations } from "drizzle-orm" import * as s from "drizzle-orm/sqlite-core" export const actors = s.sqliteTable("actors", { id: s.integer("id").primaryKey({ autoIncrement: true }), discordId: s.text("discord_id").unique(), displayName: s.text("display_name"), username: s.text("username"), avatar: s.text("avatar"), createdAt: s.integer("created_at", { mode: "timestamp" }).notNull(), updatedAt: s.integer("updated_at", { mode: "timestamp" }).notNull(), deletedAt: s.integer("deleted_at", { mode: "timestamp" }), }) export const sessions = s.sqliteTable("sessions", { id: s.text("id").primaryKey(), userId: s.integer("user_id") .notNull() .references(() => actors.id), accessToken: s.text("access_token").notNull(), refreshToken: s.text("refresh_token").notNull(), expiresAt: s.integer("expires_at").notNull(), createdAt: s.integer("created_at", { mode: "timestamp" }).notNull(), scope: s.text("scope"), tokenType: s.text("token_type"), }) export const actorRelationships = defineRelations( { actors, sessions }, (r) => ({ actors: { sessions: r.many.sessions({ from: r.actors.id, to: r.sessions.userId, }), }, sessions: { actor: r.one.actors({ from: r.sessions.userId, to: r.actors.id, }), }, }) )