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().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;