- Add Profile enum (ISABELLA, FRANCESCA, SEBASTIAN) to Child model - Add ?profile= query param override to /api/curriculum/next - Pass profile prop from profile-specific pages to ExerciseSession - Fix curriculum import paths (engine uses @/curriculum/ alias) - Clear stale curriculumCache on dev reload - Fix self-referential prerequisites in Francesca etapa-1 - Fix prerequisite chains in Francesca etapa-2,3,4 and Sebastian etapa-2,3 - Add Francesca curriculum: 2-3 digit sums, subtractions, multiplications, short readings - Add Sebastian curriculum: 2-3 digit sums, interactive exercises, Argentine history, flags - All 44 E2E tests pass, TypeScript compiles cleanly
21 lines
788 B
TypeScript
21 lines
788 B
TypeScript
import { NextRequest, NextResponse } from "next/server"
|
|
import { prisma } from "@/lib/db"
|
|
import { getNextExercise } from "@/lib/curriculum/engine"
|
|
|
|
export async function GET(request: NextRequest) {
|
|
const childId = request.nextUrl.searchParams.get("childId")
|
|
const topic = request.nextUrl.searchParams.get("topic") || "lectura"
|
|
if (!childId) {
|
|
return NextResponse.json({ error: "childId required" }, { status: 400 })
|
|
}
|
|
|
|
const child = await prisma.child.findUnique({
|
|
where: { id: childId },
|
|
select: { profile: true },
|
|
})
|
|
|
|
const profile = (request.nextUrl.searchParams.get("profile") || child?.profile || "ISABELLA").toUpperCase()
|
|
const exercise = await getNextExercise(childId, topic, profile)
|
|
return NextResponse.json(exercise || { id: null, done: true })
|
|
}
|