import {NextRequest,NextResponse} from 'next/server';
import {digest,prisma} from '@/lib/access';
export const runtime='nodejs';
export async function GET(request:NextRequest){
 const token=request.cookies.get('tachy_session')?.value;
 if(!token)return NextResponse.json({authenticated:false},{status:401});
 try{
  const session=await prisma.loginSession.findUnique({where:{tokenHash:digest(token)},include:{user:true}});
  if(!session||session.revokedAt||session.expiresAt<=new Date()||!await prisma.accessCode.findFirst({where:{userId:session.userId,revokedAt:null,expiresAt:{gt:new Date()}}}))return NextResponse.json({authenticated:false},{status:401});
  return NextResponse.json({authenticated:true,name:session.user.name,role:session.user.role,expiresAt:session.expiresAt},{headers:{'Cache-Control':'no-store'}});
 }catch{return NextResponse.json({error:'Session indisponible'},{status:500});}
}
