all repos — stealth-developers @ 0ee3bfbfad5c5c6434e730c64a504375334db464

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;