4
5// User operations
6export async function createOrUpdateUser(name: string, email: string): Promise<User> {
7 // Try to find existing user
8 const existingUser = await sqlite.execute(
33}
34
35export async function getUserByEmail(email: string): Promise<User | null> {
36 const result = await sqlite.execute(
37 `SELECT * FROM ${TABLE_NAMES.USERS} WHERE email = ?`,
42
43// Task set operations
44export async function createTaskSet(
45 userId: number,
46 task1: string,
68}
69
70export async function getTaskSetByUserAndDate(userId: number, date: string): Promise<TaskSet | null> {
71 const result = await sqlite.execute(
72 `SELECT * FROM ${TABLE_NAMES.TASK_SETS} WHERE user_id = ? AND date = ?`,
76}
77
78export async function getTaskSetById(id: number): Promise<TaskSet | null> {
79 const result = await sqlite.execute(
80 `SELECT * FROM ${TABLE_NAMES.TASK_SETS} WHERE id = ?`,
85
86// Task completion operations
87export async function createTaskCompletion(
88 userId: number,
89 taskSetId: number,
111}
112
113export async function getCompletionByToken(token: string): Promise<TaskCompletion | null> {
114 const result = await sqlite.execute(
115 `SELECT * FROM ${TABLE_NAMES.COMPLETIONS} WHERE response_token = ?`,
119}
120
121export async function getCompletionByUserAndDate(userId: number, date: string): Promise<TaskCompletion | null> {
122 const result = await sqlite.execute(
123 `SELECT * FROM ${TABLE_NAMES.COMPLETIONS} WHERE user_id = ? AND completion_date = ?`,
128
129// Dashboard data
130export async function getDashboardData(userId: number): Promise<DashboardData> {
131 const user = await sqlite.execute(
132 `SELECT * FROM ${TABLE_NAMES.USERS} WHERE id = ?`,
182
183// Get users who need evening reminders (have tasks for today but no completion record)
184export async function getUsersNeedingEveningReminder(): Promise<Array<{user: User, taskSet: TaskSet}>> {
185 const today = new Date().toISOString().split('T')[0];
186
213
214// Get users who need morning reminders (marked incomplete yesterday)
215export async function getUsersNeedingMorningReminder(): Promise<Array<{user: User, taskSet: TaskSet, completion: TaskCompletion}>> {
216 const yesterday = new Date();
217 yesterday.setDate(yesterday.getDate() - 1);