Add study review planning and mock exam hub

This commit is contained in:
Codex committed 2026-09-17 12:37:58 +08:00
1 parent f5bfd501a5
commit 0e118b6eaf
7 files changed
+109 -1

No files matched your search

+20
View File
@@ -10,3 +10,23 @@ export const progress = sqliteTable("progress", {
checkedAt: text("checked_at").notNull().default(sql`CURRENT_TIMESTAMP`),
updatedAt: text("updated_at").notNull().default(sql`CURRENT_TIMESTAMP`),
}, (t) => [primaryKey({ columns: [t.userId, t.planDate] })]);
export const studyDays = sqliteTable("study_days", {
userId: text("user_id").notNull(),
planDate: text("plan_date").notNull(),
durations: text("durations").notNull().default("{}"),
weeklyReview: text("weekly_review").notNull().default(""),
nextFocus: text("next_focus").notNull().default(""),
updatedAt: text("updated_at").notNull().default(sql`CURRENT_TIMESTAMP`),
}, (t) => [primaryKey({ columns: [t.userId, t.planDate] })]);
export const mockExams = sqliteTable("mock_exams", {
userId: text("user_id").notNull(),
examDate: text("exam_date").notNull(),
listening: text("listening").notNull().default(""),
reading: text("reading").notNull().default(""),
writing: text("writing").notNull().default(""),
translation: text("translation").notNull().default(""),
note: text("note").notNull().default(""),
updatedAt: text("updated_at").notNull().default(sql`CURRENT_TIMESTAMP`),
}, (t) => [primaryKey({ columns: [t.userId, t.examDate] })]);