import { NextRequest, NextResponse } from "next/server"; import { auth } from "@/auth"; import { prisma } from "@/lib/prisma"; // GET /api/mappings — list all mappings export async function GET() { const session = await auth(); if (!session || session.user.role !== "SUPER_ADMIN") { return NextResponse.json({ error: "Forbidden" }, { status: 403 }); } const mappings = await prisma.mailboxMapping.findMany({ include: { user: true }, orderBy: { createdAt: "desc" }, }); return NextResponse.json(mappings); } // POST /api/mappings — create a new mapping 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 { email, userId } = body; const mapping = await prisma.mailboxMapping.create({ data: { email: email.toLowerCase().trim(), userId, }, include: { user: true }, }); return NextResponse.json(mapping); } catch (error: any) { return NextResponse.json({ error: error.message }, { status: 500 }); } }