apps/migration/src/old-db/schema/bugs.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 40 41 |
import { defineRelations, sql } from "drizzle-orm";
import { index, integer, sqliteTable, text } from "drizzle-orm/sqlite-core";
export const bugs = sqliteTable(
"bugs",
{
id: integer("id").primaryKey({ autoIncrement: true }),
guildId: text("guild_id").notNull(),
bugNumber: integer("bug_number").notNull(),
authorId: text("author_id").notNull(),
status: text("status", { enum: ["open", "closed"] })
.default("open")
.notNull(),
title: text("title").notNull(),
description: text("description").notNull(),
projects: text("projects", { mode: "json" }).$type<string[]>().default([]).notNull(),
sent: integer("sent", { mode: "boolean" }).default(false).notNull(),
messageId: text("message_id"),
threadId: text("thread_id"),
createdAt: integer("created_at", { mode: "timestamp" })
.default(sql`(unixepoch())`)
.notNull(),
updatedAt: integer("updated_at", { mode: "timestamp" })
.default(sql`(unixepoch())`)
.notNull(),
closedAt: integer("closed_at", { mode: "timestamp" }),
},
(t) => [
index("bugs_guild_idx").on(t.guildId),
index("bugs_author_idx").on(t.authorId),
index("bugs_status_idx").on(t.status),
index("bugs_guild_number_idx").on(t.guildId, t.bugNumber),
],
);
export type Bug = typeof bugs.$inferSelect;
|