/** * GET /api/users - Benutzerverwaltung (nur ADMIN). * * Liefert alle Benutzer mit Rolle und Kalender-Beziehungen, damit * ein Admin Rollen vergeben und Zuordnungen ueberblicken kann. */ import { NextResponse } from 'next/server'; import { prisma } from '@/lib/db/client'; import { requireDbUser } from '@/lib/api/context'; import { errorResponse, forbiddenResponse } from '@/lib/api/responses'; export async function GET(): Promise { try { const user = await requireDbUser(); if (user.role !== 'ADMIN') { return forbiddenResponse(); } const users = await prisma.user.findMany({ orderBy: { createdAt: 'asc' }, select: { id: true, email: true, username: true, role: true, createdAt: true, memberships: { select: { calendar: { select: { id: true, title: true, isActive: true } }, }, }, ownedCalendars: { select: { id: true, title: true, isActive: true }, }, }, }); return NextResponse.json({ users }); } catch (error) { return errorResponse(error); } }