Files

33 lines
1.6 KiB
TypeScript

import { sql } from "drizzle-orm";
import { primaryKey, sqliteTable, text } from "drizzle-orm/sqlite-core";
export const progress = sqliteTable("progress", {
userId: text("user_id").notNull(),
planDate: text("plan_date").notNull(),
doneTasks: text("done_tasks").notNull().default("[]"),
mood: text("mood").notNull().default(""),
note: text("note").notNull().default(""),
checkinType: text("checkin_type").notNull().default("normal"),
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] })]);