Skip to content

Commit f8d1a1c

Browse files
Refactor: Migrate lesson_completions table and related queries from student_id to user_id.
1 parent b648751 commit f8d1a1c

5 files changed

Lines changed: 19 additions & 19 deletions

File tree

app/[locale]/dashboard/admin/analytics/page.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ export default async function AnalyticsPage({
2424
searchParams,
2525
}: {
2626
params: Promise<{ locale: string }>
27-
searchParams: SearchParams
27+
searchParams: Promise<SearchParams>
2828
}) {
2929
const { locale } = await params
30+
const resolvedSearchParams = await searchParams
3031
const t = await getTranslations('dashboard.admin.analytics')
3132
const tBreadcrumbs = await getTranslations('dashboard.admin.breadcrumbs')
3233
const dateLocale = locale === 'es' ? es : enUS
@@ -48,7 +49,7 @@ export default async function AnalyticsPage({
4849
const tenantId = await getCurrentTenantId()
4950

5051
// Get period from query params (default: 30 days)
51-
const period = searchParams.period || '30'
52+
const period = resolvedSearchParams.period || '30'
5253
const daysAgo = parseInt(period)
5354
const startDate = new Date()
5455
startDate.setDate(startDate.getDate() - daysAgo)
@@ -130,11 +131,11 @@ export default async function AnalyticsPage({
130131

131132
const { data: activeStudentIds } = await supabase
132133
.from('lesson_completions')
133-
.select('student_id')
134+
.select('user_id')
134135
.eq('tenant_id', tenantId)
135136
.gte('completed_at', thirtyDaysAgo.toISOString())
136137

137-
const activeStudents = new Set(activeStudentIds?.map((s) => s.student_id)).size
138+
const activeStudents = new Set(activeStudentIds?.map((s) => s.user_id)).size
138139

139140
const { count: totalLessonCompletions } = await supabase
140141
.from('lesson_completions')
@@ -174,7 +175,7 @@ export default async function AnalyticsPage({
174175
const { count: completedLessons } = await supabase
175176
.from('lesson_completions')
176177
.select('*', { count: 'exact', head: true })
177-
.eq('student_id', (enrollment as any).student_id)
178+
.eq('user_id', (enrollment as any).user_id)
178179
.in(
179180
'lesson_id',
180181
(
@@ -245,7 +246,7 @@ export default async function AnalyticsPage({
245246
const { count: completedCount } = await supabase
246247
.from('lesson_completions')
247248
.select('*', { count: 'exact', head: true })
248-
.eq('student_id', enrollment.user_id)
249+
.eq('user_id', enrollment.user_id)
249250
.in('lesson_id', lessonIds)
250251

251252
totalCompletions += (completedCount || 0) / lessonIds.length

app/[locale]/dashboard/admin/users/[userId]/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ export default async function UserDetailPage({ params }: PageProps) {
105105
)
106106
)
107107
`)
108-
.eq('student_id', userId)
108+
.eq('user_id', userId)
109109
.eq('tenant_id', tenantId)
110110
.order('completed_at', { ascending: false })
111111
.limit(10)

app/api/seed-test-data/route.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,18 +104,18 @@ export async function POST() {
104104
const lessonCompletions = [
105105
// Course 1: 2 out of 3 lessons
106106
{
107-
student_id: studentUserId,
107+
user_id: studentUserId,
108108
lesson_id: 1,
109109
completed_at: new Date(Date.now() - 6 * 24 * 60 * 60 * 1000).toISOString()
110110
},
111111
{
112-
student_id: studentUserId,
112+
user_id: studentUserId,
113113
lesson_id: 2,
114114
completed_at: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000).toISOString()
115115
},
116116
// Course 3: 1 out of 24 lessons
117117
{
118-
student_id: studentUserId,
118+
user_id: studentUserId,
119119
lesson_id: 8,
120120
completed_at: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000).toISOString()
121121
}
@@ -125,7 +125,7 @@ export async function POST() {
125125
const { error: completionError } = await supabase
126126
.from('lesson_completions')
127127
.upsert(completion, {
128-
onConflict: 'student_id,lesson_id'
128+
onConflict: 'user_id,lesson_id'
129129
})
130130

131131
if (completionError) {

scripts/seed-playwright.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -426,8 +426,7 @@ async function main() {
426426
const { error: delComErr } = await supabase
427427
.from('lesson_completions')
428428
.delete()
429-
.eq('student_id', userId)
430-
.eq('course_id', courseId)
429+
.eq('user_id', userId)
431430

432431
if (delComErr) console.warn('Warning deleting lesson_completions:', delComErr.message)
433432

scripts/seed-test-enrollments.sql

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,23 +65,23 @@ BEGIN
6565

6666
-- Add lesson completions for Course 1 (2 out of 3 lessons completed)
6767
-- Lesson 1: Completed
68-
INSERT INTO lesson_completions (student_id, lesson_id, completed_at)
68+
INSERT INTO lesson_completions (user_id, lesson_id, completed_at)
6969
VALUES (student_user_id, 1, NOW() - INTERVAL '6 days')
70-
ON CONFLICT (student_id, lesson_id) DO NOTHING;
70+
ON CONFLICT (user_id, lesson_id) DO NOTHING;
7171

7272
-- Lesson 2: Completed
73-
INSERT INTO lesson_completions (student_id, lesson_id, completed_at)
73+
INSERT INTO lesson_completions (user_id, lesson_id, completed_at)
7474
VALUES (student_user_id, 2, NOW() - INTERVAL '5 days')
75-
ON CONFLICT (student_id, lesson_id) DO NOTHING;
75+
ON CONFLICT (user_id, lesson_id) DO NOTHING;
7676

7777
-- Lesson 3: Not completed (to show "In Progress" status)
7878

7979
RAISE NOTICE 'Created 2/3 lesson completions for Course 1';
8080

8181
-- Add lesson completion for Course 3 (1 out of 24 lessons completed)
82-
INSERT INTO lesson_completions (student_id, lesson_id, completed_at)
82+
INSERT INTO lesson_completions (user_id, lesson_id, completed_at)
8383
VALUES (student_user_id, 8, NOW() - INTERVAL '2 days')
84-
ON CONFLICT (student_id, lesson_id) DO NOTHING;
84+
ON CONFLICT (user_id, lesson_id) DO NOTHING;
8585

8686
RAISE NOTICE 'Created 1/24 lesson completion for Course 3';
8787

0 commit comments

Comments
 (0)