import { pgTable, uuid, text, integer, timestamp } from 'drizzle-orm/pg-core'; import { jsonb } from 'drizzle-orm/pg-core'; import { stackEnum, levelEnum, questionTypeEnum, questionStatusEnum, questionSourceEnum } from './enums.js'; export const questionBank = pgTable('question_bank', { id: uuid('id').primaryKey().defaultRandom(), stack: stackEnum('stack').notNull(), level: levelEnum('level').notNull(), type: questionTypeEnum('type').notNull(), questionText: text('question_text').notNull(), options: jsonb('options').$type>(), correctAnswer: jsonb('correct_answer').$type().notNull(), explanation: text('explanation').notNull(), status: questionStatusEnum('status').notNull().default('pending'), source: questionSourceEnum('source').notNull(), usageCount: integer('usage_count').notNull().default(0), createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(), approvedAt: timestamp('approved_at', { withTimezone: true }), }); export type QuestionBank = typeof questionBank.$inferSelect; export type NewQuestionBank = typeof questionBank.$inferInsert;