import { sql } from "drizzle-orm"; import * as s from "drizzle-orm/sqlite-core"; import { actors } from "./actors"; import { guilds } from "./guilds"; export const bugs = s.sqliteTable("bugs", { id: s.integer("id").primaryKey({ autoIncrement: true }), guildId: s .integer("guild_id") .notNull() .references(() => guilds.id, { onDelete: "cascade" }), actorId: s .integer("actor_id") .notNull() .references(() => actors.id, { onDelete: "cascade" }), bugNumber: s.integer("bug_number").notNull(), status: s.text("status", { enum: ["open", "closed", "resolved"] }), title: s.text("title").notNull(), description: s.text("description").notNull(), affectedProjects: s .text("affected_projects", { mode: "json" }) .$type() .default([]) .notNull(), sent: s.integer("sent", { mode: "boolean" }).default(false).notNull(), messageId: s.text("message_id"), threadId: s.text("thread_id"), createdAt: s .integer("created_at", { mode: "timestamp" }) .default(sql`(unixepoch())`) .notNull(), updatedAt: s .integer("updated_at", { mode: "timestamp" }) .default(sql`(unixepoch())`) .notNull(), closedAt: s.integer("closed_at", { mode: "timestamp" }), }); export type Bug = typeof bugs.$inferSelect; export type NewBug = typeof bugs.$inferInsert;