import { NextRequest,NextResponse } from 'next/server';
import {adminKeyMatches,createCode,digest,prisma} from '@/lib/access';
export const runtime='nodejs';
export async function POST(request:NextRequest){
 if(!adminKeyMatches(request.headers.get('x-tachy-admin-key')))return NextResponse.json({error:'Accès refusé'},{status:403});
 try{
  const body=await request.json();
  if(typeof body.name!=='string'||body.name.trim().length<2||body.name.length>120)return NextResponse.json({error:'Nom invalide'},{status:400});
  const code=createCode();
  const user=await prisma.user.create({data:{name:body.name.trim(),role:'STUDENT',accessCodes:{create:{codeHash:digest(code)}}},select:{id:true,name:true}});
  return NextResponse.json({student:user,code,validity:'30 jours dès la première activation'},{status:201,headers:{'Cache-Control':'no-store'}});
 }catch{return NextResponse.json({error:'Impossible de créer le code'},{status:500});}
}
