feat(db): update database migrations and schema relations

- Update drizzle migrations (0000, 0001, 0002) and meta snapshots

- Update DB relations definition
This commit is contained in:
SpecialX
2026-06-23 17:36:30 +08:00
parent 27db170c0a
commit 396c2c568d

View File

@@ -35,6 +35,8 @@ import {
attendanceRecords, attendanceRecords,
attendanceRules, attendanceRules,
passwordSecurity, passwordSecurity,
errorBookItems,
errorBookReviews,
} from "./schema"; } from "./schema";
// --- Users & Roles Relations --- // --- Users & Roles Relations ---
@@ -55,6 +57,8 @@ export const usersRelations = relations(users, ({ many, one }) => ({
receivedMessages: many(messages, { relationName: "message_receiver" }), receivedMessages: many(messages, { relationName: "message_receiver" }),
notifications: many(messageNotifications), notifications: many(messageNotifications),
passwordSecurity: one(passwordSecurity), passwordSecurity: one(passwordSecurity),
errorBookItems: many(errorBookItems),
errorBookReviews: many(errorBookReviews),
})); }));
export const accountsRelations = relations(accounts, ({ one }) => ({ export const accountsRelations = relations(accounts, ({ one }) => ({
@@ -109,6 +113,9 @@ export const questionsRelations = relations(questions, ({ one, many }) => ({
// Usage in Exams // Usage in Exams
examQuestions: many(examQuestions), examQuestions: many(examQuestions),
// Error book items referencing this question
errorBookItems: many(errorBookItems),
})); }));
export const knowledgePointsRelations = relations(knowledgePoints, ({ one, many }) => ({ export const knowledgePointsRelations = relations(knowledgePoints, ({ one, many }) => ({
@@ -484,3 +491,32 @@ export const passwordSecurityRelations = relations(passwordSecurity, ({ one }) =
references: [users.id], references: [users.id],
}), }),
})); }));
// --- Error Book Relations ---
export const errorBookItemsRelations = relations(errorBookItems, ({ one, many }) => ({
student: one(users, {
fields: [errorBookItems.studentId],
references: [users.id],
}),
question: one(questions, {
fields: [errorBookItems.questionId],
references: [questions.id],
}),
subject: one(subjects, {
fields: [errorBookItems.subjectId],
references: [subjects.id],
}),
reviews: many(errorBookReviews),
}));
export const errorBookReviewsRelations = relations(errorBookReviews, ({ one }) => ({
item: one(errorBookItems, {
fields: [errorBookReviews.itemId],
references: [errorBookItems.id],
}),
student: one(users, {
fields: [errorBookReviews.studentId],
references: [users.id],
}),
}));