import { getSession } from "@/lib/auth"; import { NextResponse } from "next/server"; import { prisma } from "@/lib/prisma"; export async function GET() { const session = await getSession(); if (!session) return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); const userId = session.userId; const state = await prisma.userState.findUnique({ where: { userId }, select: { attentionLevel: true, emotionStability: true, stressLevel: true, practiceStage: true, consistencyScore: true, streakDays: true, totalSessionsCompleted: true, onboardingCompleted: true, lastSessionDate: true, }, }); if (!state) { return NextResponse.json({ state: null, hasStarted: false, }); } return NextResponse.json({ state, hasStarted: true, }); } export async function PATCH(req: Request) { const session = await getSession(); if (!session) return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); const userId = session.userId; const body = await req.json().catch(() => null); if (!body || typeof body !== "object") { return NextResponse.json({ error: "Invalid request body" }, { status: 400 }); } const { onboardingCompleted } = body as { onboardingCompleted?: boolean }; const state = await prisma.userState.upsert({ where: { userId }, create: { userId, onboardingCompleted: onboardingCompleted ?? false, }, update: { ...(onboardingCompleted !== undefined ? { onboardingCompleted } : {}), }, select: { attentionLevel: true, emotionStability: true, stressLevel: true, practiceStage: true, consistencyScore: true, streakDays: true, totalSessionsCompleted: true, onboardingCompleted: true, lastSessionDate: true, }, }); return NextResponse.json({ state }); }