import { NextResponse } from "next/server"; import { prisma } from "@/lib/db"; import { createSessionToken, hashPassword, setSessionCookie, } from "@/lib/auth"; export async function POST(req: Request) { const body = await req.json().catch(() => null); const email = (body?.email as string | undefined)?.toLowerCase()?.trim(); const password = body?.password as string | undefined; if (!email || !password || password.length < 6) { return NextResponse.json( { error: "Email and password (min 6 chars) are required." }, { status: 400 } ); } const existing = await prisma.user.findUnique({ where: { email } }); if (existing) { return NextResponse.json( { error: "Email is already registered." }, { status: 400 } ); } const passwordHash = await hashPassword(password); const user = await prisma.user.create({ data: { email, passwordHash }, }); const token = await createSessionToken({ userId: user.id, email: user.email }); await setSessionCookie(token); return NextResponse.json({ ok: true, user: { id: user.id, email: user.email }, }); }