feat: add Drizzle enums for schema
Made-with: Cursor
This commit is contained in:
27
src/db/schema/enums.ts
Normal file
27
src/db/schema/enums.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import { pgEnum } from 'drizzle-orm/pg-core';
|
||||
|
||||
export const userRoleEnum = pgEnum('user_role', ['guest', 'free', 'pro', 'admin']);
|
||||
export const planEnum = pgEnum('plan', ['free', 'pro']);
|
||||
export const subscriptionStatusEnum = pgEnum('subscription_status', ['active', 'trialing', 'cancelled', 'expired']);
|
||||
export const stackEnum = pgEnum('stack', ['html', 'css', 'js', 'ts', 'react', 'vue', 'nodejs', 'git', 'web_basics']);
|
||||
export const levelEnum = pgEnum('level', ['basic', 'beginner', 'intermediate', 'advanced', 'expert']);
|
||||
export const testModeEnum = pgEnum('test_mode', ['fixed', 'infinite', 'marathon']);
|
||||
export const testStatusEnum = pgEnum('test_status', ['in_progress', 'completed', 'abandoned']);
|
||||
export const questionTypeEnum = pgEnum('question_type', ['single_choice', 'multiple_select', 'true_false', 'short_text']);
|
||||
export const questionStatusEnum = pgEnum('question_status', ['pending', 'approved', 'rejected']);
|
||||
export const questionSourceEnum = pgEnum('question_source', ['llm_generated', 'manual']);
|
||||
export const reportStatusEnum = pgEnum('report_status', ['open', 'resolved', 'dismissed']);
|
||||
export const selfLevelEnum = pgEnum('self_level', ['jun', 'mid', 'sen']);
|
||||
|
||||
export type UserRole = (typeof userRoleEnum.enumValues)[number];
|
||||
export type Plan = (typeof planEnum.enumValues)[number];
|
||||
export type SubscriptionStatus = (typeof subscriptionStatusEnum.enumValues)[number];
|
||||
export type Stack = (typeof stackEnum.enumValues)[number];
|
||||
export type Level = (typeof levelEnum.enumValues)[number];
|
||||
export type TestMode = (typeof testModeEnum.enumValues)[number];
|
||||
export type TestStatus = (typeof testStatusEnum.enumValues)[number];
|
||||
export type QuestionType = (typeof questionTypeEnum.enumValues)[number];
|
||||
export type QuestionStatus = (typeof questionStatusEnum.enumValues)[number];
|
||||
export type QuestionSource = (typeof questionSourceEnum.enumValues)[number];
|
||||
export type ReportStatus = (typeof reportStatusEnum.enumValues)[number];
|
||||
export type SelfLevel = (typeof selfLevelEnum.enumValues)[number];
|
||||
1
src/db/schema/index.ts
Normal file
1
src/db/schema/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from './enums.js';
|
||||
Reference in New Issue
Block a user