import { NextRequest, NextResponse } from "next/server"; import { auth } from "@/auth"; import { prisma } from "@/lib/prisma"; // GET /api/users — list all users export async function GET() { const session = await auth(); if (!session || session.user.role !== "SUPER_ADMIN") { return NextResponse.json({ error: "Forbidden" }, { status: 403 }); } const users = await prisma.user.findMany({ orderBy: { createdAt: "asc" }, }); return NextResponse.json(users); } // POST /api/users — create a new user export async function POST(req: NextRequest) { const session = await auth(); if (!session || session.user.role !== "SUPER_ADMIN") { return NextResponse.json({ error: "Forbidden" }, { status: 403 }); } try { const body = await req.json(); const { name, email, password, role, domains, telegramId } = body; const user = await prisma.user.create({ data: { name, email: email.toLowerCase(), password, role: role || "DOMAIN_ADMIN", domains: domains || [], telegramId, }, }); return NextResponse.json(user); } catch (error: any) { return NextResponse.json({ error: error.message }, { status: 500 }); } }