pkgs/db/src/schemas/actors.ts (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import * as s from "drizzle-orm/sqlite-core";
import { guilds } from "./guilds";
import { users } from "./users";
export const actors = s.sqliteTable(
"actors",
{
id: s.integer("id").primaryKey({ autoIncrement: true }),
guildId: s
.integer("guild_id")
.notNull()
.references(() => guilds.id, { onDelete: "cascade" }),
userId: s
.integer("user_id")
.notNull()
.references(() => users.id, { onDelete: "cascade" }),
discordId: s.text("discord_id"),
displayName: s.text("display_name"),
username: s.text("username"),
avatar: s.text("avatar"),
pin: s.text("pin"),
pinExpiresIn: s.integer("pin_expires_in", { mode: "timestamp" }),
robloxId: s.text("roblox_id"),
moderator: s.integer("moderator", { mode: "boolean" }),
createdAt: s.integer("created_at", { mode: "timestamp" }).notNull(),
updatedAt: s.integer("updated_at", { mode: "timestamp" }).notNull(),
deletedAt: s.integer("deleted_at", { mode: "timestamp" }),
},
(table) => [s.uniqueIndex("actors_guild_user_idx").on(table.guildId, table.userId)],
);
export type Actor = typeof actors.$inferSelect;
export type NewActor = typeof actors.$inferInsert;
|