sync-docs-and-fixes
This commit is contained in:
@@ -25,10 +25,6 @@ export const users = mysqlTable("users", {
|
||||
email: varchar("email", { length: 255 }).notNull().unique(),
|
||||
emailVerified: timestamp("emailVerified", { mode: "date" }),
|
||||
image: varchar("image", { length: 255 }),
|
||||
|
||||
// Custom Role Field for RBAC (Default Role)
|
||||
role: varchar("role", { length: 50 }).default("student"),
|
||||
|
||||
// Credentials Auth (Optional)
|
||||
password: varchar("password", { length: 255 }),
|
||||
|
||||
@@ -338,23 +334,27 @@ export const classes = mysqlTable("classes", {
|
||||
}).onDelete("set null"),
|
||||
}));
|
||||
|
||||
export const classSubjectEnum = mysqlEnum("subject", ["语文", "数学", "英语", "美术", "体育", "科学", "社会", "音乐"]);
|
||||
|
||||
export const classSubjectTeachers = mysqlTable("class_subject_teachers", {
|
||||
classId: varchar("class_id", { length: 128 }).notNull(),
|
||||
subject: classSubjectEnum.notNull(),
|
||||
subjectId: varchar("subject_id", { length: 128 }).notNull(),
|
||||
teacherId: varchar("teacher_id", { length: 128 }).references(() => users.id, { onDelete: "set null" }),
|
||||
createdAt: timestamp("created_at").defaultNow().notNull(),
|
||||
updatedAt: timestamp("updated_at").defaultNow().onUpdateNow().notNull(),
|
||||
}, (table) => ({
|
||||
pk: primaryKey({ columns: [table.classId, table.subject] }),
|
||||
pk: primaryKey({ columns: [table.classId, table.subjectId] }),
|
||||
classIdx: index("class_subject_teachers_class_idx").on(table.classId),
|
||||
teacherIdx: index("class_subject_teachers_teacher_idx").on(table.teacherId),
|
||||
subjectIdIdx: index("class_subject_teachers_subject_id_idx").on(table.subjectId),
|
||||
classFk: foreignKey({
|
||||
columns: [table.classId],
|
||||
foreignColumns: [classes.id],
|
||||
name: "cst_c_fk",
|
||||
}).onDelete("cascade"),
|
||||
subjectFk: foreignKey({
|
||||
columns: [table.subjectId],
|
||||
foreignColumns: [subjects.id],
|
||||
name: "cst_s_fk",
|
||||
}).onDelete("cascade"),
|
||||
}));
|
||||
|
||||
export const classEnrollments = mysqlTable("class_enrollments", {
|
||||
|
||||
Reference in New Issue
Block a user