diff --git a/app/api/exercises/[id]/session/advance/route.ts b/app/api/exercises/[id]/session/advance/route.ts index 3802e5d..7abb45d 100644 --- a/app/api/exercises/[id]/session/advance/route.ts +++ b/app/api/exercises/[id]/session/advance/route.ts @@ -43,6 +43,12 @@ export async function POST( return NextResponse.json({ error: 'Session closed' }, { status: 410 }); } + // Mark session as started on first interaction + await sql` + UPDATE sessions SET started_at = now() + WHERE id = ${row.id} AND started_at IS NULL + `; + const currentIndex: number = row.current_question_index as number; const questionCount: number = row.question_count as number; diff --git a/app/api/exercises/[id]/session/route.ts b/app/api/exercises/[id]/session/route.ts index 76d3fa9..740da03 100644 --- a/app/api/exercises/[id]/session/route.ts +++ b/app/api/exercises/[id]/session/route.ts @@ -54,7 +54,7 @@ export async function GET( SELECT ${exerciseId}, ${userId}, - now(), + NULL, 0, e.end_time, e.duration_limit diff --git a/app/api/submissions/[sessionId]/autosave/route.ts b/app/api/submissions/[sessionId]/autosave/route.ts index ea6e780..7e47a4a 100644 --- a/app/api/submissions/[sessionId]/autosave/route.ts +++ b/app/api/submissions/[sessionId]/autosave/route.ts @@ -75,6 +75,12 @@ export async function POST( ); } + // Mark session as started on first interaction + await sql` + UPDATE sessions SET started_at = now() + WHERE id = ${sessionId} AND started_at IS NULL + `; + // Upsert the submission const upserted = await sql` INSERT INTO submissions (session_id, question_index, response_text, submitted_at, status)