import { NextResponse } from 'next/server' import { auth } from '@/lib/auth' import { prisma } from '@/lib/prisma' import { canUseSession } from '@/lib/session-access' export async function getAdminSession() { const session = await auth() const id = Number(session?.user.id) if (!session || !Number.isSafeInteger(id) || id <= 0) return null const user = await prisma.user.findUnique({ where: { id } }) if (!canUseSession(user, session.issuedAt)) return null return { ...session, user: { ...session.user, role: user!.role } } } export async function isAdminSession() { return !!(await getAdminSession()) } export async function requireAdmin() { if (!(await isAdminSession())) { return NextResponse.json({ error: 'Nicht autorisiert' }, { status: 401 }) } return null }