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", { mode: "timestamp" }).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, }), }, }));